about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--Makeconfig2
-rw-r--r--config.make.in1
-rw-r--r--configure.in19
4 files changed, 26 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index d7446f9b32..b473c24c1c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2004-05-08  Jakub Jelinek  <jakub@redhat.com>
+
+	* configure.in (libc_cv_libgcc_s_suffix): New check.
+	(libc_cv_as_needed): Use -lgcc_s$libc_cv_libgcc_s_suffix.
+	* config.make.in (libgcc_s_suffix): Set.
+	* Makeconfig (libgcc_eh): Use -lgcc_s$(libgcc_s_suffix).
+
 2004-05-08  Ulrich Drepper  <drepper@redhat.com>
 
 	* signal/signal.h: Use BSD sigpause only if BSD behavior is preferred.
diff --git a/Makeconfig b/Makeconfig
index ce84c75624..5a9f068f11 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -520,7 +520,7 @@ ifndef gnulib
 ifneq ($(have-as-needed),yes)
  libgcc_eh := -lgcc_eh
 else
- libgcc_eh := -Wl,--as-needed -lgcc_s -Wl,--no-as-needed
+ libgcc_eh := -Wl,--as-needed -lgcc_s$(libgcc_s_suffix) -Wl,--no-as-needed
 endif
 ifneq ($(have-cc-with-libunwind),yes)
  gnulib := -lgcc $(libgcc_eh)
diff --git a/config.make.in b/config.make.in
index e6fc6a1cc7..dd3aa8fe8a 100644
--- a/config.make.in
+++ b/config.make.in
@@ -47,6 +47,7 @@ have-initfini = @libc_cv_have_initfini@
 have-z-relro = @libc_cv_z_relro@
 have-Bgroup = @libc_cv_Bgroup@
 have-as-needed = @libc_cv_as_needed@
+libgcc_s_suffix = @libc_cv_libgcc_s_suffix@
 need-nopic-initfini = @nopic_initfini@
 with-fp = @with_fp@
 with-cvs = @with_cvs@
diff --git a/configure.in b/configure.in
index 082aa1ac42..bf60a50028 100644
--- a/configure.in
+++ b/configure.in
@@ -1315,14 +1315,29 @@ EOF
   rm -f conftest*])
   AC_SUBST(libc_cv_Bgroup)
 
+  AC_CACHE_CHECK(for libgcc_s suffix,
+		 libc_cv_libgcc_s_suffix, [dnl
+  cat > conftest.c <<EOF
+int main (void) { return 0; }
+EOF
+changequote(,)dnl
+  libc_cv_libgcc_s_suffix=`${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
+			   -shared -shared-libgcc -o conftest.so \
+			   conftest.c -v 2>&1 >/dev/null \
+			   | sed -n 's/^.* -lgcc_s\([^ ]*\) .*$/\1/p'`
+changequote([,])dnl
+  rm -f conftest*])
+  AC_SUBST(libc_cv_libgcc_s_suffix)
+
   AC_CACHE_CHECK(for --as-needed option,
 		 libc_cv_as_needed, [dnl
   cat > conftest.c <<EOF
 int main (void) { return 0; }
 EOF
   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
-			      -shared -o conftest.so conftest.c -lgcc_s
-			      -Wl,--as-needed -nostdlib 1>&AS_MESSAGE_LOG_FD])
+			      -shared -o conftest.so conftest.c
+			      -lgcc_s$libc_cv_libgcc_s_suffix -Wl,--as-needed
+			      -nostdlib 1>&AS_MESSAGE_LOG_FD])
   then
     libc_cv_as_needed=yes
   else