diff options
author | Adhemerval Zanella <azanella@linux.vnet.ibm.com> | 2014-06-09 16:19:25 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.com> | 2015-07-08 12:07:21 -0300 |
commit | fdb7d390dd0d96e4a8239c46f3aa64598b90842b (patch) | |
tree | adab2a28bad088043828d25b5c6bf83a5612fba7 /ChangeLog | |
parent | 1c1e3125206ef810dc7282023f6267a33b486233 (diff) | |
download | glibc-fdb7d390dd0d96e4a8239c46f3aa64598b90842b.tar glibc-fdb7d390dd0d96e4a8239c46f3aa64598b90842b.tar.gz glibc-fdb7d390dd0d96e4a8239c46f3aa64598b90842b.tar.bz2 glibc-fdb7d390dd0d96e4a8239c46f3aa64598b90842b.zip |
libio: fmemopen rewrite to POSIX compliance
This patch added a new fmemopen version, for glibc 2.22, that aims to be
POSIX complaint. It fixes some long-stading glibc fmemopen issues, such
as:
* it changes the way fseek with SEEK_END works on fmemopen to seek
relative to buffer size instead of first '\0'. This is default mode and
'b' opening mode does not change internal behavior (bz#6544).
* fix apending opening mode to use as start position either first null
byte of len specified in function call (bz#13152 and #13151).
* remove binary option 'b' and internal different handling (bz#12836)
* fix seek/SEE_END with negative values (bz#14292).
A compatibility symbol is provided to with old behavior for older symbols
version (2.2.5).
* include/stdio.h (fmemopen): Remove hidden prototype.
(__fmemopen): Add new hidden prototype.
* libio/Makefile: Add oldfmemopen object.
* libio/Versions [GLIBC_2.22]: Add new fmemopen symbol.
* libio/fmemopen.c (__fmemopen): Function rewrite to be POSIX
compliance.
* libio/oldfmemopen.c: New file: old fmemopen implementation for
symbol compatibility.
* stdio-common/Makefile [tests]: Add new tst-fmemopen3.
* stdio-common/psiginfo.c [psiginfo]: Call __fmemopen instead of
fmemopen.
* stdio-common/tst-fmemopen3.c: New file: more fmemopen tests, focus
on append and read mode.
* sysdeps/unix/sysv/linux/aarch64/libc.abilist [GLIBC_2.22]: Add
fmemopen.
* sysdeps/unix/sysv/linux/alpha/libc.abilist [GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/arm/libc.abilist [GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/i386/libc.abilist [GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/ia64/libc.abilist [GLIBC_2.22]:
Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
[GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist [GLIBC_2.22]:
Likewise.
* sysdeps/unix/sysv/linux/microblaze/libc.abilist [GLIBC_2.22]:
Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
[GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
[GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
[GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
[GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
[GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
[GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist
[GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist [GLIBC_2.22]:
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist [GLIBC_2.22]:
Likewise.
* sysdeps/unix/sysv/linux/sh/libc.abilist [GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
[GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
[GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist
[GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist
[GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist [GLIBC_2.22]:
Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist [GLIBC_2.22]:
Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist [GLIBC_2.22]:
Likewise.
* sysdeps/unix/sysv/linux/hppa/libc.abilist [GLIBC_2.22]: Likewise.
* sysdeps/unix/sysv/linux/nios2/libc.abilist [GLIBC_2.22]: Likewise.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 70 |
1 files changed, 70 insertions, 0 deletions
@@ -1,3 +1,73 @@ +2015-07-08 Adhemerval Zanella <adhemerval.zanella@linaro.org> + + [BZ #6544] + [BZ #11216] + [BZ #12836] + [BZ #13151] + [BZ #13152] + [BZ #14292] + * include/stdio.h (fmemopen): Remove hidden prototype. + (__fmemopen): Add new hidden prototype. + * libio/Makefile: Add oldfmemopen object. + * libio/Versions [GLIBC_2.22]: Add new fmemopen symbol. + * libio/fmemopen.c (__fmemopen): Function rewrite to be POSIX + compliance. + * libio/oldfmemopen.c: New file: old fmemopen implementation for + symbol compatibility. + * stdio-common/Makefile [tests]: Add new tst-fmemopen3. + * stdio-common/psiginfo.c [psiginfo]: Call __fmemopen instead of + fmemopen. + * stdio-common/tst-fmemopen3.c: New file: more fmemopen tests, focus + on append and read mode. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist [GLIBC_2.22]: Add + fmemopen. + * sysdeps/unix/sysv/linux/alpha/libc.abilist [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/arm/libc.abilist [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/i386/libc.abilist [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/ia64/libc.abilist [GLIBC_2.22]: + Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist + [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist [GLIBC_2.22]: + Likewise. + * sysdeps/unix/sysv/linux/microblaze/libc.abilist [GLIBC_2.22]: + Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist + [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist + [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist + [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist + [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist + [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist + [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist + [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist [GLIBC_2.22]: + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist [GLIBC_2.22]: + Likewise. + * sysdeps/unix/sysv/linux/sh/libc.abilist [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist + [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist + [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist + [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist + [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist [GLIBC_2.22]: + Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist [GLIBC_2.22]: + Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist [GLIBC_2.22]: + Likewise. + * sysdeps/unix/sysv/linux/hppa/libc.abilist [GLIBC_2.22]: Likewise. + * sysdeps/unix/sysv/linux/nios2/libc.abilist [GLIBC_2.22]: Likewise. + 2015-07-08 Carlos O'Donell <carlos@redhat.com> [BZ #18643] |