From dd7dc250237e0383a394545bcc87c647aeed9f26 Mon Sep 17 00:00:00 2001
From: Geoffrey Keating <geoffk@apple.com>
Date: Fri, 30 Sep 2005 17:55:27 +0000
Subject: [PATCH] t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib to
 work out which multilibs are actually being built.

	* config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib
	to work out which multilibs are actually being built.

From-SVN: r104824
---
 gcc/ChangeLog               |  5 +++++
 gcc/config/t-slibgcc-darwin | 11 +++++++----
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index aaa7c8cbac04..58ed17dffb20 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-09-30  Geoffrey Keating  <geoffk@apple.com>
+
+	* config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib
+	to work out which multilibs are actually being built.
+
 2005-09-30  Kazu Hirata  <kazu@codesourcery.com>
 
 	* tree-vect-transform.c, config/ms1/ms1.md,
diff --git a/gcc/config/t-slibgcc-darwin b/gcc/config/t-slibgcc-darwin
index 6650bb54b898..3a2fc185c41c 100644
--- a/gcc/config/t-slibgcc-darwin
+++ b/gcc/config/t-slibgcc-darwin
@@ -43,10 +43,11 @@ ASM_HIDDEN_OP = .private_extern
 # contain no code, just a list of exported symbols.
 # The actual use of the libraries is controlled by REAL_LIBGCC_SPEC.
 # 
-# This assumes only one level of multilibs.  It also assumes each multilib
-# corresponds to a different architecture.
+# This assumes each multilib corresponds to a different architecture.
 libgcc_s.%.dylib : $(SHLIB_VERPFX).%.ver libgcc.a
-	for mlib in '' $(MULTILIB_DIRNAMES:%=_%) ; do \
+	MLIBS=`$(GCC_FOR_TARGET) --print-multi-lib \
+		| sed -e 's/;.*$$//' -e '/^\.$$/d' -e 's/^/_/'` ; \
+	for mlib in '' $$MLIBS ; do \
 	  $(STRIP_FOR_TARGET) -o $(@)_T$${mlib} \
 	    -s $(SHLIB_VERPFX).$(*).ver -c -u \
 	    libgcc_s$${mlib}.$(SHLIB_SOVERSION)$(SHLIB_EXT) || exit 1 ; \
@@ -54,7 +55,9 @@ libgcc_s.%.dylib : $(SHLIB_VERPFX).%.ver libgcc.a
 	$(LIPO_FOR_TARGET) -output $@ -create $(@)_T*
 	# When builting multilibbed target libraries, all the required
 	# libraries are expected to exist in the multilib directory.
-	for mlib in $(MULTILIB_DIRNAMES) ; do \
+	MLIBS=`$(GCC_FOR_TARGET) --print-multi-lib \
+		| sed -e 's/;.*$$//' -e '/^\.$$/d'` ; \
+	for mlib in $$MLIBS ; do \
 	  ln -s ../$@ $${mlib}/$@ || exit 1 ; \
 	done
 	rm $(@)_T*
-- 
GitLab