[2/3,roland/nptl] Consolidate NPTL configury for ARM/Linux.

Message ID 20140509230135.8CBC52C39FE@topped-with-meat.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Roland McGrath May 9, 2014, 11:01 p.m. UTC
  * sysdeps/unix/sysv/linux/arm/Versions (libc: GLIBC_PRIVATE): New set.
	* sysdeps/unix/sysv/linux/arm/nptl/Versions: File removed.

	* sysdeps/unix/sysv/linux/arm/Makefile
	[$(subdir) = rt] (librt-sysdep_routines, librt-shared-only-routines):
	Add rt-aeabi_unwind_cpp_pr1.
	[$(subdir) = nptl] (librt-sysdep_routines, librt-shared-only-routines):
	Add nptl-aeabi_unwind_cpp_pr1.
	[$(subdir) = nptl] (tests): Filter out tst-cleanupx4.
	* sysdeps/unix/sysv/linux/arm/nptl/Makefile: File removed.
	* sysdeps/unix/sysv/linux/arm/nptl/rt-aeabi_unwind_cpp_pr1.c: Move ...
	* sysdeps/unix/sysv/linux/arm/rt-aeabi_unwind_cpp_pr1.c: ... here.
	* sysdeps/unix/sysv/linux/arm/nptl/nptl-aeabi_unwind_cpp_pr1.c: Move ...
	* sysdeps/unix/sysv/linux/arm/nptl-aeabi_unwind_cpp_pr1.c: ... here.

	* sysdeps/unix/sysv/linux/arm/configure.ac: Force -fexceptions here.
	* sysdeps/unix/sysv/linux/arm/configure: Regenerated.
	* sysdeps/unix/sysv/linux/arm/nptl/configure.ac: File removed.
	* sysdeps/unix/sysv/linux/arm/nptl/configure: File removed.
  

Patch

--- a/sysdeps/unix/sysv/linux/arm/Makefile
+++ b/sysdeps/unix/sysv/linux/arm/Makefile
@@ -37,13 +37,21 @@  libcrypt-sysdep_routines += libc-do-syscall
 endif
 
 ifeq ($(subdir),rt)
-librt-sysdep_routines += libc-do-syscall
-librt-shared-only-routines += libc-do-syscall
+librt-sysdep_routines += libc-do-syscall rt-aeabi_unwind_cpp_pr1
+librt-shared-only-routines += libc-do-syscall rt-aeabi_unwind_cpp_pr1
 endif
 
 ifeq ($(subdir),nptl)
-libpthread-sysdep_routines += libc-do-syscall
-libpthread-shared-only-routines += libc-do-syscall
+libpthread-sysdep_routines += libc-do-syscall nptl-aeabi_unwind_cpp_pr1
+libpthread-shared-only-routines += libc-do-syscall nptl-aeabi_unwind_cpp_pr1
+
+# This test relies on compiling part of the binary with EH information,
+# part without, and unwinding through.  The .ARM.exidx tables have
+# start addresses for EH regions, but no end addresses.  Every
+# region an exception needs to propogate through must have unwind
+# information, or a previous function's unwind table may be used
+# by mistake.
+tests := $(filter-out tst-cleanupx4,$(tests))
 endif
 
 ifeq ($(subdir),resolv)
--- a/sysdeps/unix/sysv/linux/arm/Versions
+++ b/sysdeps/unix/sysv/linux/arm/Versions
@@ -37,4 +37,10 @@  libc {
   GLIBC_2.11 {
     fallocate64;
   }
+  GLIBC_PRIVATE {
+    # A copy of sigaction lives in libpthread, and needs these.
+    __default_sa_restorer; __default_rt_sa_restorer;
+    __default_sa_restorer_v1; __default_rt_sa_restorer_v1;
+    __default_sa_restorer_v2; __default_rt_sa_restorer_v2;
+  }
 }
--- a/sysdeps/unix/sysv/linux/arm/configure
+++ b/sysdeps/unix/sysv/linux/arm/configure
@@ -4,3 +4,6 @@ 
 libc_cv_gcc_unwind_find_fde=no
 # Remove -fno-unwind-tables that was added in sysdeps/arm/preconfigure.ac.
 CFLAGS=${CFLAGS% -fno-unwind-tables}
+
+libc_cv_gcc_exceptions=yes
+exceptions=-fexceptions
--- a/sysdeps/unix/sysv/linux/arm/configure.ac
+++ b/sysdeps/unix/sysv/linux/arm/configure.ac
@@ -4,3 +4,9 @@  GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 libc_cv_gcc_unwind_find_fde=no
 # Remove -fno-unwind-tables that was added in sysdeps/arm/preconfigure.ac.
 CFLAGS=${CFLAGS% -fno-unwind-tables}
+
+dnl The normal configure check for gcc -fexecptions fails because it can't
+dnl find __aeabi_unwind_cpp_pr0.  Work around this here; our GCC definitely
+dnl has -fexceptions.
+libc_cv_gcc_exceptions=yes
+exceptions=-fexceptions
--- a/sysdeps/unix/sysv/linux/arm/nptl/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@ 
-ifeq ($(subdir),rt)
-librt-sysdep_routines += rt-aeabi_unwind_cpp_pr1
-librt-shared-only-routines += rt-aeabi_unwind_cpp_pr1
-endif
-
-ifeq ($(subdir),nptl)
-libpthread-sysdep_routines += nptl-aeabi_unwind_cpp_pr1
-libpthread-shared-only-routines += nptl-aeabi_unwind_cpp_pr1
-
-# This test relies on compiling part of the binary with EH information,
-# part without, and unwinding through.  The .ARM.exidx tables have
-# start addresses for EH regions, but no end addresses.  Every
-# region an exception needs to propogate through must have unwind
-# information, or a previous function's unwind table may be used
-# by mistake.
-tests := $(filter-out tst-cleanupx4,$(tests))
-endif
--- a/sysdeps/unix/sysv/linux/arm/nptl/Versions
+++ /dev/null
@@ -1,8 +0,0 @@ 
-libc {
-  GLIBC_PRIVATE {
-    # A copy of sigaction lives in NPTL, and needs these.
-    __default_sa_restorer; __default_rt_sa_restorer;
-    __default_sa_restorer_v1; __default_rt_sa_restorer_v1;
-    __default_sa_restorer_v2; __default_rt_sa_restorer_v2;
-  }
-}
--- a/sysdeps/unix/sysv/linux/arm/nptl/configure
+++ /dev/null
@@ -1,4 +0,0 @@ 
-# This file is generated from configure.ac by Autoconf.  DO NOT EDIT!
-
-libc_cv_gcc_exceptions=yes
-exceptions=-fexceptions
--- a/sysdeps/unix/sysv/linux/arm/nptl/configure.ac
+++ /dev/null
@@ -1,8 +0,0 @@ 
-dnl configure fragment for NPTL and ARM/Linux EABI.
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-
-dnl The normal configure check for gcc -fexecptions fails because it can't
-dnl find __aeabi_unwind_cpp_pr0.  Work around this here; our GCC definitely
-dnl has -fexceptions.
-libc_cv_gcc_exceptions=yes
-exceptions=-fexceptions