aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/nptl/configure8
-rw-r--r--sysdeps/nptl/configure.ac8
3 files changed, 19 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index d31dcaa..e3a9b4f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2014-07-03 Roland McGrath <roland@hack.frob.com>
+ * sysdeps/nptl/configure.ac (libc_cv_forced_unwind):
+ Use -Dinhibit_libc=1 for unwind.h check to prevent false failure
+ in a bare environment with no <stdlib.h> installed.
+ * sysdeps/nptl/configure: Regenerated.
+
* sysdeps/alpha/fpu/s_nearbyint.c: Include <math_ldbl_opt.h>.
* sysdeps/unix/sysv/linux/configure.ac: Use AC_TRY_COMPILE rather than
diff --git a/sysdeps/nptl/configure b/sysdeps/nptl/configure
index 65ed164..cce07b3 100644
--- a/sysdeps/nptl/configure
+++ b/sysdeps/nptl/configure
@@ -15,7 +15,12 @@ $as_echo_n "checking for forced unwind support... " >&6; }
if ${libc_cv_forced_unwind+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ old_CPPFLAGS="$CPPFLAGS"
+# Without inhibit_libc #define'd, GCC's unwind.h (at least for ia64)
+# will try to include <stdlib.h>, which doesn't exist yet if we're
+# building libc in a bare environment.
+CPPFLAGS="$CPPFLAGS -Dinhibit_libc=1"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <unwind.h>
int
@@ -35,6 +40,7 @@ else
libc_cv_forced_unwind=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+CPPFLAGS="$old_CPPFLAGS"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_forced_unwind" >&5
$as_echo "$libc_cv_forced_unwind" >&6; }
diff --git a/sysdeps/nptl/configure.ac b/sysdeps/nptl/configure.ac
index ab9d5e6..5803215 100644
--- a/sysdeps/nptl/configure.ac
+++ b/sysdeps/nptl/configure.ac
@@ -14,11 +14,17 @@ dnl Iff <unwind.h> is available, make sure it is the right one and it
dnl contains struct _Unwind_Exception.
AC_CACHE_CHECK(dnl
for forced unwind support, libc_cv_forced_unwind, [dnl
+old_CPPFLAGS="$CPPFLAGS"
+# Without inhibit_libc #define'd, GCC's unwind.h (at least for ia64)
+# will try to include <stdlib.h>, which doesn't exist yet if we're
+# building libc in a bare environment.
+CPPFLAGS="$CPPFLAGS -Dinhibit_libc=1"
AC_TRY_COMPILE([#include <unwind.h>], [
struct _Unwind_Exception exc;
struct _Unwind_Context *context;
_Unwind_GetCFA (context)],
-libc_cv_forced_unwind=yes, libc_cv_forced_unwind=no)])
+libc_cv_forced_unwind=yes, libc_cv_forced_unwind=no)
+CPPFLAGS="$old_CPPFLAGS"])
if test $libc_cv_forced_unwind = yes; then
AC_DEFINE(HAVE_FORCED_UNWIND)
dnl Check for C cleanup handling.