Consolidate NPTL configury for ARM/Linux.

This commit is contained in:
Roland McGrath 2014-05-13 10:04:05 -07:00
parent bba6da4e1b
commit 8c6d01f0b1
11 changed files with 47 additions and 41 deletions

View File

@ -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.

View File

@ -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)

View File

@ -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;
}
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;
}
}

View File

@ -1,4 +0,0 @@
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
libc_cv_gcc_exceptions=yes
exceptions=-fexceptions

View File

@ -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