ARM: Clean up EABI-related configury

This commit is contained in:
Roland McGrath 2014-07-16 15:18:36 -07:00
parent 8badf496ab
commit 37fccd4192
7 changed files with 74 additions and 53 deletions

View File

@ -1,3 +1,15 @@
2014-07-16 Roland McGrath <roland@hack.frob.com>
* sysdeps/arm/preconfigure.ac: Apply EABI sanity check to arm*, not
just Linux configurations. Test empirically that the compiler sets
__ARM_EABI__, rather than using the tuple to decide.
* sysdeps/arm/preconfigure: Regenerated.
* sysdeps/unix/sysv/linux/arm/configure: File removed.
* sysdeps/unix/sysv/linux/arm/configure.ac: File removed,
contents appended ...
* sysdeps/arm/configure.ac: ... here.
* sysdeps/arm/configure: Regenerated.
2014-07-15 Roland McGrath <roland@hack.frob.com>
* nptl/pthread_kill.c: New file.

View File

@ -210,3 +210,11 @@ else
config_vars="$config_vars
have-arm-tls-desc = no"
fi
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

@ -39,3 +39,14 @@ if test $libc_cv_arm_tls_desc = yes; then
else
LIBC_CONFIG_VAR([have-arm-tls-desc], [no])
fi
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

@ -3,22 +3,36 @@
case "$machine" in
arm*)
case $config_os in
linux-gnueabi*)
# If the compiler enables unwind tables by default, this causes
# problems with undefined symbols in -nostdlib link tests. To
# avoid this, add -fno-unwind-tables here and remove it in
# sysdeps/unix/sysv/linux/arm/configure.ac after those tests have
# been run.
if test "${CFLAGS+set}" != "set"; then
CFLAGS="-g -O2"
fi
CFLAGS="$CFLAGS -fno-unwind-tables"
;;
linux*)
as_fn_error $? "Old ABI no longer supported" "$LINENO" 5
;;
esac
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if !__ARM_EABI__
#error
#endif
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
else
as_fn_error $? "Old ABI no longer supported" "$LINENO" 5
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
# If the compiler enables unwind tables by default, this causes
# problems with undefined symbols in -nostdlib link tests. To
# avoid this, add -fno-unwind-tables here and remove it in
# sysdeps/arm/configure.ac after those tests have been run.
if test "${CFLAGS+set}" != "set"; then
CFLAGS="-g -O2"
fi
CFLAGS="$CFLAGS -fno-unwind-tables"
base_machine=arm
# Lets ask the compiler which ARM family we've got

View File

@ -3,22 +3,19 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
case "$machine" in
arm*)
case $config_os in
linux-gnueabi*)
# If the compiler enables unwind tables by default, this causes
# problems with undefined symbols in -nostdlib link tests. To
# avoid this, add -fno-unwind-tables here and remove it in
# sysdeps/unix/sysv/linux/arm/configure.ac after those tests have
# been run.
if test "${CFLAGS+set}" != "set"; then
CFLAGS="-g -O2"
fi
CFLAGS="$CFLAGS -fno-unwind-tables"
;;
linux*)
AC_MSG_ERROR([Old ABI no longer supported])
;;
esac
AC_TRY_COMPILE([
#if !__ARM_EABI__
#error
#endif], [], [], [AC_MSG_ERROR([Old ABI no longer supported])])
# If the compiler enables unwind tables by default, this causes
# problems with undefined symbols in -nostdlib link tests. To
# avoid this, add -fno-unwind-tables here and remove it in
# sysdeps/arm/configure.ac after those tests have been run.
if test "${CFLAGS+set}" != "set"; then
CFLAGS="-g -O2"
fi
CFLAGS="$CFLAGS -fno-unwind-tables"
base_machine=arm
# Lets ask the compiler which ARM family we've got

View File

@ -1,9 +0,0 @@
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/unix/sysv/linux/arm.
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

@ -1,12 +0,0 @@
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/unix/sysv/linux/arm.
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