aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2014-05-13 10:04:05 -0700
committerRoland McGrath <roland@hack.frob.com>2014-05-13 10:04:05 -0700
commit8c6d01f0b11e699d7d9868a5bf1eb6d9054c91a3 (patch)
tree0f86ec102e2b187432508ebcbc035c6dd2b33785
parentbba6da4e1b9c0faf12ec9a48a2822434d9e6bbcd (diff)
downloadglibc-8c6d01f0b11e699d7d9868a5bf1eb6d9054c91a3.zip
glibc-8c6d01f0b11e699d7d9868a5bf1eb6d9054c91a3.tar.gz
glibc-8c6d01f0b11e699d7d9868a5bf1eb6d9054c91a3.tar.bz2
Consolidate NPTL configury for ARM/Linux.
-rw-r--r--ChangeLog20
-rw-r--r--sysdeps/unix/sysv/linux/arm/Makefile16
-rw-r--r--sysdeps/unix/sysv/linux/arm/Versions6
-rw-r--r--sysdeps/unix/sysv/linux/arm/configure3
-rw-r--r--sysdeps/unix/sysv/linux/arm/configure.ac6
-rw-r--r--sysdeps/unix/sysv/linux/arm/nptl-aeabi_unwind_cpp_pr1.c (renamed from sysdeps/unix/sysv/linux/arm/nptl/nptl-aeabi_unwind_cpp_pr1.c)0
-rw-r--r--sysdeps/unix/sysv/linux/arm/nptl/Makefile17
-rw-r--r--sysdeps/unix/sysv/linux/arm/nptl/Versions8
-rw-r--r--sysdeps/unix/sysv/linux/arm/nptl/configure4
-rw-r--r--sysdeps/unix/sysv/linux/arm/nptl/configure.ac8
-rw-r--r--sysdeps/unix/sysv/linux/arm/rt-aeabi_unwind_cpp_pr1.c (renamed from sysdeps/unix/sysv/linux/arm/nptl/rt-aeabi_unwind_cpp_pr1.c)0
11 files changed, 47 insertions, 41 deletions
diff --git a/ChangeLog b/ChangeLog
index 7e4715c..685632b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,25 @@
2014-05-13 Roland McGrath <roland@hack.frob.com>
+ * 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.
+
* sysdeps/unix/sysv/linux/arm/clone.S: Include <tcb-offsets.h>.
Deconditionalize the code that was previously under [RESET_PID].
* sysdeps/unix/sysv/linux/arm/nptl/clone.S: File removed.
diff --git a/sysdeps/unix/sysv/linux/arm/Makefile b/sysdeps/unix/sysv/linux/arm/Makefile
index aa7526a..38275cd 100644
--- 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)
diff --git a/sysdeps/unix/sysv/linux/arm/Versions b/sysdeps/unix/sysv/linux/arm/Versions
index 1d9e964..be3f197 100644
--- 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;
+ }
}
diff --git a/sysdeps/unix/sysv/linux/arm/configure b/sysdeps/unix/sysv/linux/arm/configure
index 71eb195..ef97ff6 100644
--- 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
diff --git a/sysdeps/unix/sysv/linux/arm/configure.ac b/sysdeps/unix/sysv/linux/arm/configure.ac
index 8e4e20d..8d4c48b 100644
--- 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
diff --git a/sysdeps/unix/sysv/linux/arm/nptl/nptl-aeabi_unwind_cpp_pr1.c b/sysdeps/unix/sysv/linux/arm/nptl-aeabi_unwind_cpp_pr1.c
index 7b83522..7b83522 100644
--- a/sysdeps/unix/sysv/linux/arm/nptl/nptl-aeabi_unwind_cpp_pr1.c
+++ b/sysdeps/unix/sysv/linux/arm/nptl-aeabi_unwind_cpp_pr1.c
diff --git a/sysdeps/unix/sysv/linux/arm/nptl/Makefile b/sysdeps/unix/sysv/linux/arm/nptl/Makefile
deleted file mode 100644
index ef8076c..0000000
--- 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
diff --git a/sysdeps/unix/sysv/linux/arm/nptl/Versions b/sysdeps/unix/sysv/linux/arm/nptl/Versions
deleted file mode 100644
index 435c921..0000000
--- 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;
- }
-}
diff --git a/sysdeps/unix/sysv/linux/arm/nptl/configure b/sysdeps/unix/sysv/linux/arm/nptl/configure
deleted file mode 100644
index a8c34fa..0000000
--- 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
diff --git a/sysdeps/unix/sysv/linux/arm/nptl/configure.ac b/sysdeps/unix/sysv/linux/arm/nptl/configure.ac
deleted file mode 100644
index 22f6f4b..0000000
--- 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
diff --git a/sysdeps/unix/sysv/linux/arm/nptl/rt-aeabi_unwind_cpp_pr1.c b/sysdeps/unix/sysv/linux/arm/rt-aeabi_unwind_cpp_pr1.c
index 7b83522..7b83522 100644
--- a/sysdeps/unix/sysv/linux/arm/nptl/rt-aeabi_unwind_cpp_pr1.c
+++ b/sysdeps/unix/sysv/linux/arm/rt-aeabi_unwind_cpp_pr1.c