1998-07-03 06:51:40 +08:00
|
|
|
libc {
|
|
|
|
GLIBC_2.0 {
|
|
|
|
# global variables
|
|
|
|
___brk_addr; __curbrk; __progname; __progname_full;
|
|
|
|
|
|
|
|
# interface of malloc functions
|
|
|
|
__sbrk; __getpagesize;
|
|
|
|
|
|
|
|
# functions used in other libraries
|
|
|
|
__select;
|
|
|
|
|
|
|
|
# variables in normal name space
|
|
|
|
error_message_count; error_one_per_line; error_print_progname;
|
|
|
|
|
|
|
|
# variables in normal name space
|
|
|
|
loc1; loc2; locs;
|
|
|
|
program_invocation_name; program_invocation_short_name;
|
|
|
|
|
|
|
|
# a*
|
|
|
|
acct; addmntent; advance;
|
|
|
|
|
Update.
1998-07-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Make-dist (+sysdep-tsrcs): Add Versions.
1998-07-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* math/Versions: Remove __log1p, __atan2, __fe_dfl_env,
__fe_enabled_env, __fe_nonieee_env and __fe_nomask_env.
* sysdeps/powerpc/Versions: New file.
* csu/Versions: Remove brk, sbrk, environ, __environ, _environ
and __errno_location.
* misc/Versions: Add brk and sbrk.
* posix/Versions: Add environ, __environ and _environ.
* sysdeps/unix/sysv/linux/Versions: Add __errno_location.
1998-07-10 11:58 Ulrich Drepper <drepper@cygnus.com>
* Makerules [no_defs]: Avoid dependency for loading sysd-versions.
Patch by Zack Weinberg.
1998-07-10 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* posix/annexc.c (errno_maybe): EACCESS->EACCES.
(signal_maybe): Remove duplicate entry SIGEV_SIGNAL.
(mman_maybe): Remove duplicates MS_ASYNC, MS_INVALIDATE.
* signal/signal.h: Define pid_t also for __USE_XOPEN.
1998-07-11 04:45:28 +08:00
|
|
|
# b*
|
|
|
|
brk;
|
|
|
|
|
1998-07-03 06:51:40 +08:00
|
|
|
# c*
|
|
|
|
chflags; chroot; closelog;
|
|
|
|
|
|
|
|
# d*
|
|
|
|
daemon; dirname;
|
|
|
|
|
|
|
|
# e*
|
|
|
|
ecvt; ecvt_r; endfsent; endmntent; endttyent; endusershell;
|
|
|
|
|
|
|
|
# e*
|
|
|
|
err; error; error_at_line; errx;
|
|
|
|
|
|
|
|
# f*
|
|
|
|
fchflags; fcvt; fcvt_r; fdatasync; fsync; ftruncate;
|
|
|
|
|
|
|
|
# g*
|
|
|
|
gcvt; get_avphys_pages; get_nprocs; get_nprocs_conf; get_phys_pages;
|
|
|
|
getfsent; getfsfile; getfsspec; gethostid; gethostname; getmntent;
|
|
|
|
getmntent_r; getpagesize; getpass; getttyent; getttynam; getusershell;
|
|
|
|
gtty;
|
|
|
|
|
|
|
|
# h*
|
|
|
|
hasmntopt; hcreate; hcreate_r; hdestroy; hdestroy_r; hsearch; hsearch_r;
|
|
|
|
|
|
|
|
# i*
|
|
|
|
insque; ioctl;
|
|
|
|
|
|
|
|
# j*
|
|
|
|
jrand48; jrand48_r; lfind; lsearch;
|
|
|
|
|
|
|
|
# m*
|
|
|
|
madvise; mkstemp; mktemp; mlock; mlockall; mmap; mount; mprotect; msync;
|
|
|
|
munlock; munlockall; munmap;
|
|
|
|
|
|
|
|
# o*
|
|
|
|
openlog;
|
|
|
|
|
|
|
|
# p*
|
|
|
|
ptrace;
|
|
|
|
|
|
|
|
# q*
|
|
|
|
qecvt; qecvt_r; qfcvt; qfcvt_r; qgcvt;
|
|
|
|
|
|
|
|
# r*
|
1998-10-24 09:31:41 +08:00
|
|
|
readv; reboot; remque; revoke;
|
1998-07-03 06:51:40 +08:00
|
|
|
|
|
|
|
# s*
|
Update.
1998-07-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Make-dist (+sysdep-tsrcs): Add Versions.
1998-07-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* math/Versions: Remove __log1p, __atan2, __fe_dfl_env,
__fe_enabled_env, __fe_nonieee_env and __fe_nomask_env.
* sysdeps/powerpc/Versions: New file.
* csu/Versions: Remove brk, sbrk, environ, __environ, _environ
and __errno_location.
* misc/Versions: Add brk and sbrk.
* posix/Versions: Add environ, __environ and _environ.
* sysdeps/unix/sysv/linux/Versions: Add __errno_location.
1998-07-10 11:58 Ulrich Drepper <drepper@cygnus.com>
* Makerules [no_defs]: Avoid dependency for loading sysd-versions.
Patch by Zack Weinberg.
1998-07-10 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* posix/annexc.c (errno_maybe): EACCESS->EACCES.
(signal_maybe): Remove duplicate entry SIGEV_SIGNAL.
(mman_maybe): Remove duplicates MS_ASYNC, MS_INVALIDATE.
* signal/signal.h: Define pid_t also for __USE_XOPEN.
1998-07-11 04:45:28 +08:00
|
|
|
sbrk; select; setdomainname; setfsent; sethostent; sethostid; sethostname;
|
1998-07-03 06:51:40 +08:00
|
|
|
setlogmask; setmntent; setregid; setreuid; setttyent; setusershell; sstk;
|
|
|
|
stty; sync; syscall; syslog;
|
|
|
|
|
|
|
|
# t*
|
|
|
|
tdelete; tfind; truncate; tsearch; ttyslot; twalk;
|
|
|
|
|
|
|
|
# u*
|
|
|
|
ualarm; usleep; ustat; utimes;
|
|
|
|
|
|
|
|
# v*
|
|
|
|
verr; verrx; vhangup; vsyslog; vwarn; vwarnx;
|
|
|
|
|
|
|
|
# w*
|
|
|
|
warn; warnx;
|
|
|
|
|
|
|
|
# w*
|
|
|
|
writev;
|
|
|
|
}
|
|
|
|
GLIBC_2.1 {
|
|
|
|
# f*
|
|
|
|
ftruncate64;
|
|
|
|
|
|
|
|
# m*
|
|
|
|
mmap64;
|
|
|
|
|
|
|
|
# t*
|
|
|
|
tdestroy; truncate64;
|
|
|
|
}
|
1999-07-07 00:26:03 +08:00
|
|
|
GLIBC_2.2 {
|
1999-10-04 13:30:05 +08:00
|
|
|
# g*
|
|
|
|
getloadavg;
|
|
|
|
|
1999-07-07 00:26:03 +08:00
|
|
|
# m*
|
2000-09-26 17:57:34 +08:00
|
|
|
mincore; mkdtemp; mkstemp64;
|
2000-04-14 13:45:32 +08:00
|
|
|
|
|
|
|
# p*
|
|
|
|
posix_madvise;
|
1999-07-07 00:26:03 +08:00
|
|
|
}
|
2002-08-23 17:29:27 +08:00
|
|
|
GLIBC_2.3 {
|
|
|
|
# f*
|
|
|
|
fgetxattr; flistxattr; fremovexattr; fsetxattr;
|
2002-08-27 10:10:01 +08:00
|
|
|
futimes;
|
2002-08-23 17:29:27 +08:00
|
|
|
|
|
|
|
# g*
|
|
|
|
getxattr;
|
|
|
|
|
|
|
|
# l*
|
|
|
|
listxattr;
|
|
|
|
lgetxattr; llistxattr; lremovexattr; lsetxattr;
|
2002-08-27 10:10:01 +08:00
|
|
|
lutimes;
|
2002-08-23 17:29:27 +08:00
|
|
|
|
|
|
|
# r*
|
|
|
|
removexattr;
|
|
|
|
|
|
|
|
# s*
|
|
|
|
setxattr;
|
|
|
|
}
|
2003-03-03 18:05:49 +08:00
|
|
|
GLIBC_2.3.3 {
|
|
|
|
remap_file_pages;
|
|
|
|
}
|
2005-07-30 14:00:43 +08:00
|
|
|
GLIBC_2.4 {
|
* io/Makefile (routines): Add fstatat, fstatat64, fxstatat, fxstatat64,
fchownat, and unlinkat.
(static-only-routines): Add fstatat and fstatat64.
(tests): Add tst-unlinkat, tst-fstatat, tst-futimesat, tst-renameat,
and tst-fchownat.
* io/Versions [GLIBC_2.4]: Add fchownat, __fxstatat, __fxstatat64,
and unlinkat.
* io/fcntl.h: Define AT_FDCWD, AT_SYMLINK_NOFOLLOW, and AT_REMOVEDIR.
* io/fstatat.c: New file.
* io/fstatat64.c: New file.
* io/sys/stat.h: Declare fstatat, fstatat64, __fxstatat, __fxstatat64
and define fstatat and fstatat64 inline functions.
* libio/stdio.h: Declare renameat.
* misc/Makefile (routines): Add futimesat.
* misc/Versions [GLIBC_2.4]: Add futimesat.
* posix/unistd.h: Declare fchownat and unlinkat.
* stdio-common/Makefile (routines): Add renameat.
* stdio-common/Versions [GLIBC_2.4]: Add renameat.
* sysdeps/generic/fchownat.c: New file.
* sysdeps/generic/futimesat.c: New file.
* sysdeps/generic/fxstatat.c: New file.
* sysdeps/generic/fxstatat64.c: New file.
* sysdeps/generic/renameat.c: New file.
* sysdeps/generic/unlinkat.c: New file.
* sysdeps/unix/sysv/linux/fchownat.c: New file.
* sysdeps/unix/sysv/linux/futimesat.c: New file.
* sysdeps/unix/sysv/linux/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/fxstatat64.c: New file.
* sysdeps/unix/sysv/linux/renameat.c: New file.
* sysdeps/unix/sysv/linux/unlinkat.c: New file.
* sysdeps/unix/sysv/linux/alpha/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/i386/fchownat.c: New file.
* sysdeps/unix/sysv/linux/i386/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/m68k/fchownat.c: New file.
* sysdeps/unix/sysv/linux/m68k/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/powerpc/fchownat.c: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/sh/fchownat.c: New file.
* sysdeps/unix/sysv/linux/sh/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/fchownat.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/fxstatat64.c: New file.
* time/sys/time.h: Declare futimesat.
* include/fcntl.h: Declare __atfct_seterrno.
* sysdeps/unix/sysv/linux/openat.c (__atfct_seterrno): New function.
Split out from openat code and called.
(do_test): Allow openat to fail with ENOSYS. Handle AT_FDCWD.
* sysdeps/generic/openat.c: Handle AT_FDCWD.
* sysdeps/generic/openat64.c: Likewise.
* io/tst-unlinkat.c: New file.
* io/tst-fstatat.c: New file.
* io/tst-futimesat.c: New file.
* io/tst-renameat.c: New file.
* io/tst-fchownat.c: New file.
* io/tst-openat.c: Don't fail if openat is not implemented.
* sysdeps/unix/sysv/linux/powerpc/chown.c: Don't provide backward
compatibility code if new kernel is guaranteed.
* time/sys/time.h: Add a few nonnull attributes.
2005-11-12 04:02:07 +08:00
|
|
|
futimesat;
|
2005-07-30 14:00:43 +08:00
|
|
|
__syslog_chk; __vsyslog_chk;
|
|
|
|
}
|
2007-08-11 10:48:28 +08:00
|
|
|
GLIBC_2.7 {
|
|
|
|
mkostemp; mkostemp64;
|
|
|
|
}
|
2009-04-04 03:57:16 +08:00
|
|
|
GLIBC_2.10 {
|
|
|
|
preadv; preadv64; pwritev; pwritev64;
|
|
|
|
}
|
2009-10-30 15:11:07 +08:00
|
|
|
GLIBC_2.11 {
|
2009-10-30 23:02:30 +08:00
|
|
|
mkstemps; mkstemps64; mkostemps; mkostemps64;
|
2009-10-30 15:11:07 +08:00
|
|
|
}
|
2011-04-02 01:08:28 +08:00
|
|
|
GLIBC_2.14 {
|
|
|
|
syncfs;
|
|
|
|
}
|
2012-05-21 01:34:00 +08:00
|
|
|
GLIBC_2.16 {
|
|
|
|
__getauxval; getauxval;
|
|
|
|
}
|
2015-08-17 23:28:46 +08:00
|
|
|
GLIBC_2.23 {
|
|
|
|
# SHLIB_COMPAT(GLIBC_2_0, GLIBC_2_23) used in regexp.c
|
|
|
|
}
|
Minimize sysdeps code involved in defining major/minor/makedev.
Presently sys/sysmacros.h is entirely defined in sysdeps. This would
mean that the deprecation logic coming up in the next patch would have
to be written twice (in generic/ and unix/sysv/linux/). To avoid that,
hoist all but the unavoidably system-dependent logic to misc/, leaving a
bits/ header behind. This also promotes the Linux-specific encoding of
dev_t, which accommodates 32-bit major and minor numbers in a 64-bit dev_t,
to generic, as glibc's dev_t is always 64 bits wide.
The former Linux implementation used inline functions to avoid evaluating
arguments more than once. After this change, all platforms use inline
functions, which means that three new symbols are added to the generic ABI.
(These symbols are in the user namespace, which is how they have always
been on Linux. They begin with "gnu_dev_", so collisions with user code
are pretty unlikely.)
New ports henceforth need only provide a bits/sysmacros.h defining
internal macros __SYSMACROS_{DECLARE,DEFINE}_{MAJOR,MINOR,MAKEDEV}.
This is only necessary if the kernel encoding is incompatible with
the now-generic encoding (for instance, it would be necessary for
FreeBSD).
While I was at it, I added a basic round-trip test for these functions.
* sysdeps/generic/sys/sysmacros.h: Delete file.
* sysdeps/unix/sysv/linux/makedev.c: Delete file.
* sysdeps/unix/sysv/linux/sys/sysmacros.h: Move file ...
* bits/sysmacros.h: ... here; this encoding is now the generic
encoding. Now defines only the following macros:
__SYSMACROS_DECLARE_MAJOR, __SYSMACROS_DEFINE_MAJOR,
__SYSMACROS_DECLARE_MINOR, __SYSMACROS_DEFINE_MINOR,
__SYSMACROS_DECLARE_MAKEDEV, __SYSMACROS_DEFINE_MAKEDEV.
* misc/sys/sysmacros.h, misc/makedev.c: New files that use
bits/sysmacros.h and the above new macros to generate the
public implementations of major, minor, and makedev.
* misc/tst-makedev.c: New test.
* include/sys/sysmacros.h: New wrapper.
* misc/Makefile (headers): Add sys/sysmacros.h, bits/sysmacros.h.
(routines): Add makedev.
(tests): Add tst-makedev.
* misc/Versions [GLIBC_2.25]: Add gnu_dev_major, gnu_dev_minor,
gnu_dev_makedev.
* posix/Makefile (headers): Remove sys/sysmacros.h.
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove makedev.
* sysdeps/arm/nacl/libc.abilist: Add GLIBC_2.25,
gnu_dev_major, gnu_dev_makedev, gnu_dev_minor.
* sysdeps/unix/sysv/linux/aarch64/libc.abilist
* sysdeps/unix/sysv/linux/alpha/libc.abilist
* sysdeps/unix/sysv/linux/arm/libc.abilist
* sysdeps/unix/sysv/linux/hppa/libc.abilist
* sysdeps/unix/sysv/linux/i386/libc.abilist
* sysdeps/unix/sysv/linux/ia64/libc.abilist
* sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
* sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
* sysdeps/unix/sysv/linux/microblaze/libc.abilist
* sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
* sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
* sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
* sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
* sysdeps/unix/sysv/linux/nios2/libc.abilist
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist
* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
* sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
* sysdeps/unix/sysv/linux/sh/libc.abilist
* sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist
* sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist
* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist:
Add GLIBC_2.25.
2016-04-29 00:29:55 +08:00
|
|
|
GLIBC_2.25 {
|
|
|
|
gnu_dev_major; gnu_dev_minor; gnu_dev_makedev;
|
|
|
|
}
|
posix: Implement preadv2 and pwritev2
This patch adds support of preadv2 and pwritev2 which are similar to
preadv/pwritev but with an extra flag argument. As for preadv/pwritev
both interfaces are added a non-standard GNU API.
For default 'posix' implementation trying to emulate the Linux supported
flags is troublesome:
* We can not temporary change the file state of the O_DSYNC and O_SYNC
flags to emulate RWF_{D}SYNC (attempts to change the state of using
fcntl are silently ignored).
* IOCB_HIPRI requires the file opened in O_DIRECT and uses an internal
semantic not provided by any other flag (O_NONBLOCK for instance).
So default sysdeps/posix implementations fails with EOPNOTSUPP for any non
supported flag (which are none currently) calls generic preadv/pwritev.
Basically this implementation supports only preadv2 called as preadv (with
flags sets to 0).
The Linux one uses the preadv2/pwritev2 syscall if defined, otherwise it
call preadv/writev. Instead of using the previous __ASSUME_* to
unconditionally issue the syscall (and avoid building the fallback routine),
it call pread/write if the preadv2/pwritev2 syscalls fails. The idea
is just avoid adding another __ASSUME_* and checking each architecture
on every kernel bump and simplify code conditionals.
Checked on x86_64-linux-gnu and on i686-linux-gnu and a check with
run-built-tests=no on aarch64-linux-gnu, alpha-linux-gnu, arm-linux-gnueabihf,
ia64-linux-gnu, m68k-linux-gnu, microblaze-linux-gnu, mips{64,64n32}-linux-gnu,
nios2-linux-gnu, powerpc{64,64le}-linux-gnu, s390{x}-linux-gnu,
sparc{64,v9}-linux-gnu, tile{gx,pro}-linux-gnu, and sh4-linux-gnu (all using
gcc 6.3).
* NEWS: Add note about pwritev2 and preadv2 inclusion.
* misc/Makefile (routines): Add preadv2, preadv64v2, pwritev2, and
pwritev64v2.
(tests): Add tst-preadvwritev2 and tst-preadvwritev64v2.
* misc/Versions (GLIBC_2.26): Add preadv2, preadv64v2, pwritev2, and
pwritev64v2.
* misc/preadv2.c: New file.
* misc/preadv64v2.c: Likewise.
* misc/pwritev2.c: Likewise.
* misc/pwritev64v2.c: Likewise.
* misc/tst-preadvwritev2.c: Likewise.
* misc/tst-preadvwritev64v2.c: Likewise.
* manual/llio.texi: Add preadv2 and pwritev2 documentation.
* misc/sys/uio.h [__USE_GNU && !__USE_FILE_OFFSET64] (preadv2): New
prototype.
[__USE_GNU && !__USE_FILE_OFFSET64] (pwritev2): Likewise.
[__USE_GNU && __USE_FILE_OFFSET64] (preadv64v2): Likewise.
[__USE_GNU && __USE_FILE_OFFSET64] (pwritev64v2): Likewise.
* misc/tst-preadvwritev-common.c (PREADV): Define if not defined.
(PWRITEV): Likewise.
(do_test_with_offset): Use PREADV and PWRITEV macros and check for
ENOSYS.
* nptl/tst-cancel4.c (tf_pwritev2): New test.
(tf_preadv2): Likewise.
(tf_fsync): Add tf_pwritev2 and tf_preadv2.
* sysdeps/posix/preadv2.c: Likewise.
* sysdeps/posix/preadv64v2.c: Likewise.
* sysdeps/posix/pwritev2.c: Likewise.
* sysdeps/posix/pwritev64v2.c: Likewise.
* sysdeps/unix/sysv/linux/kernel-features.h: Add comment for syscall
support in kernel.
* sysdeps/unix/sysv/linux/preadv2.c: Likewise.
* sysdeps/unix/sysv/linux/preadv64v2.c: Likewise.
* sysdeps/unix/sysv/linux/pwritev2.c: Likewise.
* sysdeps/unix/sysv/linux/pwritev64v2.c: Likewise.
* sysdeps/unix/sysv/linux/preadv.c (preadv): Add libc_hidden_def.
* sysdeps/unix/sysv/linux/preadv64.c (preadv64): Likewise.
* sysdeps/unix/sysv/linux/pwritev.c (pwritev): Likewise.
* sysdeps/unix/sysv/linux/pwritev64.c (pwritev64): Likewise.
* sysdeps/unix/sysv/linux/bits/uio.h: Add supported preadv2/pwritev2
support flags on Linux.
* sysdeps/unix/sysv/linux/aarch64/libc.abilist (GLIBC_2.26): Add
preadv2, preadv64v2, pwritev2, pwritev64v2.
* sysdeps/unix/sysv/linux/alpha/libc.abilist (GLIBC_2.26): Likewise.
* sysdeps/unix/sysv/linux/arm/libc.abilist (GLIBC_2.26): Likewise.
* sysdeps/unix/sysv/linux/hppa/libc.abilist (GLIBC_2.26): Likewise.
* sysdeps/unix/sysv/linux/i386/libc.abilist (GLIBC_2.26): Likewise.
* sysdeps/unix/sysv/linux/ia64/libc.abilist (GLIBC_2.26): Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/unix/sysv/linux/microblaze/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/unix/sysv/linux/nios2/libc.abilist (GLIBC_2.26): Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
(GLIBC_2.26): Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
(GLIBC_2.26): Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
(GLIBC_2.26): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/unix/sysv/linux/sh/libc.abilist (GLIBC_2.26): Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/sysv/linux/tile/tilegx/tilegx32/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/sysv/linux/tile/tilegx/tilegx64/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist (GLIBC_2.26):
Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist (GLIBC_2.26):
Likewise.
2017-04-26 03:43:27 +08:00
|
|
|
GLIBC_2.26 {
|
|
|
|
preadv2; preadv64v2; pwritev2; pwritev64v2;
|
|
|
|
}
|
2012-10-05 07:31:43 +08:00
|
|
|
GLIBC_PRIVATE {
|
|
|
|
__madvise;
|
2013-01-15 21:36:09 +08:00
|
|
|
__mktemp;
|
2012-10-10 22:47:59 +08:00
|
|
|
__libc_ifunc_impl_list;
|
Fix sem_* tdelete, tfind, tsearch, twalk namespace (bug 18536).
The sem_* functions bring in references to tdelete, tfind, tsearch and
twalk. But the t* functions are XSI-shaded, while sem_* aren't. This
patch fixes this by using __t* instead, exporting those functions from
libc at version GLIBC_PRIVATE (since sem_* are in libpthread) and
using libc_hidden_* for the benefit of calls within libc.
Tested for x86_64 and x86 (testsuite, and comparison of disassembly of
installed stripped shared libraries). libpthread gets changes from
PLT reordering; addresses in libc change because of PLT / dynamic
symbol table changes.
[BZ #18536]
* misc/tsearch.c (__tsearch): Use libc_hidden_def.
(__tfind): Likewise.
(__tdelete): Likewise.
(__twalk): Likewise.
* misc/Versions (libc): Add __tdelete, __tfind, __tsearch and
__twalk to GLIBC_PRIVATE.
* include/search.h (__tsearch): Use libc_hidden_proto.
(__tfind): Likewise.
(__tdelete): Likewise.
(__twalk): Likewise.
* nptl/sem_close.c (sem_close): Call __twalk instead of twalk.
Call __tdelete instead of tdelete.
* nptl/sem_open.c (check_add_mapping): Call __tfind instead of
tfind. Call __tsearch instead of tsearch.
* sysdeps/sparc/sparc32/sem_open.c (check_add_mapping): Likewise.
* conform/Makefile (test-xfail-POSIX/semaphore.h/linknamespace):
Remove variable.
(test-xfail-POSIX2008/semaphore.h/linknamespace): Likewise.
2015-06-18 04:11:58 +08:00
|
|
|
__tdelete; __tfind; __tsearch; __twalk;
|
Clean pthread functions namespaces for C11 threads
This patch adds internal definition (through {libc_}hidden_{proto,def}) and
also change some strong to weak alias for symbols that might be used by C11
threads implementations.
The patchset should not change libc/libpthread functional, although object
changes are expected (since now internal symbols are used instead) and final
exported symbols through GLIBC_PRIVATE is also expanded (to cover libpthread
usage of __mmap{64}, __munmap, __mprotect).
Checked with a build for all major ABI (aarch64-linux-gnu, alpha-linux-gnu,
arm-linux-gnueabi, i386-linux-gnu, ia64-linux-gnu, m68k-linux-gnu,
microblaze-linux-gnu [1], mips{64}-linux-gnu, nios2-linux-gnu,
powerpc{64le}-linux-gnu, s390{x}-linux-gnu, sparc{64}-linux-gnu,
tile{pro,gx}-linux-gnu, and x86_64-linux-gnu).
* include/sched.h (__sched_get_priority_max): Add libc hidden proto.
(__sched_get_prioriry_min): Likewise.
* include/sys/mman.h (__mmap): Likewise.
(__mmap64): Likewise.
(__munmap): Likewise.
(__mprotect): Likewise.
* include/termios.h (__tcsetattr): Likewise.
* include/time.h (__nanosleep): Use hidden_proto instead of
libc_hidden_proto.
* posix/nanosleep.c (__nanosleep): Likewise.
* misc/Versions (libc): Export __mmap, __munmap, __mprotect,
__sched_get_priority_min, and __sched_get_priority_max under
GLIBC_PRIVATE.
* nptl/allocatestack.c (__free_stacks): Use internal definition for
libc symbols.
(change_stack_perm): Likewise.
(allocate_stack): Likewise.
* sysdeps/posix/gethostname.c: Likewise.
* nptl/tpp.c (__init_sched_fifo_prio): Likewise.
* sysdeps/unix/sysv/linux/i386/smp.h (is_smp_system): Likewise.
* sysdeps/unix/sysv/linux/powerpc/ioctl.c (__ioctl): Likewise.
* nptl/pthreadP.h (__pthread_mutex_timedlock): Add definition.
(__pthread_key_delete): Likewise.
(__pthread_detach): Likewise.
(__pthread_cancel): Likewise.
(__pthread_mutex_trylock): Likewise.
(__pthread_mutexattr_init): Likewise.
(__pthread_mutexattr_settype): Likewise.
* nptl/pthread_cancel.c (pthread_cancel): Change to internal name and
create alias for exported one.
* nptl/pthread_join.c (pthread_join): Likewise.
* nptl/pthread_detach.c (pthread_detach): Likewise.
* nptl/pthread_key_delete.c (pthread_key_delete): Likewise.
* nptl/pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
* nptl/pthread_create.c: Change static requirements for pthread
symbols.
* nptl/pthread_equal.c (__pthread_equal): Change strong alias to weak
for internal definition.
* nptl/pthread_exit.c (__pthread_exit): Likewise.
* nptl/pthread_getspecific.c (__pthread_getspecific): Likewise.
* nptl/pthread_key_create.c (__pthread_key_create): Likewise.
* nptl/pthread_mutex_destroy.c (__pthread_mutex_destroy): Likewise.
* nptl/pthread_mutex_init.c (__pthread_mutex_init): Likewise.
* nptl/pthread_mutex_lock.c (__pthread_mutex_lock): Likewise.
* nptl/pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise.
* nptl/pthread_mutex_unlock.c (__pthread_mutex_unlock): Likewise.
* nptl/pthread_mutexattr_init.c (__pthread_mutexattr_init): Likwise.
* nptl/pthread_mutexattr_settype.c (__pthread_mutexattr_settype):
Likewise.
* nptl/pthread_self.c (__pthread_self): Likewise.
* nptl/pthread_setspecific.c (__pthread_setspecific): Likewise.
* sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Likewise.
* misc/mmap.c (__mmap): Add internal symbol definition.
* misc/mmap.c (__mmap64): Likewise.
* sysdeps/unix/sysv/linux/mmap.c (__mmap): Likewise.
* sysdeps/unix/sysv/linux/mmap64.c (__mmap): Likewise.
(__mmap64): Likewise.
* sysdeps/unix/sysv/linux/i386/Versions (libc) [GLIBC_PRIVATE):
Add __uname.
2016-12-03 02:32:28 +08:00
|
|
|
__mmap; __munmap; __mprotect;
|
|
|
|
__sched_get_priority_min; __sched_get_priority_max;
|
2012-10-05 07:31:43 +08:00
|
|
|
}
|
1998-07-03 06:51:40 +08:00
|
|
|
}
|