summaryrefslogtreecommitdiff
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