diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-12-06 23:40:48 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2014-12-06 23:40:48 +0000 |
commit | c5c2b7c3fd823fc5c4a52506292a90eba60b0c62 (patch) | |
tree | 31f5ede458fed1e5ae15b6023e733c33683d088c /nptl | |
parent | 9752c3cdbce2b3b8338abf09c8b9dd9e78908b8a (diff) | |
download | glibc-c5c2b7c3fd823fc5c4a52506292a90eba60b0c62.tar glibc-c5c2b7c3fd823fc5c4a52506292a90eba60b0c62.tar.gz glibc-c5c2b7c3fd823fc5c4a52506292a90eba60b0c62.tar.bz2 glibc-c5c2b7c3fd823fc5c4a52506292a90eba60b0c62.zip |
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.
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/nptl-init.c | 2 | ||||
-rw-r--r-- | nptl/pthread_cond_timedwait.c | 2 | ||||
-rw-r--r-- | nptl/pthread_rwlock_timedrdlock.c | 2 | ||||
-rw-r--r-- | nptl/pthread_rwlock_timedwrlock.c | 2 |
4 files changed, 4 insertions, 4 deletions
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c index dcb77c5cf6..8e90f05bb3 100644 --- a/nptl/nptl-init.c +++ b/nptl/nptl-init.c @@ -433,7 +433,7 @@ __pthread_initialize_minimal_internal (void) /* Determine the default allowed stack size. This is the size used in case the user does not specify one. */ struct rlimit limit; - if (getrlimit (RLIMIT_STACK, &limit) != 0 + if (__getrlimit (RLIMIT_STACK, &limit) != 0 || limit.rlim_cur == RLIM_INFINITY) /* The system limit is not usable. Use an architecture-specific default. */ diff --git a/nptl/pthread_cond_timedwait.c b/nptl/pthread_cond_timedwait.c index 1c53bdddc3..989f0a6852 100644 --- a/nptl/pthread_cond_timedwait.c +++ b/nptl/pthread_cond_timedwait.c @@ -131,7 +131,7 @@ __pthread_cond_timedwait (cond, mutex, abstime) # else /* Get the current time. So far we support only one clock. */ struct timeval tv; - (void) gettimeofday (&tv, NULL); + (void) __gettimeofday (&tv, NULL); /* Convert the absolute timeout value to a relative timeout. */ rt.tv_sec = abstime->tv_sec - tv.tv_sec; diff --git a/nptl/pthread_rwlock_timedrdlock.c b/nptl/pthread_rwlock_timedrdlock.c index d3044fb047..822ac8bea5 100644 --- a/nptl/pthread_rwlock_timedrdlock.c +++ b/nptl/pthread_rwlock_timedrdlock.c @@ -90,7 +90,7 @@ pthread_rwlock_timedrdlock (rwlock, abstime) || !defined lll_futex_timed_wait_bitset) /* Get the current time. So far we support only one clock. */ struct timeval tv; - (void) gettimeofday (&tv, NULL); + (void) __gettimeofday (&tv, NULL); /* Convert the absolute timeout value to a relative timeout. */ struct timespec rt; diff --git a/nptl/pthread_rwlock_timedwrlock.c b/nptl/pthread_rwlock_timedwrlock.c index 560403f50a..22f9ad5d90 100644 --- a/nptl/pthread_rwlock_timedwrlock.c +++ b/nptl/pthread_rwlock_timedwrlock.c @@ -81,7 +81,7 @@ pthread_rwlock_timedwrlock (rwlock, abstime) || !defined lll_futex_timed_wait_bitset) /* Get the current time. So far we support only one clock. */ struct timeval tv; - (void) gettimeofday (&tv, NULL); + (void) __gettimeofday (&tv, NULL); /* Convert the absolute timeout value to a relative timeout. */ struct timespec rt; |