From f083450f45f580bf33fa345ddadb897dc85d78e8 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 7 Jul 2014 09:29:06 -0700 Subject: NPTL is no longer an add-on! --- ChangeLog | 33 ++++++ NEWS | 5 + nptl/ANNOUNCE | 92 ----------------- nptl/Makeconfig | 32 ------ nptl/configure | 13 --- nptl/internaltypes.h | 161 ----------------------------- sysdeps/nptl/Makeconfig | 32 ++++++ sysdeps/nptl/aio_misc.h | 2 +- sysdeps/nptl/fork.c | 2 +- sysdeps/nptl/gai_misc.h | 2 +- sysdeps/nptl/internaltypes.h | 161 +++++++++++++++++++++++++++++ sysdeps/nptl/jmp-unwind.c | 2 +- sysdeps/nptl/librt-cancellation.c | 2 +- sysdeps/nptl/setxid.h | 2 +- sysdeps/unix/sysv/linux/aarch64/Implies | 1 + sysdeps/unix/sysv/linux/alpha/Implies | 1 + sysdeps/unix/sysv/linux/arm/Implies | 1 + sysdeps/unix/sysv/linux/configure | 27 ----- sysdeps/unix/sysv/linux/configure.ac | 27 ----- sysdeps/unix/sysv/linux/hppa/Implies | 1 + sysdeps/unix/sysv/linux/i386/Implies | 1 + sysdeps/unix/sysv/linux/i386/i686/Implies | 1 + sysdeps/unix/sysv/linux/ia64/Implies | 1 + sysdeps/unix/sysv/linux/m68k/Implies | 1 + sysdeps/unix/sysv/linux/microblaze/Implies | 1 + sysdeps/unix/sysv/linux/mips/Implies | 1 + sysdeps/unix/sysv/linux/powerpc/Implies | 1 + sysdeps/unix/sysv/linux/s390/Implies | 2 + sysdeps/unix/sysv/linux/sh/Implies | 1 + sysdeps/unix/sysv/linux/sparc/Implies | 1 + sysdeps/unix/sysv/linux/tile/Implies | 1 + sysdeps/unix/sysv/linux/x86_64/Implies | 1 + sysdeps/unix/sysv/linux/x86_64/x32/Implies | 1 + 33 files changed, 255 insertions(+), 358 deletions(-) delete mode 100644 nptl/ANNOUNCE delete mode 100644 nptl/Makeconfig delete mode 100644 nptl/configure delete mode 100644 nptl/internaltypes.h create mode 100644 sysdeps/nptl/Makeconfig create mode 100644 sysdeps/nptl/internaltypes.h create mode 100644 sysdeps/unix/sysv/linux/arm/Implies create mode 100644 sysdeps/unix/sysv/linux/hppa/Implies create mode 100644 sysdeps/unix/sysv/linux/i386/i686/Implies create mode 100644 sysdeps/unix/sysv/linux/m68k/Implies create mode 100644 sysdeps/unix/sysv/linux/microblaze/Implies create mode 100644 sysdeps/unix/sysv/linux/mips/Implies create mode 100644 sysdeps/unix/sysv/linux/powerpc/Implies create mode 100644 sysdeps/unix/sysv/linux/sh/Implies create mode 100644 sysdeps/unix/sysv/linux/sparc/Implies create mode 100644 sysdeps/unix/sysv/linux/tile/Implies create mode 100644 sysdeps/unix/sysv/linux/x86_64/x32/Implies diff --git a/ChangeLog b/ChangeLog index 39f0e78837..ac35437275 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,38 @@ 2014-07-07 Roland McGrath + * NEWS: NPTL is no longer an add-on! + * nptl/internaltypes.h: Moved ... + * sysdeps/nptl/internaltypes.h: ... here. + * sysdeps/nptl/aio_misc.h: Use in #include. + * sysdeps/nptl/fork.c: Likewise. + * sysdeps/nptl/gai_misc.h: Likewise. + * sysdeps/nptl/librt-cancellation.c: Likewise. + * sysdeps/nptl/jmp-unwind.c: Likewise. + * sysdeps/nptl/setxid.h: Likewise. + * sysdeps/unix/sysv/linux/aarch64/Implies: New file. + * sysdeps/unix/sysv/linux/alpha/Implies: Add alpha/nptl. + * sysdeps/unix/sysv/linux/arm/Implies: New file. + * sysdeps/unix/sysv/linux/hppa/Implies: New file. + * sysdeps/unix/sysv/linux/i386/Implies: Add i386/nptl. + * sysdeps/unix/sysv/linux/i386/i686/Implies: New file. + * sysdeps/unix/sysv/linux/ia64/Implies: Add ia64/nptl. + * sysdeps/unix/sysv/linux/m68k/Implies: New file. + * sysdeps/unix/sysv/linux/microblaze/Implies: New file. + * sysdeps/unix/sysv/linux/mips/Implies: New file. + * sysdeps/unix/sysv/linux/powerpc/Implies: New file. + * sysdeps/unix/sysv/linux/s390/Implies: Add s390/nptl. + * sysdeps/unix/sysv/linux/sh/Implies: New file. + * sysdeps/unix/sysv/linux/sparc/Implies: New file. + * sysdeps/unix/sysv/linux/tile/Implies: New file. + * sysdeps/unix/sysv/linux/x86_64/Implies: Add x86_64/nptl. + * sysdeps/unix/sysv/linux/x86_64/x32/Implies: New file. + * nptl/Makeconfig: Moved ... + * sysdeps/nptl/Makeconfig: ... here. + * nptl/configure: File removed. + * nptl/ANNOUNCE: File removed. + * sysdeps/unix/sysv/linux/configure.ac: Remove nptl sanity check. + * sysdeps/unix/sysv/linux/configure: Regenerated. + * nptl/Makefile (routines): Add libc_pthread_init, libc_multiple_threads, register-atfork and unregister-atfork. (libpthread-routines): Add pthread_mutex_cond_lock and pt-fork here. diff --git a/NEWS b/NEWS index a07ea6615c..f4c501ca56 100644 --- a/NEWS +++ b/NEWS @@ -65,6 +65,11 @@ Version 2.20 * All supported architectures now use the main glibc sysdeps directory instead of some being in a separate "ports" directory (which was distributed separately before glibc 2.17). + +* The NPTL implementation of POSIX pthreads is no longer an "add-on". + On configurations that support it (all Linux configurations), it's now + used regardless of the --enable-add-ons switch to configure. It is no + longer possible to build such configurations without pthreads support. Version 2.19 diff --git a/nptl/ANNOUNCE b/nptl/ANNOUNCE deleted file mode 100644 index b63c657b85..0000000000 --- a/nptl/ANNOUNCE +++ /dev/null @@ -1,92 +0,0 @@ -Now that the Linux kernel is once again able to run all the tests we -have and since glibc 2.3 was released it was time for a new code drop. -I've uploaded the second code drop for the Native POSIX Thread -Library: - - ftp://people.redhat.com/drepper/nptl/nptl-0.2.tar.bz2 - -You need - -- the latest of Linus' kernel from BitKeeper (or 2.5.41 when it - is released); - -- glibc 2.3 - -- the very latest in tools such as - - + gcc either from the current development branch or the gcc 3.2 - from Red Hat Linux 8; - - + binutils preferrably from CVS, from H.J. Lu's latest release for - Linux, or from RHL 8. - - -Compiling glibc should proceed smoothly. But there are a number of -tests which fail, mostly because some functionality is missing in -glibc. Ignore those errors. It is only important that all tests in -nptl/ are passing. Run - - make subdirs=nptl check - -to run all thread tests. - - -This version features several improvements: - -- all APIs are now implemented; - -- fork handling has been improved; stacks in the child are freed; - atfork handlers are removed if they were registered from a module - which gets unloaded. - -- pthread_tryjoin_np and pthread_timedjoin_np are implemented - -- TSD handling corrected and optimized. - -- many more tests which also test the underlying kernel implementation. - -- the build infrastructure has been implemented so that the DSO and - archives are built in usable form and with correct named. - -- libthread_db has been implemented. This is the library which is - needed by all program which need to get access to internals of - libpthread (mainly debuggers). - -- the CPU clock functions are implemented - - - -The white paper hasn't yet been updated. It's still available at - - http://people.redhat.com/drepper/nptl-design.pdf - - -This release should be ready for some serious testing. I know it is -hard to compile which I why I'm looking into providing binary RPMs. -They can be used on non-critical systems. I'll only be able to -provide binaries for RHL8 based systems, though, and the kernel still -must be installed separately. - - -The next steps will include: - -- write more tests and fix the bugs which are discovered this way - -- update the white paper - -- write and run more performance tests - -- port to IA-64 - - -Interested parties are once again invited to join the mailing we -created: - - - phil-list@redhat.com - -Go to - - https://listman.redhat.com/mailman/listinfo/phil-list - -to subscribe, unsubscribe, or review the archive. diff --git a/nptl/Makeconfig b/nptl/Makeconfig deleted file mode 100644 index bfd1db0b31..0000000000 --- a/nptl/Makeconfig +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright (C) 2002-2014 Free Software Foundation, Inc. -# This file is part of the GNU C Library. -# Contributed by Ulrich Drepper , 2002. - -# The GNU C Library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. - -# The GNU C Library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. - -# You should have received a copy of the GNU Lesser General Public -# License along with the GNU C Library; if not, see -# . - -# Makeconfig fragment for NPTL add-on. -# This gets included at the end of the main glibc Makeconfig. - -have-thread-library = yes - -shared-thread-library = $(common-objpfx)nptl/libpthread_nonshared.a \ - $(common-objpfx)nptl/libpthread.so -static-thread-library = $(common-objpfx)nptl/libpthread.a - -rpath-dirs += nptl - -# This makes for ptw-*.? object rules in sysd-rules. -ptw-CPPFLAGS := -DPTW -sysd-rules-patterns += ptw-%:% diff --git a/nptl/configure b/nptl/configure deleted file mode 100644 index dd246c755a..0000000000 --- a/nptl/configure +++ /dev/null @@ -1,13 +0,0 @@ -# This is a shell script fragment sourced by the main configure script. -# We're obliged to give here the canonical name that will be used to -# as a subdirectory to search for in other add-ons' sysdeps trees. - -libc_add_on_canonical=nptl - -# Only linux configurations support NPTL. -if test $add_ons_automatic = yes; then - case "$config_os" in - *linux*) ;; - *) libc_add_on= ;; - esac -fi diff --git a/nptl/internaltypes.h b/nptl/internaltypes.h deleted file mode 100644 index d127f688cf..0000000000 --- a/nptl/internaltypes.h +++ /dev/null @@ -1,161 +0,0 @@ -/* Copyright (C) 2002-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 2002. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _INTERNALTYPES_H -#define _INTERNALTYPES_H 1 - -#include - - -struct pthread_attr -{ - /* Scheduler parameters and priority. */ - struct sched_param schedparam; - int schedpolicy; - /* Various flags like detachstate, scope, etc. */ - int flags; - /* Size of guard area. */ - size_t guardsize; - /* Stack handling. */ - void *stackaddr; - size_t stacksize; - /* Affinity map. */ - cpu_set_t *cpuset; - size_t cpusetsize; -}; - -#define ATTR_FLAG_DETACHSTATE 0x0001 -#define ATTR_FLAG_NOTINHERITSCHED 0x0002 -#define ATTR_FLAG_SCOPEPROCESS 0x0004 -#define ATTR_FLAG_STACKADDR 0x0008 -#define ATTR_FLAG_OLDATTR 0x0010 -#define ATTR_FLAG_SCHED_SET 0x0020 -#define ATTR_FLAG_POLICY_SET 0x0040 - - -/* Mutex attribute data structure. */ -struct pthread_mutexattr -{ - /* Identifier for the kind of mutex. - - Bit 31 is set if the mutex is to be shared between processes. - - Bit 0 to 30 contain one of the PTHREAD_MUTEX_ values to identify - the type of the mutex. */ - int mutexkind; -}; - - -/* Conditional variable attribute data structure. */ -struct pthread_condattr -{ - /* Combination of values: - - Bit 0 : flag whether conditional variable will be sharable between - processes. - - Bit 1-7: clock ID. */ - int value; -}; - - -/* The __NWAITERS field is used as a counter and to house the number - of bits for other purposes. COND_CLOCK_BITS is the number - of bits needed to represent the ID of the clock. COND_NWAITERS_SHIFT - is the number of bits reserved for other purposes like the clock. */ -#define COND_CLOCK_BITS 1 -#define COND_NWAITERS_SHIFT 1 - - -/* Read-write lock variable attribute data structure. */ -struct pthread_rwlockattr -{ - int lockkind; - int pshared; -}; - - -/* Barrier data structure. */ -struct pthread_barrier -{ - unsigned int curr_event; - int lock; - unsigned int left; - unsigned int init_count; - int private; -}; - - -/* Barrier variable attribute data structure. */ -struct pthread_barrierattr -{ - int pshared; -}; - - -/* Thread-local data handling. */ -struct pthread_key_struct -{ - /* Sequence numbers. Even numbers indicated vacant entries. Note - that zero is even. We use uintptr_t to not require padding on - 32- and 64-bit machines. On 64-bit machines it helps to avoid - wrapping, too. */ - uintptr_t seq; - - /* Destructor for the data. */ - void (*destr) (void *); -}; - -/* Check whether an entry is unused. */ -#define KEY_UNUSED(p) (((p) & 1) == 0) -/* Check whether a key is usable. We cannot reuse an allocated key if - the sequence counter would overflow after the next destroy call. - This would mean that we potentially free memory for a key with the - same sequence. This is *very* unlikely to happen, A program would - have to create and destroy a key 2^31 times (on 32-bit platforms, - on 64-bit platforms that would be 2^63). If it should happen we - simply don't use this specific key anymore. */ -#define KEY_USABLE(p) (((uintptr_t) (p)) < ((uintptr_t) ((p) + 2))) - - -/* Handling of read-write lock data. */ -// XXX For now there is only one flag. Maybe more in future. -#define RWLOCK_RECURSIVE(rwlock) ((rwlock)->__data.__flags != 0) - - -/* Semaphore variable structure. */ -struct new_sem -{ - unsigned int value; - int private; - unsigned long int nwaiters; -}; - -struct old_sem -{ - unsigned int value; -}; - - -/* Compatibility type for old conditional variable interfaces. */ -typedef struct -{ - pthread_cond_t *cond; -} pthread_cond_2_0_t; - -#endif /* internaltypes.h */ diff --git a/sysdeps/nptl/Makeconfig b/sysdeps/nptl/Makeconfig new file mode 100644 index 0000000000..bfd1db0b31 --- /dev/null +++ b/sysdeps/nptl/Makeconfig @@ -0,0 +1,32 @@ +# Copyright (C) 2002-2014 Free Software Foundation, Inc. +# This file is part of the GNU C Library. +# Contributed by Ulrich Drepper , 2002. + +# The GNU C Library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. + +# The GNU C Library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. + +# You should have received a copy of the GNU Lesser General Public +# License along with the GNU C Library; if not, see +# . + +# Makeconfig fragment for NPTL add-on. +# This gets included at the end of the main glibc Makeconfig. + +have-thread-library = yes + +shared-thread-library = $(common-objpfx)nptl/libpthread_nonshared.a \ + $(common-objpfx)nptl/libpthread.so +static-thread-library = $(common-objpfx)nptl/libpthread.a + +rpath-dirs += nptl + +# This makes for ptw-*.? object rules in sysd-rules. +ptw-CPPFLAGS := -DPTW +sysd-rules-patterns += ptw-%:% diff --git a/sysdeps/nptl/aio_misc.h b/sysdeps/nptl/aio_misc.h index ac3488c57e..c3de84b1ac 100644 --- a/sysdeps/nptl/aio_misc.h +++ b/sysdeps/nptl/aio_misc.h @@ -21,7 +21,7 @@ correct aio_suspend and lio_listio implementations. */ #include -#include +#include #include #define DONT_NEED_AIO_MISC_COND 1 diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c index 70201a294c..511533aa60 100644 --- a/sysdeps/nptl/fork.c +++ b/sysdeps/nptl/fork.c @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include #include diff --git a/sysdeps/nptl/gai_misc.h b/sysdeps/nptl/gai_misc.h index 946275ed75..942f2b1b7e 100644 --- a/sysdeps/nptl/gai_misc.h +++ b/sysdeps/nptl/gai_misc.h @@ -22,7 +22,7 @@ #include #include -#include +#include #include #define DONT_NEED_GAI_MISC_COND 1 diff --git a/sysdeps/nptl/internaltypes.h b/sysdeps/nptl/internaltypes.h new file mode 100644 index 0000000000..d127f688cf --- /dev/null +++ b/sysdeps/nptl/internaltypes.h @@ -0,0 +1,161 @@ +/* Copyright (C) 2002-2014 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2002. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _INTERNALTYPES_H +#define _INTERNALTYPES_H 1 + +#include + + +struct pthread_attr +{ + /* Scheduler parameters and priority. */ + struct sched_param schedparam; + int schedpolicy; + /* Various flags like detachstate, scope, etc. */ + int flags; + /* Size of guard area. */ + size_t guardsize; + /* Stack handling. */ + void *stackaddr; + size_t stacksize; + /* Affinity map. */ + cpu_set_t *cpuset; + size_t cpusetsize; +}; + +#define ATTR_FLAG_DETACHSTATE 0x0001 +#define ATTR_FLAG_NOTINHERITSCHED 0x0002 +#define ATTR_FLAG_SCOPEPROCESS 0x0004 +#define ATTR_FLAG_STACKADDR 0x0008 +#define ATTR_FLAG_OLDATTR 0x0010 +#define ATTR_FLAG_SCHED_SET 0x0020 +#define ATTR_FLAG_POLICY_SET 0x0040 + + +/* Mutex attribute data structure. */ +struct pthread_mutexattr +{ + /* Identifier for the kind of mutex. + + Bit 31 is set if the mutex is to be shared between processes. + + Bit 0 to 30 contain one of the PTHREAD_MUTEX_ values to identify + the type of the mutex. */ + int mutexkind; +}; + + +/* Conditional variable attribute data structure. */ +struct pthread_condattr +{ + /* Combination of values: + + Bit 0 : flag whether conditional variable will be sharable between + processes. + + Bit 1-7: clock ID. */ + int value; +}; + + +/* The __NWAITERS field is used as a counter and to house the number + of bits for other purposes. COND_CLOCK_BITS is the number + of bits needed to represent the ID of the clock. COND_NWAITERS_SHIFT + is the number of bits reserved for other purposes like the clock. */ +#define COND_CLOCK_BITS 1 +#define COND_NWAITERS_SHIFT 1 + + +/* Read-write lock variable attribute data structure. */ +struct pthread_rwlockattr +{ + int lockkind; + int pshared; +}; + + +/* Barrier data structure. */ +struct pthread_barrier +{ + unsigned int curr_event; + int lock; + unsigned int left; + unsigned int init_count; + int private; +}; + + +/* Barrier variable attribute data structure. */ +struct pthread_barrierattr +{ + int pshared; +}; + + +/* Thread-local data handling. */ +struct pthread_key_struct +{ + /* Sequence numbers. Even numbers indicated vacant entries. Note + that zero is even. We use uintptr_t to not require padding on + 32- and 64-bit machines. On 64-bit machines it helps to avoid + wrapping, too. */ + uintptr_t seq; + + /* Destructor for the data. */ + void (*destr) (void *); +}; + +/* Check whether an entry is unused. */ +#define KEY_UNUSED(p) (((p) & 1) == 0) +/* Check whether a key is usable. We cannot reuse an allocated key if + the sequence counter would overflow after the next destroy call. + This would mean that we potentially free memory for a key with the + same sequence. This is *very* unlikely to happen, A program would + have to create and destroy a key 2^31 times (on 32-bit platforms, + on 64-bit platforms that would be 2^63). If it should happen we + simply don't use this specific key anymore. */ +#define KEY_USABLE(p) (((uintptr_t) (p)) < ((uintptr_t) ((p) + 2))) + + +/* Handling of read-write lock data. */ +// XXX For now there is only one flag. Maybe more in future. +#define RWLOCK_RECURSIVE(rwlock) ((rwlock)->__data.__flags != 0) + + +/* Semaphore variable structure. */ +struct new_sem +{ + unsigned int value; + int private; + unsigned long int nwaiters; +}; + +struct old_sem +{ + unsigned int value; +}; + + +/* Compatibility type for old conditional variable interfaces. */ +typedef struct +{ + pthread_cond_t *cond; +} pthread_cond_2_0_t; + +#endif /* internaltypes.h */ diff --git a/sysdeps/nptl/jmp-unwind.c b/sysdeps/nptl/jmp-unwind.c index b3a960c980..0ac6b27522 100644 --- a/sysdeps/nptl/jmp-unwind.c +++ b/sysdeps/nptl/jmp-unwind.c @@ -18,7 +18,7 @@ #include #include -#include +#include extern void __pthread_cleanup_upto (__jmp_buf env, char *targetframe); #pragma weak __pthread_cleanup_upto diff --git a/sysdeps/nptl/librt-cancellation.c b/sysdeps/nptl/librt-cancellation.c index e512929fbe..c0258baa99 100644 --- a/sysdeps/nptl/librt-cancellation.c +++ b/sysdeps/nptl/librt-cancellation.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include "pthreadP.h" +#include #define __pthread_enable_asynccancel __librt_enable_asynccancel diff --git a/sysdeps/nptl/setxid.h b/sysdeps/nptl/setxid.h index 76c88e0feb..c02e92d154 100644 --- a/sysdeps/nptl/setxid.h +++ b/sysdeps/nptl/setxid.h @@ -15,7 +15,7 @@ License along with the GNU C Library; if not, see . */ -#include +#include #include #define __SETXID_1(cmd, arg1) \ diff --git a/sysdeps/unix/sysv/linux/aarch64/Implies b/sysdeps/unix/sysv/linux/aarch64/Implies index 37b6bda7f9..4409e19b92 100644 --- a/sysdeps/unix/sysv/linux/aarch64/Implies +++ b/sysdeps/unix/sysv/linux/aarch64/Implies @@ -1,2 +1,3 @@ +aarch64/nptl unix/sysv/linux/generic unix/sysv/linux/wordsize-64 diff --git a/sysdeps/unix/sysv/linux/alpha/Implies b/sysdeps/unix/sysv/linux/alpha/Implies index 1616efecbe..fddb49e2c2 100644 --- a/sysdeps/unix/sysv/linux/alpha/Implies +++ b/sysdeps/unix/sysv/linux/alpha/Implies @@ -1,3 +1,4 @@ +alpha/nptl unix/sysv/linux/wordsize-64 # These supply the ABI compatibility for when long double was double. ieee754/ldbl-64-128 diff --git a/sysdeps/unix/sysv/linux/arm/Implies b/sysdeps/unix/sysv/linux/arm/Implies new file mode 100644 index 0000000000..e609c137d0 --- /dev/null +++ b/sysdeps/unix/sysv/linux/arm/Implies @@ -0,0 +1 @@ +arm/nptl diff --git a/sysdeps/unix/sysv/linux/configure b/sysdeps/unix/sysv/linux/configure index e8f83fbd12..7825ff66ca 100644 --- a/sysdeps/unix/sysv/linux/configure +++ b/sysdeps/unix/sysv/linux/configure @@ -158,33 +158,6 @@ if test -n "$sysheaders"; then CPPFLAGS=$OLD_CPPFLAGS fi -# Under Linux the NPTL add-on should be available. -case $add_ons in - # It is available. Good. - *nptl*) - nptl_missing= - ;; - *) - nptl_missing=yes - ;; -esac - -if test "$nptl_missing"; then - if test $enable_sanity = yes; then - echo "\ -*** On GNU/Linux systems it is normal to compile GNU libc with the -*** \`nptl' add-on. Without that, the library will be -*** incompatible with normal GNU/Linux systems. -*** If you really mean to not use this add-on, run configure again -*** using the extra parameter \`--disable-sanity-checks'." - exit 1 - else - echo "\ -*** WARNING: Are you sure you do not want to use the \`nptl' -*** add-on?" - fi -fi - if test "$prefix" = "/usr/local" -o "$prefix" = "/usr/local/" -o "$prefix" = "NONE"; then if test $enable_sanity = yes; then echo "\ diff --git a/sysdeps/unix/sysv/linux/configure.ac b/sysdeps/unix/sysv/linux/configure.ac index 9b09b3fdd3..f207c26c77 100644 --- a/sysdeps/unix/sysv/linux/configure.ac +++ b/sysdeps/unix/sysv/linux/configure.ac @@ -81,33 +81,6 @@ if test -n "$sysheaders"; then CPPFLAGS=$OLD_CPPFLAGS fi -# Under Linux the NPTL add-on should be available. -case $add_ons in - # It is available. Good. - *nptl*) - nptl_missing= - ;; - *) - nptl_missing=yes - ;; -esac - -if test "$nptl_missing"; then - if test $enable_sanity = yes; then - echo "\ -*** On GNU/Linux systems it is normal to compile GNU libc with the -*** \`nptl' add-on. Without that, the library will be -*** incompatible with normal GNU/Linux systems. -*** If you really mean to not use this add-on, run configure again -*** using the extra parameter \`--disable-sanity-checks'." - exit 1 - else - echo "\ -*** WARNING: Are you sure you do not want to use the \`nptl' -*** add-on?" - fi -fi - if test "$prefix" = "/usr/local" -o "$prefix" = "/usr/local/" -o "$prefix" = "NONE"; then if test $enable_sanity = yes; then echo "\ diff --git a/sysdeps/unix/sysv/linux/hppa/Implies b/sysdeps/unix/sysv/linux/hppa/Implies new file mode 100644 index 0000000000..c3d145cb44 --- /dev/null +++ b/sysdeps/unix/sysv/linux/hppa/Implies @@ -0,0 +1 @@ +hppa/nptl diff --git a/sysdeps/unix/sysv/linux/i386/Implies b/sysdeps/unix/sysv/linux/i386/Implies index ccc7eaa8a4..4bf5f8b520 100644 --- a/sysdeps/unix/sysv/linux/i386/Implies +++ b/sysdeps/unix/sysv/linux/i386/Implies @@ -1 +1,2 @@ unix/sysv/linux/x86 +i386/nptl diff --git a/sysdeps/unix/sysv/linux/i386/i686/Implies b/sysdeps/unix/sysv/linux/i386/i686/Implies new file mode 100644 index 0000000000..8948a800bb --- /dev/null +++ b/sysdeps/unix/sysv/linux/i386/i686/Implies @@ -0,0 +1 @@ +i386/i686/nptl diff --git a/sysdeps/unix/sysv/linux/ia64/Implies b/sysdeps/unix/sysv/linux/ia64/Implies index 8d91c80097..9762539f9c 100644 --- a/sysdeps/unix/sysv/linux/ia64/Implies +++ b/sysdeps/unix/sysv/linux/ia64/Implies @@ -1 +1,2 @@ +ia64/nptl unix/sysv/linux/wordsize-64 diff --git a/sysdeps/unix/sysv/linux/m68k/Implies b/sysdeps/unix/sysv/linux/m68k/Implies new file mode 100644 index 0000000000..77f1f7dd2b --- /dev/null +++ b/sysdeps/unix/sysv/linux/m68k/Implies @@ -0,0 +1 @@ +m68k/nptl diff --git a/sysdeps/unix/sysv/linux/microblaze/Implies b/sysdeps/unix/sysv/linux/microblaze/Implies new file mode 100644 index 0000000000..469a141418 --- /dev/null +++ b/sysdeps/unix/sysv/linux/microblaze/Implies @@ -0,0 +1 @@ +microblaze/nptl diff --git a/sysdeps/unix/sysv/linux/mips/Implies b/sysdeps/unix/sysv/linux/mips/Implies new file mode 100644 index 0000000000..656fa77b63 --- /dev/null +++ b/sysdeps/unix/sysv/linux/mips/Implies @@ -0,0 +1 @@ +mips/nptl diff --git a/sysdeps/unix/sysv/linux/powerpc/Implies b/sysdeps/unix/sysv/linux/powerpc/Implies new file mode 100644 index 0000000000..466b7f4b4a --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/Implies @@ -0,0 +1 @@ +powerpc/nptl diff --git a/sysdeps/unix/sysv/linux/s390/Implies b/sysdeps/unix/sysv/linux/s390/Implies index efda9d27c0..e6e51fa5a7 100644 --- a/sysdeps/unix/sysv/linux/s390/Implies +++ b/sysdeps/unix/sysv/linux/s390/Implies @@ -1,3 +1,5 @@ +s390/nptl + # These supply the ABI compatibility for when long double was double. ieee754/ldbl-64-128 ieee754/ldbl-opt diff --git a/sysdeps/unix/sysv/linux/sh/Implies b/sysdeps/unix/sysv/linux/sh/Implies new file mode 100644 index 0000000000..c15a97e222 --- /dev/null +++ b/sysdeps/unix/sysv/linux/sh/Implies @@ -0,0 +1 @@ +sh/nptl diff --git a/sysdeps/unix/sysv/linux/sparc/Implies b/sysdeps/unix/sysv/linux/sparc/Implies new file mode 100644 index 0000000000..a8cc375171 --- /dev/null +++ b/sysdeps/unix/sysv/linux/sparc/Implies @@ -0,0 +1 @@ +sparc/nptl diff --git a/sysdeps/unix/sysv/linux/tile/Implies b/sysdeps/unix/sysv/linux/tile/Implies new file mode 100644 index 0000000000..e050152859 --- /dev/null +++ b/sysdeps/unix/sysv/linux/tile/Implies @@ -0,0 +1 @@ +tile/nptl diff --git a/sysdeps/unix/sysv/linux/x86_64/Implies b/sysdeps/unix/sysv/linux/x86_64/Implies index c7a65c9386..c9be3c4711 100644 --- a/sysdeps/unix/sysv/linux/x86_64/Implies +++ b/sysdeps/unix/sysv/linux/x86_64/Implies @@ -1,2 +1,3 @@ unix/sysv/linux/x86 unix/sysv/linux/wordsize-64 +x86_64/nptl diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/Implies b/sysdeps/unix/sysv/linux/x86_64/x32/Implies new file mode 100644 index 0000000000..b287872e93 --- /dev/null +++ b/sysdeps/unix/sysv/linux/x86_64/x32/Implies @@ -0,0 +1 @@ +x86_64/x32/nptl -- cgit v1.2.3-70-g09d2