Submitted By: Joe Ciccone <[email protected]>
Date: 2006-11-09
Initial Package Version: 2.5
Origin: Joe Ciccone
Upstream Status: Unknown
Description: Checks to see if libgcc_eh has been provided by gcc. If it has the glibc will attempt to link to it.
Rediffed for 2.9 by Brett Neumeier
Rediffed for 2.10.1 by Brett Neumeier
Rediffed for 2.11 by Brett Neumeier
diff --git a/Makeconfig b/Makeconfig
index 9f134cc..1cbed8a 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -538,12 +538,20 @@ else
libunwind = -lunwind
endif
ifneq ($(have-as-needed),yes)
+ifneq ($(have-cc-with-libgcc_eh),yes)
+ libgcc_eh := $(libunwind)
+else
libgcc_eh := -lgcc_eh $(libunwind)
+endif
else
libgcc_eh := -Wl,--as-needed -lgcc_s$(libgcc_s_suffix) $(libunwind) -Wl,--no-as-needed
endif
gnulib := -lgcc $(libgcc_eh)
-static-gnulib := -lgcc -lgcc_eh $(libunwind)
+ifneq ($(have-cc-with-libgcc_eh),yes)
+ static-gnulib := -lgcc $(libunwind)
+else
+ static-gnulib := -lgcc -lgcc_eh $(libunwind)
+endif
libc.so-gnulib := -lgcc
endif
ifeq ($(elf),yes)
diff --git a/config.make.in b/config.make.in
index d65706c..807285e 100644
--- a/config.make.in
+++ b/config.make.in
@@ -64,6 +64,7 @@ have-selinux = @have_selinux@
have-libaudit = @have_libaudit@
have-libcap = @have_libcap@
have-cc-with-libunwind = @libc_cv_cc_with_libunwind@
+have-cc-with-libgcc_eh = @libc_cv_cc_with_libgcc_eh@
fno-unit-at-a-time = @fno_unit_at_a_time@
bind-now = @bindnow@
have-hash-style = @libc_cv_hashstyle@
diff --git a/configure b/configure
index ce76653..fe0c1b1 100755
--- a/configure
+++ b/configure
@@ -692,6 +692,7 @@ ASFLAGS_config
libc_cv_as_needed
libc_cv_libgcc_s_suffix
libc_cv_Bgroup
+libc_cv_cc_with_libgcc_eh
libc_cv_cc_with_libunwind
VERSIONING
BISON
@@ -6443,6 +6444,33 @@ _ACEOF
fi
+ { $as_echo "$as_me:$LINENO: checking whether to link against libgcc_eh" >&5
+$as_echo_n "checking whether to link against libgcc_eh... " >&6; }
+if test "${libc_cv_cc_with_libgcc_eh+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+
+ cat > conftest.c <<EOF
+int main (void) { return 0; }
+EOF
+ if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest /
+ conftest.c -v 2>&1 >/dev/null | grep -q " -lgcc_eh "; then
+ libc_cv_cc_with_libgcc_eh=yes
+ else
+ libc_cv_cc_with_libgcc_eh=no
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:$LINENO: result: $libc_cv_cc_with_libgcc_eh" >&5
+$as_echo "$libc_cv_cc_with_libgcc_eh" >&6; }
+
+ if test $libc_cv_cc_with_libgcc_eh = yes; then
+ cat >>confdefs.h <</_ACEOF
+#define HAVE_CC_WITH_LIBGCC_EH 1
+_ACEOF
+
+ fi
+
{ $as_echo "$as_me:$LINENO: checking for -z nodelete option" >&5
$as_echo_n "checking for -z nodelete option... " >&6; }
if test "${libc_cv_z_nodelete+set}" = set; then
diff --git a/configure.in b/configure.in
index 182c683..7038f8b 100644
--- a/configure.in
+++ b/configure.in
@@ -1505,6 +1505,23 @@ EOF
AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
fi
+ AC_CACHE_CHECK(whether to link against libgcc_eh,
+ libc_cv_cc_with_libgcc_eh, [
+ cat > conftest.c <<EOF
+int main (void) { return 0; }
+EOF
+ if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest /
+ conftest.c -v 2>&1 >/dev/null | grep -q " -lgcc_eh "; then
+ libc_cv_cc_with_libgcc_eh=yes
+ else
+ libc_cv_cc_with_libgcc_eh=no
+ fi
+ rm -f conftest*])
+ AC_SUBST(libc_cv_cc_with_libgcc_eh)
+ if test $libc_cv_cc_with_libgcc_eh = yes; then
+ AC_DEFINE(HAVE_CC_WITH_LIBGCC_EH)
+ fi
+
AC_CACHE_CHECK(for -z nodelete option,
libc_cv_z_nodelete, [dnl
cat > conftest.c <<EOF
--
1.6.3.3