diff options
author | Roland McGrath <roland@hack.frob.com> | 2014-05-13 10:04:05 -0700 |
---|---|---|
committer | Roland McGrath <roland@hack.frob.com> | 2014-05-13 10:04:05 -0700 |
commit | 8c6d01f0b11e699d7d9868a5bf1eb6d9054c91a3 (patch) | |
tree | 0f86ec102e2b187432508ebcbc035c6dd2b33785 | |
parent | bba6da4e1b9c0faf12ec9a48a2822434d9e6bbcd (diff) | |
download | glibc-8c6d01f0b11e699d7d9868a5bf1eb6d9054c91a3.zip glibc-8c6d01f0b11e699d7d9868a5bf1eb6d9054c91a3.tar.gz glibc-8c6d01f0b11e699d7d9868a5bf1eb6d9054c91a3.tar.bz2 |
Consolidate NPTL configury for ARM/Linux.
-rw-r--r-- | ChangeLog | 20 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/Makefile | 16 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/Versions | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/configure | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/configure.ac | 6 | ||||
-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/Makefile | 17 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/nptl/Versions | 8 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/nptl/configure | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/nptl/configure.ac | 8 | ||||
-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
@@ -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 |