diff options
author | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2013-03-18 16:44:23 +0000 |
---|---|---|
committer | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2013-03-18 16:44:23 +0000 |
commit | 8751114637bcc3caaf16a4216da0afb84456558a (patch) | |
tree | f3eca66b88003bc49c309a95827d461ae5b66aed /libc/nptl | |
parent | b261131fe2b94b53fe4950d9265ae10bef228455 (diff) | |
download | eglibc2-8751114637bcc3caaf16a4216da0afb84456558a.tar.gz |
Merge changes between r22552 and r22663 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@22664 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/nptl')
-rw-r--r-- | libc/nptl/ChangeLog | 29 | ||||
-rw-r--r-- | libc/nptl/pthread_barrier_init.c | 4 | ||||
-rw-r--r-- | libc/nptl/pthread_mutex_init.c | 5 | ||||
-rw-r--r-- | libc/nptl/pthread_rwlock_init.c | 4 | ||||
-rw-r--r-- | libc/nptl/sysdeps/unix/sysv/linux/i386/dl-sysdep.h | 31 | ||||
-rw-r--r-- | libc/nptl/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h | 50 | ||||
-rw-r--r-- | libc/nptl/sysdeps/unix/sysv/linux/lowlevellock.c | 2 |
7 files changed, 68 insertions, 57 deletions
diff --git a/libc/nptl/ChangeLog b/libc/nptl/ChangeLog index 2374bbfd1..db98d4e9c 100644 --- a/libc/nptl/ChangeLog +++ b/libc/nptl/ChangeLog @@ -1,3 +1,32 @@ +2013-03-18 Siddhesh Poyarekar <siddhesh@redhat.com> + + * pthread_barrier_init.c (default_attr): Rename to + default_barrierattr. + (pthread_barrier_init): Adjust for the rename. + * pthread_mutex_init.c (default_attr): Rename to + default_mutexattr. + (__pthread_mutex_init): Adjust for the rename. + * pthread_rwlock_init.c (default_attr): Rebane to + default_rwlockattr. + (__pthread_rwlock_init): Adjust for the rename. + +2013-03-12 Carlos O'Donell <carlos@redhat.com> + + * sysdeps/unix/sysv/linux/lowlevellock.c: Include <atomic.h>. + +2013-03-04 Roland McGrath <roland@hack.frob.com> + + * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: + Change multiple inclusion guard to _LINUX_I686_DL_SYSDEP_H. + Use #include_next. + (HAVE_DL_DISCOVER_OSVERSION): Remove definition, now redundant. + (RTLD_PRIVATE_ERRNO): Likewise. + (NEED_DL_SYSINFO, DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): + Move macros and associated declaration to ... + * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: ... here. + Change multiple include guard to _LINUX_I386_DL_SYSDEP_H. + Use #include_next. + 2013-03-01 Carlos O'Donell <carlos@redhat.com> * Makefile (tests): Revert last change. diff --git a/libc/nptl/pthread_barrier_init.c b/libc/nptl/pthread_barrier_init.c index d5891fd41..6d2910ef9 100644 --- a/libc/nptl/pthread_barrier_init.c +++ b/libc/nptl/pthread_barrier_init.c @@ -22,7 +22,7 @@ #include <kernel-features.h> -static const struct pthread_barrierattr default_attr = +static const struct pthread_barrierattr default_barrierattr = { .pshared = PTHREAD_PROCESS_PRIVATE }; @@ -42,7 +42,7 @@ pthread_barrier_init (barrier, attr, count) const struct pthread_barrierattr *iattr = (attr != NULL ? iattr = (struct pthread_barrierattr *) attr - : &default_attr); + : &default_barrierattr); if (iattr->pshared != PTHREAD_PROCESS_PRIVATE && __builtin_expect (iattr->pshared != PTHREAD_PROCESS_SHARED, 0)) diff --git a/libc/nptl/pthread_mutex_init.c b/libc/nptl/pthread_mutex_init.c index 36da3f8bf..174d900dc 100644 --- a/libc/nptl/pthread_mutex_init.c +++ b/libc/nptl/pthread_mutex_init.c @@ -24,7 +24,7 @@ #include <stap-probe.h> -static const struct pthread_mutexattr default_attr = +static const struct pthread_mutexattr default_mutexattr = { /* Default is a normal mutex, not shared between processes. */ .mutexkind = PTHREAD_MUTEX_NORMAL @@ -45,7 +45,8 @@ __pthread_mutex_init (mutex, mutexattr) assert (sizeof (pthread_mutex_t) <= __SIZEOF_PTHREAD_MUTEX_T); - imutexattr = (const struct pthread_mutexattr *) mutexattr ?: &default_attr; + imutexattr = ((const struct pthread_mutexattr *) mutexattr + ?: &default_mutexattr); /* Sanity checks. */ switch (__builtin_expect (imutexattr->mutexkind diff --git a/libc/nptl/pthread_rwlock_init.c b/libc/nptl/pthread_rwlock_init.c index 16bfe2d75..29bef71db 100644 --- a/libc/nptl/pthread_rwlock_init.c +++ b/libc/nptl/pthread_rwlock_init.c @@ -21,7 +21,7 @@ #include <kernel-features.h> -static const struct pthread_rwlockattr default_attr = +static const struct pthread_rwlockattr default_rwlockattr = { .lockkind = PTHREAD_RWLOCK_DEFAULT_NP, .pshared = PTHREAD_PROCESS_PRIVATE @@ -35,7 +35,7 @@ __pthread_rwlock_init (rwlock, attr) { const struct pthread_rwlockattr *iattr; - iattr = ((const struct pthread_rwlockattr *) attr) ?: &default_attr; + iattr = ((const struct pthread_rwlockattr *) attr) ?: &default_rwlockattr; memset (rwlock, '\0', sizeof (*rwlock)); diff --git a/libc/nptl/sysdeps/unix/sysv/linux/i386/dl-sysdep.h b/libc/nptl/sysdeps/unix/sysv/linux/i386/dl-sysdep.h index 29a77a08f..a89eb0a62 100644 --- a/libc/nptl/sysdeps/unix/sysv/linux/i386/dl-sysdep.h +++ b/libc/nptl/sysdeps/unix/sysv/linux/i386/dl-sysdep.h @@ -16,12 +16,31 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#ifndef _DL_SYSDEP_H -# include "i686/dl-sysdep.h" +#ifndef _LINUX_I386_DL_SYSDEP_H -/* sysenter/syscall is not useful on i386 through i586, but the dynamic - linker and dl code in libc.a has to be able to load i686 compiled - libraries. */ -# undef USE_DL_SYSINFO +#include_next <dl-sysdep.h> + +/* Traditionally system calls have been made using int $0x80. A + second method was introduced which, if possible, will use the + sysenter/syscall instructions. To signal the presence and where to + find the code the kernel passes an AT_SYSINFO value in the + auxiliary vector to the application. */ +#define NEED_DL_SYSINFO 1 + +#ifndef __ASSEMBLER__ +extern void _dl_sysinfo_int80 (void) attribute_hidden; +# define DL_SYSINFO_DEFAULT (uintptr_t) _dl_sysinfo_int80 +# define DL_SYSINFO_IMPLEMENTATION \ + asm (".text\n\t" \ + ".type _dl_sysinfo_int80,@function\n\t" \ + ".hidden _dl_sysinfo_int80\n" \ + CFI_STARTPROC "\n" \ + "_dl_sysinfo_int80:\n\t" \ + "int $0x80;\n\t" \ + "ret;\n\t" \ + CFI_ENDPROC "\n" \ + ".size _dl_sysinfo_int80,.-_dl_sysinfo_int80\n\t" \ + ".previous"); +#endif #endif /* dl-sysdep.h */ diff --git a/libc/nptl/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h b/libc/nptl/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h index 466f0177c..c59c8dbbd 100644 --- a/libc/nptl/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h +++ b/libc/nptl/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h @@ -16,52 +16,14 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#ifndef _DL_SYSDEP_H -#define _DL_SYSDEP_H 1 +#ifndef _LINUX_I686_DL_SYSDEP_H +#define _LINUX_I686_DL_SYSDEP_H 1 -/* This macro must be defined to either 0 or 1. +/* The i386 file does most of the work. */ +#include_next <dl-sysdep.h> - If 1, then an errno global variable hidden in ld.so will work right with - all the errno-using libc code compiled for ld.so, and there is never a - need to share the errno location with libc. This is appropriate only if - all the libc functions that ld.so uses are called without PLT and always - get the versions linked into ld.so rather than the libc ones. */ - -#ifdef IS_IN_rtld -# define RTLD_PRIVATE_ERRNO 1 -#else -# define RTLD_PRIVATE_ERRNO 0 -#endif - -/* Traditionally system calls have been made using int $0x80. A - second method was introduced which, if possible, will use the - sysenter/syscall instructions. To signal the presence and where to - find the code the kernel passes an AT_SYSINFO value in the - auxiliary vector to the application. */ -#define NEED_DL_SYSINFO 1 +/* Actually use the vDSO entry point for syscalls. + i386/dl-sysdep.h arranges to support it, but not use it. */ #define USE_DL_SYSINFO 1 -#if defined NEED_DL_SYSINFO && !defined __ASSEMBLER__ -extern void _dl_sysinfo_int80 (void) attribute_hidden; -# define DL_SYSINFO_DEFAULT (uintptr_t) _dl_sysinfo_int80 -# define DL_SYSINFO_IMPLEMENTATION \ - asm (".text\n\t" \ - ".type _dl_sysinfo_int80,@function\n\t" \ - ".hidden _dl_sysinfo_int80\n" \ - CFI_STARTPROC "\n" \ - "_dl_sysinfo_int80:\n\t" \ - "int $0x80;\n\t" \ - "ret;\n\t" \ - CFI_ENDPROC "\n" \ - ".size _dl_sysinfo_int80,.-_dl_sysinfo_int80\n\t" \ - ".previous"); -#endif - - -#ifndef __ASSEMBLER__ -/* Get version of the OS. */ -extern int _dl_discover_osversion (void) attribute_hidden; -# define HAVE_DL_DISCOVER_OSVERSION 1 -#endif - #endif /* dl-sysdep.h */ diff --git a/libc/nptl/sysdeps/unix/sysv/linux/lowlevellock.c b/libc/nptl/sysdeps/unix/sysv/linux/lowlevellock.c index c33791ac2..0efb72a56 100644 --- a/libc/nptl/sysdeps/unix/sysv/linux/lowlevellock.c +++ b/libc/nptl/sysdeps/unix/sysv/linux/lowlevellock.c @@ -21,7 +21,7 @@ #include <sysdep.h> #include <lowlevellock.h> #include <sys/time.h> - +#include <atomic.h> void __lll_lock_wait_private (int *futex) |