diff mbox

[roland/nptl] NPTL is no longer an add-on!

Message ID lp3tte$7qf$1@ger.gmane.org
State Committed
Headers show

Commit Message

Stefan Liebler July 3, 2014, 3:46 p.m. UTC
Hi Roland,

i´ve checked out roland/nptl and build fails on s390 without appended 
patch, because files are not found. So please add it to your branch.

make test|xtest runs without failures.

I´ve compared *.o files bytewise in build-directory before/after branch,
but i couldn´t look at all differences yet. Thus here is the list with 
differences:
-nptl/stamp.o: different ordering of object files
	before:
		...
		nptl/register-atfork.o
		nptl/unregister-atfork.o
		nptl/libc_pthread_init.o
		nptl/libc_multiple_threads.o
	after:
		...
		nptl/libc_pthread_init.o
		nptl/libc_multiple_threads.o
		nptl/register-atfork.o
		nptl/unregister-atfork.o

-nptl/pthread_create.o:
	objdump -s -j .rodata.str1.2 nptl/pthread_create.o
	-after branch:
...
  00e0 2d3e6865 61646572 2e746362 20213d20  ->header.tcb !=
  00f0 2828766f 6964202a 29302900 2e2f6372  ((void *)0)../cr
  0100 65617465 74687265 61642e63 00005f5f  eatethread.c..__
  0110 7265636c 61696d5f 73746163 6b730000  reclaim_stacks..
  0120 616c6c6f 63617465 5f737461 636b0000  allocate_stack..
  0130 63726561 74655f74 68726561 64007374  create_thread.st
  0140 6172745f 74687265 61640000           art_thread..

	-before branch:
...
  00e0 2d3e6865 61646572 2e746362 20213d20  ->header.tcb !=
  00f0 2828766f 6964202a 29302900 2e2e2f6e  ((void *)0).../n
  0100 70746c2f 63726561 74657468 72656164  ptl/createthread
  0110 2e630000 5f5f7265 636c6169 6d5f7374  .c..__reclaim_st
  0120 61636b73 0000616c 6c6f6361 74655f73  acks..allocate_s
  0130 7461636b 00006372 65617465 5f746872  tack..create_thr
  0140 65616400 73746172 745f7468 72656164  ead.start_thread
  0150 0000                                 ..

-libio/tst_putwc.o
-intl/tst-gettext3.o
-intl/tst-gettext2.o
-intl/tst-gettext6.o
-intl/tst-codeset.o
-intl/tst-translit.o
-intl/tst-gettext4.o
-intl/tst-gettext5.o
-posix/fork.o
-elf/tst-dlopenrpath.o
-elf/multiload.o
-nscd/nscd_stat.o

Bye

On 06/26/2014 01:47 AM, Roland McGrath wrote:
> I think this completes the de-add-on-ification of NPTL.  I've tested on
> x86_64-linux-gnu, i686-linux-gnu, and arm-linux-gnueabihf that there are no
> code changes from this.  I think I added all the Implies files necessary
> for other machines to notice no changes, but I haven't tested those builds.
>
> But note that what I actually tested is a tree where the nptl/sysdeps
> directory is gone, and its presence probably louses things up.  To achieve
> that state on the trunk requires merging in the roland/nptl-s390 branch.
>
> Each machine with an outstanding per-machine branch needs that branch
> merged (and verified, and fixed as necessary) before this.  Those are:
>
> 	roland/nptl-aarch64
> 	roland/nptl-hppa
> 	roland/nptl-ia64
> 	roland/nptl-microblaze
> 	roland/nptl-mips
> 	roland/nptl-s390
>
> I reiterate my request for each of those machines' maintainers to get on
> with the review and testing forthwith!
>
> Tomorrow I will start the harangues in earnest, and start discussing how we
> should proceed for the lagging maintainers.  I would really like to get
> this all resolved and in within the next week or so.
>
>
> Thanks,
> Roland
>
>
> 	NPTL is no longer an add-on!
> 	* nptl/internaltypes.h: Moved ...
> 	* sysdeps/nptl/internaltypes.h: ... here.
> 	* sysdeps/nptl/aio_misc.h: Use <nptl/pthreadP.h> in #include.
> 	* sysdeps/nptl/fork.c: Likewise.
> 	* sysdeps/nptl/gai_misc.h: 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.
>
> diff --git a/nptl/ANNOUNCE b/nptl/ANNOUNCE
> deleted file mode 100644
> index b63c657..0000000
> --- 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/configure b/nptl/configure
> deleted file mode 100644
> index dd246c7..0000000
> --- 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/Makeconfig b/sysdeps/nptl/Makeconfig
> similarity index 100%
> rename from nptl/Makeconfig
> rename to sysdeps/nptl/Makeconfig
> diff --git a/sysdeps/nptl/aio_misc.h b/sysdeps/nptl/aio_misc.h
> index ac3488c..c3de84b 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 <assert.h>
> -#include <pthreadP.h>
> +#include <nptl/pthreadP.h>
>   #include <lowlevellock.h>
>
>   #define DONT_NEED_AIO_MISC_COND	1
> diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c
> index 70201a2..511533a 100644
> --- a/sysdeps/nptl/fork.c
> +++ b/sysdeps/nptl/fork.c
> @@ -27,7 +27,7 @@
>   #include <ldsodefs.h>
>   #include <bits/stdio-lock.h>
>   #include <atomic.h>
> -#include <pthreadP.h>
> +#include <nptl/pthreadP.h>
>   #include <fork.h>
>   #include <arch-fork.h>
>
> diff --git a/sysdeps/nptl/gai_misc.h b/sysdeps/nptl/gai_misc.h
> index 946275e..942f2b1 100644
> --- a/sysdeps/nptl/gai_misc.h
> +++ b/sysdeps/nptl/gai_misc.h
> @@ -22,7 +22,7 @@
>
>   #include <assert.h>
>   #include <signal.h>
> -#include <pthreadP.h>
> +#include <nptl/pthreadP.h>
>   #include <lowlevellock.h>
>
>   #define DONT_NEED_GAI_MISC_COND	1
> diff --git a/nptl/internaltypes.h b/sysdeps/nptl/internaltypes.h
> similarity index 100%
> rename from nptl/internaltypes.h
> rename to sysdeps/nptl/internaltypes.h
> diff --git a/sysdeps/nptl/jmp-unwind.c b/sysdeps/nptl/jmp-unwind.c
> index b3a960c..0ac6b27 100644
> --- a/sysdeps/nptl/jmp-unwind.c
> +++ b/sysdeps/nptl/jmp-unwind.c
> @@ -18,7 +18,7 @@
>
>   #include <setjmp.h>
>   #include <stddef.h>
> -#include <pthreadP.h>
> +#include <nptl/pthreadP.h>
>
>   extern void __pthread_cleanup_upto (__jmp_buf env, char *targetframe);
>   #pragma weak __pthread_cleanup_upto
> diff --git a/sysdeps/nptl/setxid.h b/sysdeps/nptl/setxid.h
> index 76c88e0..c02e92d 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
>      <http://www.gnu.org/licenses/>.  */
>
> -#include <pthreadP.h>
> +#include <nptl/pthreadP.h>
>   #include <sysdep.h>
>
>   #define __SETXID_1(cmd, arg1) \
> diff --git a/sysdeps/unix/sysv/linux/aarch64/Implies b/sysdeps/unix/sysv/linux/aarch64/Implies
> index 37b6bda..4409e19 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 1616efe..fddb49e 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 0000000..e609c13
> --- /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 57fda6c..91ec602 100644
> --- a/sysdeps/unix/sysv/linux/configure
> +++ b/sysdeps/unix/sysv/linux/configure
> @@ -279,33 +279,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 e172ffe..8127670 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 0000000..c3d145c
> --- /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 ccc7eaa..4bf5f8b 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 0000000..8948a80
> --- /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 8d91c80..9762539 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 0000000..77f1f7d
> --- /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 0000000..469a141
> --- /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 0000000..656fa77
> --- /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 0000000..466b7f4
> --- /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 efda9d2..e6e51fa 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 0000000..c15a97e
> --- /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 0000000..a8cc375
> --- /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 0000000..e050152
> --- /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 c7a65c9..c9be3c4 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 0000000..b287872
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/Implies
> @@ -0,0 +1 @@
> +x86_64/x32/nptl
>

Comments

Stefan Liebler July 4, 2014, 12:45 p.m. UTC | #1
Hi,

now the roland/nptl branch builds on s390. Thanks.

the diffs of the remaining files show the same different paths or the 
build date.
Tested for s390/s390x with/without lock-elision.
The testsuite also passes for these.

Bye

On 07/03/2014 05:46 PM, Stefan Liebler wrote:
> Hi Roland,
>
> i´ve checked out roland/nptl and build fails on s390 without appended
> patch, because files are not found. So please add it to your branch.
>
> make test|xtest runs without failures.
>
> I´ve compared *.o files bytewise in build-directory before/after branch,
> but i couldn´t look at all differences yet. Thus here is the list with
> differences:
> -nptl/stamp.o: different ordering of object files
>      before:
>          ...
>          nptl/register-atfork.o
>          nptl/unregister-atfork.o
>          nptl/libc_pthread_init.o
>          nptl/libc_multiple_threads.o
>      after:
>          ...
>          nptl/libc_pthread_init.o
>          nptl/libc_multiple_threads.o
>          nptl/register-atfork.o
>          nptl/unregister-atfork.o
>
> -nptl/pthread_create.o:
>      objdump -s -j .rodata.str1.2 nptl/pthread_create.o
>      -after branch:
> ...
>   00e0 2d3e6865 61646572 2e746362 20213d20  ->header.tcb !=
>   00f0 2828766f 6964202a 29302900 2e2f6372  ((void *)0)../cr
>   0100 65617465 74687265 61642e63 00005f5f  eatethread.c..__
>   0110 7265636c 61696d5f 73746163 6b730000  reclaim_stacks..
>   0120 616c6c6f 63617465 5f737461 636b0000  allocate_stack..
>   0130 63726561 74655f74 68726561 64007374  create_thread.st
>   0140 6172745f 74687265 61640000           art_thread..
>
>      -before branch:
> ...
>   00e0 2d3e6865 61646572 2e746362 20213d20  ->header.tcb !=
>   00f0 2828766f 6964202a 29302900 2e2e2f6e  ((void *)0).../n
>   0100 70746c2f 63726561 74657468 72656164  ptl/createthread
>   0110 2e630000 5f5f7265 636c6169 6d5f7374  .c..__reclaim_st
>   0120 61636b73 0000616c 6c6f6361 74655f73  acks..allocate_s
>   0130 7461636b 00006372 65617465 5f746872  tack..create_thr
>   0140 65616400 73746172 745f7468 72656164  ead.start_thread
>   0150 0000                                 ..
>

> -libio/tst_putwc.o
static const char outname[] = OBJPFX "tst_putwc.temp";
=> different paths

> -intl/tst-gettext3.o
bindtextdomain ("codeset", OBJPFX "domaindir");
=> different paths

> -intl/tst-gettext2.o
bindtextdomain ("tstlang", OBJPFX "domaindir");
=> different paths

> -intl/tst-gettext6.o
bindtextdomain ("tstgettext6", OBJPFX "domaindir");
=> different paths

> -intl/tst-codeset.o
bindtextdomain ("codeset", OBJPFX "domaindir");
=> different paths

> -intl/tst-translit.o
bindtextdomain ("translit", OBJPFX "domaindir");
=> different paths

> -intl/tst-gettext4.o
bindtextdomain ("multithread", OBJPFX "domaindir");
=> different paths

> -intl/tst-gettext5.o
bindtextdomain ("codeset", OBJPFX "domaindir");
=> different paths

> -posix/fork.o
      -Contents of section .rodata.str1.2:
	-before:
  0000 73656c66 2d3e7469 6420213d 20707069  self->tid != ppi
  0010 64002e2e 2f6e7074 6c2f7379 73646570  d.../nptl/sysdep
  0020 732f756e 69782f73 7973762f 6c696e75  s/unix/sysv/linu
  0030 782f666f 726b2e63 00002828 73747275  x/fork.c..((stru
	-after:
  0000 73656c66 2d3e7469 6420213d 20707069  self->tid != ppi
  0010 64002e2e 2f737973 64657073 2f6e7074  d.../sysdeps/npt
  0020 6c2f666f 726b2e63 00002828 73747275  l/fork.c..((stru
=> reflects file move

> -elf/tst-dlopenrpath.o
static const char testsubdir[] = PFX "test-subdir";
if (system ("cp " PFX "firstobj.so " PFX "test-subdir/in-subdir.so")
unlink (PFX "test-subdir/in-subdir.so");
=> different paths

> -elf/multiload.o
   if (chdir (OBJDIR) != 0)
=> different paths

> -nscd/nscd_stat.o
static const char compilation[21] = __DATE__ " " __TIME__;

>
> Bye
>
> On 06/26/2014 01:47 AM, Roland McGrath wrote:
>> I think this completes the de-add-on-ification of NPTL.  I've tested on
>> x86_64-linux-gnu, i686-linux-gnu, and arm-linux-gnueabihf that there
>> are no
>> code changes from this.  I think I added all the Implies files necessary
>> for other machines to notice no changes, but I haven't tested those
>> builds.
>>
>> But note that what I actually tested is a tree where the nptl/sysdeps
>> directory is gone, and its presence probably louses things up.  To
>> achieve
>> that state on the trunk requires merging in the roland/nptl-s390 branch.
>>
>> Each machine with an outstanding per-machine branch needs that branch
>> merged (and verified, and fixed as necessary) before this.  Those are:
>>
>>     roland/nptl-aarch64
>>     roland/nptl-hppa
>>     roland/nptl-ia64
>>     roland/nptl-microblaze
>>     roland/nptl-mips
>>     roland/nptl-s390
>>
>> I reiterate my request for each of those machines' maintainers to get on
>> with the review and testing forthwith!
>>
>> Tomorrow I will start the harangues in earnest, and start discussing
>> how we
>> should proceed for the lagging maintainers.  I would really like to get
>> this all resolved and in within the next week or so.
>>
>>
>> Thanks,
>> Roland
>>
>>
>>     NPTL is no longer an add-on!
>>     * nptl/internaltypes.h: Moved ...
>>     * sysdeps/nptl/internaltypes.h: ... here.
>>     * sysdeps/nptl/aio_misc.h: Use <nptl/pthreadP.h> in #include.
>>     * sysdeps/nptl/fork.c: Likewise.
>>     * sysdeps/nptl/gai_misc.h: 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.
>>
>> diff --git a/nptl/ANNOUNCE b/nptl/ANNOUNCE
>> deleted file mode 100644
>> index b63c657..0000000
>> --- 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/configure b/nptl/configure
>> deleted file mode 100644
>> index dd246c7..0000000
>> --- 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/Makeconfig b/sysdeps/nptl/Makeconfig
>> similarity index 100%
>> rename from nptl/Makeconfig
>> rename to sysdeps/nptl/Makeconfig
>> diff --git a/sysdeps/nptl/aio_misc.h b/sysdeps/nptl/aio_misc.h
>> index ac3488c..c3de84b 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 <assert.h>
>> -#include <pthreadP.h>
>> +#include <nptl/pthreadP.h>
>>   #include <lowlevellock.h>
>>
>>   #define DONT_NEED_AIO_MISC_COND    1
>> diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c
>> index 70201a2..511533a 100644
>> --- a/sysdeps/nptl/fork.c
>> +++ b/sysdeps/nptl/fork.c
>> @@ -27,7 +27,7 @@
>>   #include <ldsodefs.h>
>>   #include <bits/stdio-lock.h>
>>   #include <atomic.h>
>> -#include <pthreadP.h>
>> +#include <nptl/pthreadP.h>
>>   #include <fork.h>
>>   #include <arch-fork.h>
>>
>> diff --git a/sysdeps/nptl/gai_misc.h b/sysdeps/nptl/gai_misc.h
>> index 946275e..942f2b1 100644
>> --- a/sysdeps/nptl/gai_misc.h
>> +++ b/sysdeps/nptl/gai_misc.h
>> @@ -22,7 +22,7 @@
>>
>>   #include <assert.h>
>>   #include <signal.h>
>> -#include <pthreadP.h>
>> +#include <nptl/pthreadP.h>
>>   #include <lowlevellock.h>
>>
>>   #define DONT_NEED_GAI_MISC_COND    1
>> diff --git a/nptl/internaltypes.h b/sysdeps/nptl/internaltypes.h
>> similarity index 100%
>> rename from nptl/internaltypes.h
>> rename to sysdeps/nptl/internaltypes.h
>> diff --git a/sysdeps/nptl/jmp-unwind.c b/sysdeps/nptl/jmp-unwind.c
>> index b3a960c..0ac6b27 100644
>> --- a/sysdeps/nptl/jmp-unwind.c
>> +++ b/sysdeps/nptl/jmp-unwind.c
>> @@ -18,7 +18,7 @@
>>
>>   #include <setjmp.h>
>>   #include <stddef.h>
>> -#include <pthreadP.h>
>> +#include <nptl/pthreadP.h>
>>
>>   extern void __pthread_cleanup_upto (__jmp_buf env, char *targetframe);
>>   #pragma weak __pthread_cleanup_upto
>> diff --git a/sysdeps/nptl/setxid.h b/sysdeps/nptl/setxid.h
>> index 76c88e0..c02e92d 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
>>      <http://www.gnu.org/licenses/>.  */
>>
>> -#include <pthreadP.h>
>> +#include <nptl/pthreadP.h>
>>   #include <sysdep.h>
>>
>>   #define __SETXID_1(cmd, arg1) \
>> diff --git a/sysdeps/unix/sysv/linux/aarch64/Implies
>> b/sysdeps/unix/sysv/linux/aarch64/Implies
>> index 37b6bda..4409e19 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 1616efe..fddb49e 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 0000000..e609c13
>> --- /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 57fda6c..91ec602 100644
>> --- a/sysdeps/unix/sysv/linux/configure
>> +++ b/sysdeps/unix/sysv/linux/configure
>> @@ -279,33 +279,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 e172ffe..8127670 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 0000000..c3d145c
>> --- /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 ccc7eaa..4bf5f8b 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 0000000..8948a80
>> --- /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 8d91c80..9762539 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 0000000..77f1f7d
>> --- /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 0000000..469a141
>> --- /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 0000000..656fa77
>> --- /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 0000000..466b7f4
>> --- /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 efda9d2..e6e51fa 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 0000000..c15a97e
>> --- /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 0000000..a8cc375
>> --- /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 0000000..e050152
>> --- /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 c7a65c9..c9be3c4 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 0000000..b287872
>> --- /dev/null
>> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/Implies
>> @@ -0,0 +1 @@
>> +x86_64/x32/nptl
>>
diff mbox

Patch

diff --git a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
index f35eab5..32226bc 100644
--- a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
+++ b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
@@ -18,7 +18,7 @@ 
 
 #include <setjmp.h>
 #include <stddef.h>
-#include <pthreadP.h>
+#include <nptl/pthreadP.h>
 
 extern void __pthread_cleanup_upto (__jmp_buf env, char *targetframe);
 #pragma weak __pthread_cleanup_upto
diff --git a/sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c b/sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c
index 6fc0f96..aa6cf9a 100644
--- a/sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c
+++ b/sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c
@@ -19,4 +19,4 @@ 
    already elided locks.  */
 #include <elision-conf.h>
 
-#include <nptl/sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c>
+#include <nptl/pthread_mutex_cond_lock.c>