ARM: Clean up EABI-related configury
authorRoland McGrath <roland@hack.frob.com>
Wed, 16 Jul 2014 22:18:36 +0000 (15:18 -0700)
committerRoland McGrath <roland@hack.frob.com>
Wed, 16 Jul 2014 22:18:36 +0000 (15:18 -0700)
ChangeLog
sysdeps/arm/configure
sysdeps/arm/configure.ac
sysdeps/arm/preconfigure
sysdeps/arm/preconfigure.ac
sysdeps/unix/sysv/linux/arm/configure [deleted file]
sysdeps/unix/sysv/linux/arm/configure.ac [deleted file]

index 3f78f82..afe5f84 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index 860f412..fe86006 100644 (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
index f1d9804..86c0c08 100644 (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
index b3124ed..59d776d 100644 (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
index 39c8621..d78817b 100644 (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
diff --git a/sysdeps/unix/sysv/linux/arm/configure b/sysdeps/unix/sysv/linux/arm/configure
deleted file mode 100644 (file)
index ef97ff6..0000000
+++ /dev/null
@@ -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
diff --git a/sysdeps/unix/sysv/linux/arm/configure.ac b/sysdeps/unix/sysv/linux/arm/configure.ac
deleted file mode 100644 (file)
index 8d4c48b..0000000
+++ /dev/null
@@ -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