[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#500293: Cross-compile fails for latest GCC (4.3+) due to missing -lgcc_eh option in NPTL checking for forced unwind.



Package: glibc
Version: 2.7-13
Severity: normal
Tags: patch

The check for libgcc_eh.a is required in
 glibc/nptl/sysdeps/pthread/configure.in
and may it be even in
 glibc/configure.in

Next test fragment helps to solve problem

-------------------------------------------------
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)
  LIBS="$LIBS -lgcc_eh"
fi
-------------------------------------------------


-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
---
 nptl/sysdeps/pthread/configure |   25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

Index: glibc-2.7/nptl/sysdeps/pthread/configure
===================================================================
--- glibc-2.7.orig/nptl/sysdeps/pthread/configure	2008-09-26 23:39:46.000000000 +0200
+++ glibc-2.7/nptl/sysdeps/pthread/configure	2008-09-27 00:01:41.000000000 +0200
@@ -23,6 +23,31 @@
   esac
 fi
 
+{ echo "$as_me:$LINENO: checking whether to link against libgcc_eh" >&5
+echo $ECHO_N "checking whether to link against libgcc_eh... $ECHO_C" >&6; }
+if test "${libc_cv_cc_with_libgcc_eh+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&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
+{ echo "$as_me:$LINENO: result: $libc_cv_cc_with_libgcc_eh" >&5
+echo "${ECHO_T}$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
+LIBS="$LIBS -lgcc_eh"
+fi
 
 { echo "$as_me:$LINENO: checking for forced unwind support" >&5
 echo $ECHO_N "checking for forced unwind support... $ECHO_C" >&6; }

Reply to: