mirror of
git://sourceware.org/git/glibc.git
synced 2024-12-21 04:31:04 +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. |
||
---|---|---|
.. | ||
aarch64 | ||
alpha | ||
arm | ||
bits | ||
generic | ||
hppa | ||
i386 | ||
ia64 | ||
include/sys | ||
m68k | ||
microblaze | ||
mips | ||
net | ||
netash | ||
netatalk | ||
netax25 | ||
neteconet | ||
netinet | ||
netipx | ||
netiucv | ||
netpacket | ||
netrom | ||
netrose | ||
nfs | ||
nios2 | ||
powerpc | ||
s390 | ||
scsi | ||
sh | ||
sparc | ||
sys | ||
tile | ||
wordsize-64 | ||
x86 | ||
x86_64 | ||
_exit.c | ||
_G_config.h | ||
a.out.h | ||
accept4.c | ||
accept.c | ||
adjtime.c | ||
aio_misc.h | ||
aio_sigqueue.c | ||
arch-fork.h | ||
bind.c | ||
check_native.c | ||
check_pf.c | ||
check-cpuset.h | ||
clock_getcpuclockid.c | ||
clock_getres.c | ||
clock_gettime.c | ||
clock_nanosleep.c | ||
clock_settime.c | ||
clock.c | ||
cmsg_nxthdr.c | ||
configure | ||
configure.ac | ||
connect.c | ||
createthread.c | ||
default-sched.h | ||
device-nrs.h | ||
dl-brk.c | ||
dl-execstack.c | ||
dl-fxstatat64.c | ||
dl-getcwd.c | ||
dl-librecon.h | ||
dl-openat64.c | ||
dl-opendir.c | ||
dl-origin.c | ||
dl-osinfo.h | ||
dl-sbrk.c | ||
dl-sysdep.c | ||
dl-sysdep.h | ||
dl-vdso.c | ||
dl-vdso.h | ||
dl-writev.h | ||
epoll_pwait.c | ||
errqueue.h | ||
eventfd_read.c | ||
eventfd_write.c | ||
eventfd.c | ||
exit-thread.h | ||
faccessat.c | ||
fallocate64.c | ||
fallocate.c | ||
fatal-prepare.h | ||
fchmodat.c | ||
fcntl.c | ||
fd_to_filename.h | ||
fexecve.c | ||
fips-private.h | ||
fpathconf.c | ||
fstatfs64.c | ||
fstatvfs64.c | ||
fstatvfs.c | ||
ftime.c | ||
ftruncate64.c | ||
futimens.c | ||
futimes.c | ||
futimesat.c | ||
fxstat64.c | ||
fxstat.c | ||
fxstatat64.c | ||
fxstatat.c | ||
gai_sigqueue.c | ||
getclktck.c | ||
getcwd.c | ||
getdents64.c | ||
getdents.c | ||
getdirentries64.c | ||
getdirentries.c | ||
getdtsz.c | ||
gethostid.c | ||
getipv4sourcefilter.c | ||
getloadavg.c | ||
getlogin_r.c | ||
getlogin.c | ||
getpagesize.c | ||
getpeername.c | ||
getpid.c | ||
getpriority.c | ||
getpt.c | ||
getrlimit64.c | ||
getsockname.c | ||
getsockopt.c | ||
getsourcefilter.c | ||
getsysstats.c | ||
gettimeofday.c | ||
grantpt.c | ||
if_index.c | ||
ifaddrs.c | ||
ifreq.c | ||
Implies | ||
internal_statvfs64.c | ||
internal_statvfs.c | ||
ipc_priv.h | ||
kernel_sigaction.h | ||
kernel_stat.h | ||
kernel_termios.h | ||
kernel-features.h | ||
kernel-posix-cpu-timers.h | ||
kernel-posix-timers.h | ||
ldd-rewrite.sed | ||
lddlibc4.c | ||
ldsodefs.h | ||
libc_fatal.c | ||
linux_fsinfo.h | ||
listen.c | ||
llseek.c | ||
local-setxid.h | ||
lowlevellock-futex.h | ||
lseek64.c | ||
lutimes.c | ||
lxstat64.c | ||
lxstat.c | ||
makedev.c | ||
Makefile | ||
malloc-sysdep.h | ||
mmap64.c | ||
mq_close.c | ||
mq_getattr.c | ||
mq_notify.c | ||
mq_open.c | ||
mq_receive.c | ||
mq_send.c | ||
mq_unlink.c | ||
msgctl.c | ||
msgget.c | ||
msgrcv.c | ||
msgsnd.c | ||
netlinkaccess.h | ||
nice.c | ||
not-cancel.h | ||
nptl-signals.h | ||
nscd_setup_thread.c | ||
ntp_gettime.c | ||
ntp_gettimex.c | ||
open64.c | ||
openat64.c | ||
openat.c | ||
opendir.c | ||
opensock.c | ||
pathconf.c | ||
pathconf.h | ||
paths.h | ||
posix_fadvise64.c | ||
posix_fadvise.c | ||
posix_fallocate64.c | ||
posix_fallocate.c | ||
posix_madvise.c | ||
ppoll.c | ||
pread64.c | ||
pread.c | ||
preadv64.c | ||
preadv.c | ||
prlimit.c | ||
prof-freq.c | ||
profil.c | ||
pselect.c | ||
pt-raise.c | ||
pthread_getaffinity.c | ||
pthread_getcpuclockid.c | ||
pthread_getname.c | ||
pthread_kill.c | ||
pthread_setaffinity.c | ||
pthread_setname.c | ||
pthread_sigmask.c | ||
pthread_sigqueue.c | ||
pthread-pids.h | ||
ptrace.c | ||
ptsname.c | ||
pwrite64.c | ||
pwrite.c | ||
pwritev64.c | ||
pwritev.c | ||
raise.c | ||
readahead.c | ||
readdir64_r.c | ||
readdir64.c | ||
readonly-area.c | ||
reboot.c | ||
recv.c | ||
recvfrom.c | ||
recvmmsg.c | ||
recvmsg.c | ||
remove.c | ||
sa_len.c | ||
safe-fatal.h | ||
sched_getaffinity.c | ||
sched_getcpu.c | ||
sched_setaffinity.c | ||
segfault.c | ||
semctl.c | ||
semget.c | ||
semop.c | ||
semtimedop.c | ||
send.c | ||
sendmmsg.c | ||
sendmsg.c | ||
sendto.c | ||
setegid.c | ||
seteuid.c | ||
setgid.c | ||
setgroups.c | ||
sethostid.c | ||
setipv4sourcefilter.c | ||
setregid.c | ||
setresgid.c | ||
setresuid.c | ||
setreuid.c | ||
setrlimit64.c | ||
setsockopt.c | ||
setsourcefilter.c | ||
setuid.c | ||
shlib-versions | ||
shm-directory.c | ||
shmat.c | ||
shmctl.c | ||
shmdt.c | ||
shmget.c | ||
shutdown.c | ||
sigaction.c | ||
siglist.h | ||
signal.c | ||
signalfd.c | ||
sigpending.c | ||
sigprocmask.c | ||
sigqueue.c | ||
sigreturn.c | ||
sigset-cvt-mask.h | ||
sigstack.c | ||
sigsuspend.c | ||
sigtimedwait.c | ||
sigwait.c | ||
sigwaitinfo.c | ||
sizes.h | ||
sleep.c | ||
socket.c | ||
socketcall.h | ||
socketpair.c | ||
speed.c | ||
statfs64.c | ||
statvfs64.c | ||
statvfs.c | ||
sync_file_range.c | ||
syscalls.list | ||
sysconf.c | ||
sysctl.c | ||
sysctl.mk | ||
sysdep-vdso.h | ||
syslog.c | ||
system.c | ||
tcdrain.c | ||
tcflow.c | ||
tcflush.c | ||
tcgetattr.c | ||
tcgetpgrp.c | ||
tcsendbrk.c | ||
tcsetattr.c | ||
tcsetpgrp.c | ||
termio.h | ||
time.c | ||
timer_create.c | ||
timer_delete.c | ||
timer_getoverr.c | ||
timer_gettime.c | ||
timer_routines.c | ||
timer_settime.c | ||
times.c | ||
timespec_get.c | ||
truncate64.c | ||
tst-align-clone.c | ||
tst-clone.c | ||
tst-fanotify.c | ||
tst-getcpu.c | ||
tst-getpid1.c | ||
tst-getpid2.c | ||
tst-setgetname.c | ||
ttyname_r.c | ||
ttyname.c | ||
ualarm.c | ||
umount2.S | ||
umount.S | ||
unlockpt.c | ||
updwtmp.c | ||
ustat.c | ||
utimensat.c | ||
utimes.c | ||
utmp_file.c | ||
Versions | ||
vfork.c | ||
wait3.c | ||
wait.c | ||
waitid.c | ||
waitpid.c | ||
xmknod.c | ||
xmknodat.c | ||
xstat64.c | ||
xstat.c | ||
xstatconv.c | ||
xstatconv.h |