mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-25 02:33:36 +08:00
fdb7d390dd
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. |
||
---|---|---|
.. | ||
arpa | ||
bits | ||
gnu | ||
net | ||
netinet | ||
programs | ||
protocols | ||
rpc | ||
rpcsvc | ||
sys | ||
aio.h | ||
aliases.h | ||
alloca.h | ||
argp.h | ||
argz.h | ||
assert.h | ||
atomic.h | ||
byteswap.h | ||
caller.h | ||
complex.h | ||
cpio.h | ||
ctype.h | ||
des.h | ||
dirent.h | ||
dlfcn.h | ||
elf.h | ||
endian.h | ||
envz.h | ||
err.h | ||
errno.h | ||
error.h | ||
execinfo.h | ||
fcntl.h | ||
features.h | ||
fenv.h | ||
fmtmsg.h | ||
fnmatch.h | ||
fpu_control.h | ||
ftw.h | ||
gconv.h | ||
getopt_int.h | ||
getopt.h | ||
glob.h | ||
gmp.h | ||
gnu-versions.h | ||
grp.h | ||
gshadow.h | ||
iconv.h | ||
ifaddrs.h | ||
ifunc-impl-list.h | ||
inline-hashtab.h | ||
langinfo.h | ||
libc-internal.h | ||
libc-symbols.h | ||
libgen.h | ||
libintl.h | ||
libio.h | ||
limits.h | ||
link.h | ||
list.h | ||
locale.h | ||
malloc.h | ||
math.h | ||
mcheck.h | ||
memory.h | ||
mntent.h | ||
monetary.h | ||
mqueue.h | ||
netdb.h | ||
netgroup.h | ||
nl_types.h | ||
nss.h | ||
nsswitch.h | ||
obstack.h | ||
poll.h | ||
printf.h | ||
pthread.h | ||
pty.h | ||
pwd.h | ||
regex.h | ||
resolv.h | ||
rounding-mode.h | ||
sched.h | ||
scratch_buffer.h | ||
search.h | ||
set-hooks.h | ||
setjmp.h | ||
sgtty.h | ||
shadow.h | ||
shlib-compat.h | ||
signal.h | ||
spawn.h | ||
stab.h | ||
stackinfo.h | ||
stap-probe.h | ||
stdc-predef.h | ||
stdio_ext.h | ||
stdio.h | ||
stdlib.h | ||
string.h | ||
strings.h | ||
stropts.h | ||
stubs-prologue.h | ||
syscall.h | ||
sysexits.h | ||
syslog.h | ||
tar.h | ||
termios.h | ||
tgmath.h | ||
time.h | ||
ttyent.h | ||
uchar.h | ||
ucontext.h | ||
ulimit.h | ||
unistd.h | ||
utime.h | ||
utmp.h | ||
values.h | ||
wchar.h | ||
wctype.h | ||
wordexp.h | ||
xlocale.h |