Fix pthreads getrlimit, gettimeofday namespace (bug 17682).
authorJoseph Myers <joseph@codesourcery.com>
Sat, 6 Dec 2014 23:40:48 +0000 (23:40 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Sat, 6 Dec 2014 23:40:48 +0000 (23:40 +0000)
commitc5c2b7c3fd823fc5c4a52506292a90eba60b0c62
tree31f5ede458fed1e5ae15b6023e733c33683d088c
parent9752c3cdbce2b3b8338abf09c8b9dd9e78908b8a
Fix pthreads getrlimit, gettimeofday namespace (bug 17682).

Some pthreads functions use getrlimit and gettimeofday, but these
functions are XSI, not base POSIX; this is a namespace issue for
dynamic linking as well as static linking.  This patch makes them use
__getrlimit and __gettimeofday instead - the former needed to be newly
exported from libc.so at GLIBC_PRIVATE (and so now needs
libc_hidden_proto / libc_hidden_def), the latter was already exported.

Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by the patch).

[BZ #17682]
* resource/Versions (libc): Add __getrlimit at GLIBC_PRIVATE.
* resource/getrlimit.c (__getrlimit): Use libc_hidden_def.
* sysdeps/mach/hurd/getrlimit.c (__getrlimit): Likewise.
* include/sys/resource.h (__getrlimit): Use libc_hidden_proto.
* nptl/nptl-init.c (__pthread_initialize_minimal_internal): Use
__getrlimit instead of getrlimit.
* nptl/pthread_cond_timedwait.c (__pthread_cond_timedwait): Use
__gettimeofday instead of gettimeofday.
* nptl/pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
Likewise.
* nptl/pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
Likewise.
* sysdeps/pthread/aio_misc.c (handle_fildes_io): Likewise.
* conform/Makefile (test-xfail-POSIX2008/aio.h/linknamespace):
Remove variable.
(test-xfail-POSIX2008/pthread.h/linknamespace): Likewise.
(test-xfail-POSIX2008/time.h/linknamespace): Likewise.
12 files changed:
ChangeLog
NEWS
conform/Makefile
include/sys/resource.h
nptl/nptl-init.c
nptl/pthread_cond_timedwait.c
nptl/pthread_rwlock_timedrdlock.c
nptl/pthread_rwlock_timedwrlock.c
resource/Versions
resource/getrlimit.c
sysdeps/mach/hurd/getrlimit.c
sysdeps/pthread/aio_misc.c