]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR other/19525 (In-build-directory multilib testing broken)
authorRichard Sandiford <rsandifo@redhat.com>
Sat, 19 Feb 2005 11:44:10 +0000 (11:44 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Sat, 19 Feb 2005 11:44:10 +0000 (11:44 +0000)
PR other/19525
* doc/invoke.texi: Remove documentation of %M spec.
* gcc.c: Likewise.
(init_spec): Remove %M suffix from -lgcc_s.
(do_spec_1): Remove 'M' case.
* mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
to put shared libraries in the multilib directory.  Remove the
shlib_so_soname substitution variable.  Don't add a multilib encoding
to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
reported by -print-multi-os-directory.  Pass @multilib_dir@ to
SHLIB_INSTALL as well as SHLIB_LINK.
* config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
(SHLIB_NAME): Delete.
(SHLIB_DIR): New macro.
(SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
(SHLIB_INSTALL): Adjust accordingly.
* config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
* config/t-slibgcc-sld: Likewise.
* config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
(SHLIBUNWIND_SONAME): Use @shlib_base_name@.
(SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
in $(SHLIB_DIR).
(SHLIBUNWIND_INSTALL): Adjust accordingly.
* config/i386/t-nwld (SHLIB_SONAME): Delete.
(SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
Use @shlib_base_name@ instead of @shlib_so_name@.
* config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
and @shlib_base_name@.so in @multilib_dir@.
(SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
to the install path.
* config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
(SHLIB_LINK): Remove previous workaround.
* config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
(SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
(SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
the install path.
* config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
@multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
(SHLIB_INSTALL): Adjust accordingly.
(SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
* config/rs6000/t-aix52: As for config/rs6000/t-aix43.
* config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
config/t-slibgcc-elf-ver.

From-SVN: r95277

15 files changed:
gcc/ChangeLog
gcc/config/i386/t-nwld
gcc/config/ia64/t-hpux
gcc/config/mips/t-slibgcc-irix
gcc/config/pa/t-hpux-shlib
gcc/config/rs6000/t-aix43
gcc/config/rs6000/t-aix52
gcc/config/sh/t-linux
gcc/config/t-libunwind-elf
gcc/config/t-slibgcc-darwin
gcc/config/t-slibgcc-elf-ver
gcc/config/t-slibgcc-sld
gcc/doc/invoke.texi
gcc/gcc.c
gcc/mklibgcc.in

index 25fc15a5b1162d5b9121c3375da2635494f8261b..34a6c74141f084e27fa2daff6b30b76e1650c0ef 100644 (file)
@@ -1,3 +1,49 @@
+2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
+
+       PR other/19525
+       * doc/invoke.texi: Remove documentation of %M spec.
+       * gcc.c: Likewise.
+       (init_spec): Remove %M suffix from -lgcc_s.
+       (do_spec_1): Remove 'M' case.
+       * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
+       to put shared libraries in the multilib directory.  Remove the
+       shlib_so_soname substitution variable.  Don't add a multilib encoding
+       to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
+       reported by -print-multi-os-directory.  Pass @multilib_dir@ to
+       SHLIB_INSTALL as well as SHLIB_LINK.
+       * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
+       (SHLIB_NAME): Delete.
+       (SHLIB_DIR): New macro.
+       (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
+       (SHLIB_INSTALL): Adjust accordingly.
+       * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
+       * config/t-slibgcc-sld: Likewise.
+       * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
+       (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
+       (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
+       in $(SHLIB_DIR).
+       (SHLIBUNWIND_INSTALL): Adjust accordingly.
+       * config/i386/t-nwld (SHLIB_SONAME): Delete.
+       (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
+       Use @shlib_base_name@ instead of @shlib_so_name@.
+       * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
+       and @shlib_base_name@.so in @multilib_dir@.
+       (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
+       to the install path.
+       * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
+       (SHLIB_LINK): Remove previous workaround.
+       * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
+       (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
+       (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
+       the install path.
+       * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
+       @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
+       (SHLIB_INSTALL): Adjust accordingly.
+       (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
+       * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
+       * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
+       config/t-slibgcc-elf-ver.
+
 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
            Jakub Jelinek  <jakub@redhat.com>
 
index 25355632c0044ca709f6fc70691ce025acdccaad..ec12d12251c95d7da05b60e89bef37834583414f 100644 (file)
@@ -29,7 +29,6 @@ s-crt0: $(srcdir)/unwind-dw2-fde.h
 # Build a shared libgcc library for NetWare.
 
 SHLIB_EXT = .nlm
-SHLIB_SONAME = @shlib_so_name@.nlm
 SHLIB_NAME = @shlib_base_name@.nlm
 SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
 SHLIB_DEF = $(srcdir)/config/i386/netware-libgcc.def
@@ -37,25 +36,25 @@ SHLIB_MAP = $(srcdir)/config/i386/netware-libgcc.exp
 SHLIB_SRC = $(srcdir)/config/i386/netware-libgcc.c
 
 SHLIB_LINK = set -e; \
-       cat $(SHLIB_DEF) >@shlib_so_name@.def; \
-       echo "name $(SHLIB_NAME)" >>@shlib_so_name@.def; \
-       echo "version $(gcc_version)" | sed "s!\.!,!g" >>@shlib_so_name@.def; \
+       cat $(SHLIB_DEF) >@shlib_base_name@.def; \
+       echo "name $(SHLIB_NAME)" >>@shlib_base_name@.def; \
+       echo "version $(gcc_version)" | sed "s!\.!,!g" >>@shlib_base_name@.def; \
        touch libgcc/build; \
-       echo "build $$$$(($$$$(<libgcc/build)+0))" >>@shlib_so_name@.def; \
-       echo "export @$(SHLIB_MAP)" >>@shlib_so_name@.def; \
-       if mpkxdc -n -p @shlib_so_name@.xdc; \
-               then echo "xdcdata @shlib_so_name@.xdc" >>@shlib_so_name@.def; \
+       echo "build $$$$(($$$$(<libgcc/build)+0))" >>@shlib_base_name@.def; \
+       echo "export @$(SHLIB_MAP)" >>@shlib_base_name@.def; \
+       if mpkxdc -n -p @shlib_base_name@.xdc; \
+               then echo "xdcdata @shlib_base_name@.xdc" >>@shlib_base_name@.def; \
                else echo "WARNING: $(SHLIB_NAME) built without XDC data will not work well." 1>&2; \
        fi; \
        $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -o $(SHLIB_NAME) \
                $(SHLIB_SRC) -posix -static-libgcc -lnetware \
-               -Wl,--Map,--map-info,full,--strip-all,--def-file,@shlib_so_name@.def; \
-       rm -f @shlib_so_name@.imp; $(LN_S) $(SHLIB_MAP) @shlib_so_name@.imp; \
+               -Wl,--Map,--map-info,full,--strip-all,--def-file,@shlib_base_name@.def; \
+       rm -f @shlib_base_name@.imp; $(LN_S) $(SHLIB_MAP) @shlib_base_name@.imp; \
        echo $$$$(($$$$(<libgcc/build)+1)) >libgcc/build
 
 # $(slibdir) double quoted to protect it from expansion while building
 # libgcc.mk.  We want this delayed until actual install time.
 SHLIB_INSTALL = \
        $$(SHELL) $(srcdir)/mkinstalldirs $$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
-       $$(INSTALL_DATA) $(SHLIB_NAME) $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
-       $$(INSTALL_DATA) @shlib_so_name@.imp $$(DESTDIR)$$(libsubdir)/
+       $$(INSTALL_DATA) $(SHLIB_NAME) $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_NAME); \
+       $$(INSTALL_DATA) @shlib_base_name@.imp $$(DESTDIR)$$(libsubdir)/
index d89f174592c0436a11787b27f02679b15aba3922..e84a09a74763607ac197d0cf11f82faa7b7a5bcc 100644 (file)
@@ -32,14 +32,17 @@ SHLIB_EXT = .so
 # DT_NEEDED entry for libunwind.
 SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
        -Wl,+h,@shlib_base_name@.so.0 \
-       -o @shlib_base_name@.so @multilib_flags@ @shlib_objs@ -lunwind -lc && \
-       rm -f @shlib_base_name@.so.0 && \
-       $(LN_S) @shlib_base_name@.so @shlib_base_name@.so.0
+       -o @multilib_dir@/@shlib_base_name@.so @multilib_flags@ \
+       @shlib_objs@ -lunwind -lc && \
+       rm -f @multilib_dir@/@shlib_base_name@.so.0 && \
+       $(LN_S) @shlib_base_name@.so @multilib_dir@/@shlib_base_name@.so.0
 # $(slibdir) double quoted to protect it from expansion while building
 # libgcc.mk.  We want this delayed until actual install time.
-SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $$(DESTDIR)$$(slibdir)/@shlib_base_name@.so.0; \
-       rm -f $$(DESTDIR)$$(slibdir)/@shlib_base_name@.so; \
-       $(LN_S) @shlib_base_name@.so.0 $$(DESTDIR)$$(slibdir)/@shlib_base_name@.so; \
-       chmod +x $$(DESTDIR)$$(slibdir)/@shlib_base_name@.so
+SHLIB_INSTALL = $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.so \
+       $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so.0; \
+       rm -f $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so; \
+       $(LN_S) @shlib_base_name@.so.0 \
+       $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so; \
+       chmod +x $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so
 
 SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
index 71e5094103f594d23681158bce1d456156352a0e..cfb4bf4d8cc079f90a5161626a28929b09969a2e 100644 (file)
@@ -3,29 +3,29 @@
 SHLIB_EXT = .so
 SHLIB_SOLINK = @shlib_base_name@.so
 SHLIB_SOVERSION = 1
-SHLIB_SONAME = @shlib_so_name@.so.$(SHLIB_SOVERSION)
-SHLIB_NAME = @shlib_base_name@.so.$(SHLIB_SOVERSION)
+SHLIB_SONAME = @shlib_base_name@.so.$(SHLIB_SOVERSION)
 SHLIB_MAP = @shlib_map_file@
 SHLIB_OBJS = @shlib_objs@
+SHLIB_DIR = @multilib_dir@
 SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
 SHLIB_LC = -lc
 
 SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
        -Wl,-soname,$(SHLIB_SONAME) \
-       -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
-       rm -f $(SHLIB_SOLINK) && \
-       if [ -f $(SHLIB_NAME) ]; then \
-         mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
+       -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \
+       $(SHLIB_OBJS) $(SHLIB_LC) && \
+       rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
+       if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \
+         mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \
+               $(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
        else true; fi && \
-       mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
-       $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK) && \
-       { test "@multilib_dir@" = "." || \
-         $(INSTALL_DATA) $(SHLIB_NAME) @multilib_dir@/$(SHLIB_SONAME); }
+       mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
+       $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
 # $(slibdir) double quoted to protect it from expansion while building
 # libgcc.mk.  We want this delayed until actual install time.
 SHLIB_INSTALL = \
        $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
-       $(INSTALL_DATA) $(SHLIB_NAME) \
+       $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \
          $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
        rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
        $(LN_S) $(SHLIB_SONAME) \
index 5183b0625845dbf0505b156ed03b508d31a1378c..2a42ed6efc90a115084e3fff8ea6d9f5fc4a2e69 100644 (file)
@@ -3,21 +3,25 @@ SHLIB_EXT = .sl
 SHLIB_NAME = @shlib_base_name@.sl
 SHLIB_SONAME = @shlib_base_name@.1
 SHLIB_OBJS = @shlib_objs@
+SHLIB_DIR = @multilib_dir@
+SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
 
 SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared  -nodefaultlibs \
-       -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \
-        rm -f $(SHLIB_SONAME) && \
-       if [ -f $(SHLIB_NAME) ]; then \
-         mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
+       -o $(SHLIB_DIR)/$(SHLIB_NAME).tmp @multilib_flags@ \
+       $(SHLIB_OBJS) -lc && \
+        rm -f $(SHLIB_DIR)/$(SHLIB_SONAME) && \
+       if [ -f $(SHLIB_DIR)/$(SHLIB_NAME) ]; then \
+         mv -f $(SHLIB_DIR)/$(SHLIB_NAME) $(SHLIB_DIR)/$(SHLIB_NAME).backup; \
        else true; fi && \
-       mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
-        $(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME)
+       mv $(SHLIB_DIR)/$(SHLIB_NAME).tmp $(SHLIB_DIR)/$(SHLIB_NAME) && \
+        $(LN_S) $(SHLIB_NAME) $(SHLIB_DIR)/$(SHLIB_SONAME)
 
 
 # $(slibdir) double quoted to protect it from expansion while building
 # libgcc.mk.  We want this delayed until actual install time.
-SHLIB_INSTALL = $(INSTALL_DATA) -m 555 $(SHLIB_NAME) \
-       $$(DESTDIR)$$(slibdir)/$(SHLIB_SONAME); \
-        rm -f $$(DESTDIR)$$(slibdir)/$(SHLIB_NAME); \
-        $(LN_S) $(SHLIB_SONAME) $$(DESTDIR)$$(slibdir)/$(SHLIB_NAME)
+SHLIB_INSTALL = $(INSTALL_DATA) -m 555 $(SHLIB_DIR)/$(SHLIB_NAME) \
+       $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
+        rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_NAME); \
+        $(LN_S) $(SHLIB_SONAME) \
+       $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_NAME)
 
index 0e42449d43a6b10a5b8876a9d9e508f698470f43..f9e70c157ce167f3016ff586b1f07ebcc3b273be 100644 (file)
@@ -46,17 +46,20 @@ SHLIB_EXT = .a
 SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
        -Wl,-bE:@shlib_map_file@ -o @multilib_dir@/shr.o \
        @multilib_flags@ @shlib_objs@ -lc \
-       `case @shlib_base_name@ in \
+       `case @multilib_dir@ in \
        *pthread*) echo -L/usr/lib/threads -lpthreads -lc_r /usr/lib/libc.a ;; \
        *) echo -lc ;; esac` ; \
-       rm -f tmp-@shlib_base_name@.a ; \
-       $(AR_CREATE_FOR_TARGET) tmp-@shlib_base_name@.a @multilib_dir@/shr.o ; \
-       mv tmp-@shlib_base_name@.a @shlib_base_name@.a ; \
+       rm -f @multilib_dir@/tmp-@shlib_base_name@.a ; \
+       $(AR_CREATE_FOR_TARGET) @multilib_dir@/tmp-@shlib_base_name@.a \
+       @multilib_dir@/shr.o ; \
+       mv @multilib_dir@/tmp-@shlib_base_name@.a \
+          @multilib_dir@/@shlib_base_name@.a ; \
        rm -f @multilib_dir@/shr.o
 # $(slibdir) double quoted to protect it from expansion while building
 # libgcc.mk.  We want this delayed until actual install time.
-SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.a $$(DESTDIR)$$(slibdir)/
-SHLIB_LIBS = -lc `case @shlib_base_name@ in *pthread*) echo -lpthread ;; esac`
+SHLIB_INSTALL = $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.a \
+               $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/
+SHLIB_LIBS = -lc `case @multilib_dir@ in *pthread*) echo -lpthread ;; esac`
 SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
 SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver
 SHLIB_NM_FLAGS = -Bpg -X32_64
index 68d70ef55fab29cdb9fc09bbef64a6ee5d694d8f..cb2b88415e1f9e6e7d06aeb31bbab3ba91f466cb 100644 (file)
@@ -27,17 +27,20 @@ SHLIB_EXT = .a
 SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
        -Wl,-bE:@shlib_map_file@ -o @multilib_dir@/shr.o \
        @multilib_flags@ @shlib_objs@ -lc \
-       `case @shlib_base_name@ in \
+       `case @multilib_dir@ in \
        *pthread*) echo -L/usr/lib/threads -lpthreads -lc_r /usr/lib/libc.a ;; \
        *) echo -lc ;; esac` ; \
-       rm -f tmp-@shlib_base_name@.a ; \
-       $(AR_CREATE_FOR_TARGET) tmp-@shlib_base_name@.a @multilib_dir@/shr.o ; \
-       mv tmp-@shlib_base_name@.a @shlib_base_name@.a ; \
+       rm -f @multilib_dir@/tmp-@shlib_base_name@.a ; \
+       $(AR_CREATE_FOR_TARGET) @multilib_dir@/tmp-@shlib_base_name@.a \
+       @multilib_dir@/shr.o ; \
+       mv @multilib_dir@/tmp-@shlib_base_name@.a \
+          @multilib_dir@/@shlib_base_name@.a ; \
        rm -f @multilib_dir@/shr.o
 # $(slibdir) double quoted to protect it from expansion while building
 # libgcc.mk.  We want this delayed until actual install time.
-SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.a $$(DESTDIR)$$(slibdir)/
-SHLIB_LIBS = -lc `case @shlib_base_name@ in *pthread*) echo -lpthread ;; esac`
+SHLIB_INSTALL = $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.a \
+               $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/
+SHLIB_LIBS = -lc `case @multilib_dir@ in *pthread*) echo -lpthread ;; esac`
 SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
 SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver
 SHLIB_NM_FLAGS = -Bpg -X32_64
index 71e96f5315781e20122ff06976f0e59f9b2b9898..777d157909e3f34ce378e4de8a8a6a26fc3eda64 100644 (file)
@@ -23,21 +23,23 @@ SHLIB_MAPFILES = \
 SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
        -Wl,--soname=$(SHLIB_SONAME) \
        -Wl,--version-script=$(SHLIB_MAP) \
-       -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
-       rm -f $(SHLIB_SOLINK) && \
-       if [ -f $(SHLIB_NAME) ]; then \
-         mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
+       -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \
+       $(SHLIB_OBJS) $(SHLIB_LC) && \
+       rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
+       if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \
+         mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \
+               $(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
        else true; fi && \
-       mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
+       mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
        (echo "/* GNU ld script"; \
         echo "   Use the shared library, but some functions are only in"; \
         echo "   the static library.  */"; \
         echo "GROUP ( $(SHLIB_SONAME) libgcc.a )" \
-       ) > $(SHLIB_SOLINK)
+       ) > $(SHLIB_DIR)/$(SHLIB_SOLINK)
 SHLIB_INSTALL = \
        $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
-       $(INSTALL_DATA) $(SHLIB_NAME) \
+       $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \
          $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
        rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
-       $(INSTALL_DATA) $(SHLIB_SOLINK) \
+       $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SOLINK) \
          $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
index 428bc43ed2e8a9151a3e3a9dd94382d42d642eca..1fa8aa2525126c9d9e5f8d8e59e546d0035a3c0c 100644 (file)
@@ -5,25 +5,26 @@ LIBUNWIND = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c
 LIBUNWINDDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
 
 SHLIBUNWIND_SOVERSION = 7
-SHLIBUNWIND_SONAME = @shlib_so_name@.so.$(SHLIBUNWIND_SOVERSION)
-SHLIBUNWIND_NAME = @shlib_base_name@.so.$(SHLIBUNWIND_SOVERSION)
+SHLIBUNWIND_SONAME = @shlib_base_name@.so.$(SHLIBUNWIND_SOVERSION)
 
 SHLIBUNWIND_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared \
        -nodefaultlibs -Wl,-h,$(SHLIBUNWIND_SONAME) \
-       -Wl,-z,text -Wl,-z,defs -o $(SHLIBUNWIND_NAME).tmp \
+       -Wl,-z,text -Wl,-z,defs -o $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME).tmp \
        @multilib_flags@ $(SHLIB_OBJS) -lc && \
-       rm -f $(SHLIB_SOLINK) && \
-       if [ -f $(SHLIBUNWIND_NAME) ]; then \
-         mv -f $(SHLIBUNWIND_NAME) $(SHLIBUNWIND_NAME).backup; \
+       rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
+       if [ -f $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME) ]; then \
+         mv -f $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME) \
+               $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME).backup; \
        else true; fi && \
-       mv $(SHLIBUNWIND_NAME).tmp $(SHLIBUNWIND_NAME) && \
-       $(LN_S) $(SHLIBUNWIND_NAME) $(SHLIB_SOLINK)
+       mv $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME).tmp \
+          $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME) && \
+       $(LN_S) $(SHLIBUNWIND_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
 
 # $(slibdir) double quoted to protect it from expansion while building
 # libgcc.mk.  We want this delayed until actual install time.
 SHLIBUNWIND_INSTALL = \
        $$(SHELL) $$(srcdir)/mkinstalldirs $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
-       $(INSTALL_DATA) $(SHLIBUNWIND_NAME) \
+       $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME) \
          $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIBUNWIND_SONAME); \
        rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
        $(LN_S) $(SHLIBUNWIND_SONAME) \
index 66d4e777dd56b085d34ebbe96ac0e7f833a83f2d..46fb36f2bc3bae3cd7f66833d2955f864d9ce17d 100644 (file)
@@ -4,29 +4,30 @@ SHLIB_REVISION = 0
 SHLIB_VERSTRING = -compatibility_version $(SHLIB_MINOR) -current_version $(SHLIB_MINOR).$(SHLIB_REVISION)
 SHLIB_EXT = .dylib
 SHLIB_SOLINK = @shlib_base_name@.dylib
-SHLIB_SONAME = @shlib_so_name@.$(SHLIB_MINOR).$(SHLIB_REVISION).dylib
-SHLIB_NAME = @shlib_base_name@.$(SHLIB_MINOR).$(SHLIB_REVISION).dylib
+SHLIB_SONAME = @shlib_base_name@.$(SHLIB_MINOR).$(SHLIB_REVISION).dylib
 SHLIB_MAP = @shlib_map_file@
 SHLIB_OBJS = @shlib_objs@
+SHLIB_DIR = @multilib_dir@
 SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
 
 SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -dynamiclib -nodefaultlibs \
        -Wl,-install_name,$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME) \
-       -Wl,-flat_namespace -o $(SHLIB_NAME).tmp \
+       -Wl,-flat_namespace -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp \
        -Wl,-exported_symbols_list,$(SHLIB_MAP) \
        $(SHLIB_VERSTRING) \
        @multilib_flags@ $(SHLIB_OBJS) -lc && \
-       rm -f $(SHLIB_SOLINK) && \
-       if [ -f $(SHLIB_NAME) ]; then \
-         mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
+       rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
+       if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \
+         mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \
+               $(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
        else true; fi && \
-       mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
-       $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK)
+       mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
+       $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
 # $(slibdir) double quoted to protect it from expansion while building
 # libgcc.mk.  We want this delayed until actual install time.
 SHLIB_INSTALL = \
        $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
-       $(INSTALL_DATA) $(SHLIB_NAME) \
+       $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \
          $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
        rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
        $(LN_S) $(SHLIB_SONAME) \
index e70647aa83118185ea05110a9cd795ecbaf1a511..346143c5c53777637dc1fabaddc59193e1e95b19 100644 (file)
@@ -4,28 +4,30 @@
 SHLIB_EXT = .so
 SHLIB_SOLINK = @shlib_base_name@.so
 SHLIB_SOVERSION = 1
-SHLIB_SONAME = @shlib_so_name@.so.$(SHLIB_SOVERSION)
-SHLIB_NAME = @shlib_base_name@.so.$(SHLIB_SOVERSION)
+SHLIB_SONAME = @shlib_base_name@.so.$(SHLIB_SOVERSION)
 SHLIB_MAP = @shlib_map_file@
 SHLIB_OBJS = @shlib_objs@
+SHLIB_DIR = @multilib_dir@
 SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
 SHLIB_LC = -lc
 
 SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
        -Wl,--soname=$(SHLIB_SONAME) \
        -Wl,--version-script=$(SHLIB_MAP) \
-       -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
-       rm -f $(SHLIB_SOLINK) && \
-       if [ -f $(SHLIB_NAME) ]; then \
-         mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
+       -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \
+       $(SHLIB_OBJS) $(SHLIB_LC) && \
+       rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
+       if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \
+         mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \
+               $(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
        else true; fi && \
-       mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
-       $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK)
+       mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
+       $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
 # $(slibdir) double quoted to protect it from expansion while building
 # libgcc.mk.  We want this delayed until actual install time.
 SHLIB_INSTALL = \
        $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
-       $(INSTALL_DATA) $(SHLIB_NAME) \
+       $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \
          $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
        rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
        $(LN_S) $(SHLIB_SONAME) \
index 64c147806c912bfbf2441bb85094af232b0cc0aa..02d21c6de678177797e64b4da7d31fc76f680fe9 100644 (file)
@@ -2,27 +2,28 @@
 
 SHLIB_EXT = .so
 SHLIB_SOLINK = @shlib_base_name@.so
-SHLIB_SONAME = @shlib_so_name@.so.1
-SHLIB_NAME = @shlib_base_name@.so.1
+SHLIB_SONAME = @shlib_base_name@.so.1
 SHLIB_MAP = @shlib_map_file@
 SHLIB_OBJS = @shlib_objs@
+SHLIB_DIR = @multilib_dir@
 SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
 
 SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
        -Wl,-h,$(SHLIB_SONAME) -Wl,-z,text -Wl,-z,defs \
-       -Wl,-M,$(SHLIB_MAP) -o $(SHLIB_NAME).tmp \
+       -Wl,-M,$(SHLIB_MAP) -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp \
        @multilib_flags@ $(SHLIB_OBJS) -lc && \
-       rm -f $(SHLIB_SOLINK) && \
-       if [ -f $(SHLIB_NAME) ]; then \
-         mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
+       rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
+       if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \
+         mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \
+               $(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
        else true; fi && \
-       mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
-       $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK)
+       mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
+       $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
 # $(slibdir) double quoted to protect it from expansion while building
 # libgcc.mk.  We want this delayed until actual install time.
 SHLIB_INSTALL = \
        $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
-       $(INSTALL_DATA) $(SHLIB_NAME) \
+       $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \
          $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
        rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
        $(LN_S) $(SHLIB_SONAME) \
index 048f4950910e269a0cd8d3788291e73534e06880..ad8ee654c68906b59bcebd2211a7db428178a971 100644 (file)
@@ -6373,11 +6373,6 @@ Dump out a @option{-L} option for each directory that GCC believes might
 contain startup files.  If the target supports multilibs then the
 current multilib directory will be prepended to each of these paths.
 
-@item %M
-Output the multilib directory with directory separators replaced with
-@samp{_}.  If multilib directories are not set, or the multilib directory is
-@file{.} then this option emits nothing.
-
 @item %L
 Process the @code{lib} spec.  This is a spec string for deciding which
 libraries should be included on the command line to the linker.
index a9eec5a7200b8cc20485d4dabb731b3ba9120060..753ba33eeff2bf9bc5eb355ca0deff95b9f81512 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -473,8 +473,6 @@ or with constant text in a single argument.
  %l     process LINK_SPEC as a spec.
  %L     process LIB_SPEC as a spec.
  %G     process LIBGCC_SPEC as a spec.
- %M     output multilib_dir with directory separators replaced with "_";
-       if multilib_dir is not set or is ".", output "".
  %S     process STARTFILE_SPEC as a spec.  A capital S is actually used here.
  %E     process ENDFILE_SPEC as a spec.  A capital E is actually used here.
  %C     process CPP_SPEC as a spec.
@@ -1704,11 +1702,7 @@ init_spec (void)
        if (in_sep && *p == '-' && strncmp (p, "-lgcc", 5) == 0)
          {
            init_gcc_specs (&obstack,
-#ifdef NO_SHARED_LIBGCC_MULTILIB
                            "-lgcc_s"
-#else
-                           "-lgcc_s%M"
-#endif
 #ifdef USE_LIBUNWIND_EXCEPTIONS
                            " -lunwind"
 #endif
@@ -1732,12 +1726,7 @@ init_spec (void)
            /* Ug.  We don't know shared library extensions.  Hope that
               systems that use this form don't do shared libraries.  */
            init_gcc_specs (&obstack,
-#ifdef NO_SHARED_LIBGCC_MULTILIB
-                           "-lgcc_s"
-#else
-                           "-lgcc_s%M"
-#endif
-                           ,
+                           "-lgcc_s",
                            "libgcc.a%s",
                            "libgcc_eh.a%s"
 #ifdef USE_LIBUNWIND_EXCEPTIONS
@@ -5078,23 +5067,6 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
              return value;
            break;
 
-         case 'M':
-           if (multilib_dir && strcmp (multilib_dir, ".") != 0)
-             {
-               char *p;
-               const char *q;
-               size_t len;
-
-               len = strlen (multilib_dir);
-               obstack_blank (&obstack, len + 1);
-               p = obstack_next_free (&obstack) - (len + 1);
-
-               *p++ = '_';
-               for (q = multilib_dir; *q ; ++q, ++p)
-                 *p = (IS_DIR_SEPARATOR (*q) ? '_' : *q);
-             }
-           break;
-
          case 'R':
            /* We assume there is a directory
               separator at the end of this string.  */
index 3a789350868437216d05bdf6bb36e5931879fa41..91e564086ec997709d0d2bd038958f9937b8a14b 100644 (file)
@@ -33,7 +33,6 @@
 # EXTRA_MULTILIB_PARTS
 # SHLIB_EXT
 # SHLIB_LINK
-# SHLIB_MULTILIB
 # SHLIB_MKMAP
 # SHLIB_MKMAP_OPTS
 # SHLIB_MAPFILES
@@ -158,79 +157,29 @@ for ml in $MULTILIBS; do
   # Work out relevant parameters that depend only on the multilib.
   dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
   flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
-  shlib_dir=
-  shlib_dir_qual=
+  shlib_slibdir_qual=
   libgcc_a=$dir/libgcc.a
   libgcov_a=$dir/libgcov.a
   libgcc_eh_a=
   libgcc_s_so=
   libunwind_a=
   libunwind_so=
-  if [ "$dir" = . ]; then
-    suffix=
-  else
-    suffix=`echo $dir | sed s,/,_,g`
-  fi
 
   if [ "$LIBUNWIND" ]; then
     libunwind_a=$dir/libunwind.a
   fi
   if [ "$SHLIB_LINK" ]; then
-    if [ -z "$SHLIB_MULTILIB" ]; then
-      if [ "$dir" = . ]; then
-       libgcc_eh_a=$dir/libgcc_eh.a
-       libgcc_s_so_base=libgcc_s
-       libgcc_s_so=${libgcc_s_so_base}${SHLIB_EXT}
-       libgcc_s_soname=libgcc_s
-       if [ "$LIBUNWIND" ]; then
-         libunwind_so_base=libunwind
-         libunwind_so=${libunwind_so_base}${SHLIB_EXT}
-         libunwind_soname=libunwind
-       fi
-      else
-       libgcc_eh_a=$dir/libgcc_eh.a
-       libgcc_s_so_base=libgcc_s_${suffix}
-       libgcc_s_so=${libgcc_s_so_base}${SHLIB_EXT}
-       libgcc_s_soname=libgcc_s_${suffix}
-       if [ "$LIBUNWIND" ]; then
-         libunwind_so_base=libunwind_${suffix}
-         libunwind_so=${libunwind_so_base}${SHLIB_EXT}
-       fi
-      fi
-
-      if [ -n "$MULTILIB_OSDIRNAMES" ]; then
-       if [ "$dir" != . ]; then
-         gcc_multilib_dir=`./xgcc -B./ $flags --print-multi-directory`
-         os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory`
-         shlib_dir="$dir"/
-         gcc_multilib_sup=`echo $gcc_multilib_dir | sed 's~^[^/]*/~~'`
-         os_multilib_base=`echo $os_multilib_dir | sed -n "s~/${gcc_multilib_sup}\$~~p"`
-         if [ -z "$os_multilib_base" ]; then
-           libgcc_s_soname=libgcc_s
-           libunwind_soname=libunwind
-           if [ "$os_multilib_dir" != "." ]; then
-             shlib_dir_qual="/$os_multilib_dir"
-           fi
-         else
-           libgcc_s_soname=libgcc_s_`echo $gcc_multilib_sup | sed s,/,_,g`
-           libunwind_soname=libunwind_`echo $gcc_multilib_sup | sed s,/,_,g`
-           shlib_dir_qual="/$os_multilib_base"
-         fi
-       fi
-      fi
-
-    elif [ "$SHLIB_MULTILIB" = "$dir" ]; then
-      libgcc_eh_a=$dir/libgcc_eh.a
-      libgcc_s_so_base=libgcc_s
-      libgcc_s_so=${libgcc_s_so_base}${SHLIB_EXT}
-      libgcc_s_soname=libgcc_s
-      if [ "$LIBUNWIND" ]; then
-       libunwind_so_base=libunwind
-       libunwind_so=${libunwind_so_base}${SHLIB_EXT}
-       libunwind_soname=libunwind
-      fi
+    libgcc_eh_a=$dir/libgcc_eh.a
+    libgcc_s_so=$dir/libgcc_s${SHLIB_EXT}
+    if [ "$LIBUNWIND" ]; then
+      libunwind_so=$dir/libunwind${SHLIB_EXT}
+    fi
+    os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory`
+    if [ "$os_multilib_dir" != . ]; then
+      shlib_slibdir_qual="/$os_multilib_dir"
     fi
   fi
+
   libgcc_s_so_extra=
   libunwind_so_extra=
 
@@ -244,20 +193,9 @@ for ml in $MULTILIBS; do
   echo \# libgcc_eh_a: $libgcc_eh_a
   echo \# libunwind_a: $libunwind_a
   echo \#
-  echo \# gcc_multilib_dir: $gcc_multilib_dir
-  echo \# gcc_multilib_sup: $gcc_multilib_sup
-  echo \# os_multilib_dir: $os_multilib_dir
-  echo \# os_multilib_base: $os_multilib_base
-  echo \# shlib_dir: $shlib_dir
-  echo \# shlib_dir_qual: $shlib_dir_qual
-  echo \#
+  echo \# shlib_slibdir_qual: $shlib_slibdir_qual
   echo \# libgcc_s_so: $libgcc_s_so
-  echo \# libgcc_s_so_base: $libgcc_s_so_base
-  echo \# libgcc_s_soname: $libgcc_s_soname
-  echo \# 
   echo \# libunwind_so: $libunwind_so
-  echo \# libunwind_so_base: $libunwind_so_base
-  echo \# libunwind_soname: $libunwind_soname
   echo \#
   echo
 
@@ -687,6 +625,11 @@ for ml in $MULTILIBS; do
       extra="$extra $targ"
     done
 
+    if [ "$dir" = . ]; then
+      suffix=
+    else
+      suffix=`echo $dir | sed s,/,_,g`
+    fi
     echo extra$suffix: stmp-dirs
     echo "     $make_compile" \\
     echo '       LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)' $flags '" ' \\
@@ -777,8 +720,7 @@ EOF
         | sed -e "s%@multilib_flags@%$flags%g" \
               -e "s%@multilib_dir@%$dir%g" \
               -e "s%@shlib_objs@%\$(objects)%g" \
-              -e "s%@shlib_base_name@%$libgcc_s_so_base%g" \
-              -e "s%@shlib_so_name@%$libgcc_s_soname%g" \
+              -e "s%@shlib_base_name@%libgcc_s%g" \
               -e "s%@shlib_map_file@%$mapfile%g" \
               -e "s%@shlib_slibdir_qual@%$shlib_dir_qual%g"
     echo "all: $libgcc_s_so"
@@ -791,8 +733,7 @@ EOF
           | sed -e "s%@multilib_flags@%$flags%g" \
                 -e "s%@multilib_dir@%$dir%g" \
                 -e "s%@shlib_objs@%\$(objects)%g" \
-                -e "s%@shlib_base_name@%$libunwind_so_base%g" \
-                -e "s%@shlib_so_name@%$libunwind_soname%g" \
+                -e "s%@shlib_base_name@%libunwind%g" \
                 -e "s%@shlib_slibdir_qual@%$shlib_dir_qual%g"
     echo "all: $libunwind_so"
   fi
@@ -839,66 +780,23 @@ for ml in $MULTILIBS; do
     echo '     $(INSTALL_DATA)' ${dir}/libgcc_eh.a ${ldir}/
     echo '     $(RANLIB_FOR_TARGET)' ${ldir}/libgcc_eh.a
 
-    if [ -z "$SHLIB_MULTILIB" ]; then
-      if [ "$dir" = . ]; then
-       shlib_base_name=libgcc_s
-       shlibunwind_base_name=libunwind
-      else
-       shlib_base_name=libgcc_s_`echo $dir | sed s,/,_,g`
-       shlibunwind_base_name=libunwind_`echo $dir | sed s,/,_,g`
-      fi
-      shlib_so_name="$shlib_base_name"
-      shlibunwind_so_name="$shlibunwind_base_name"
-      shlib_dir=
-      shlib_slibdir_qual=
-      if [ -n "$MULTILIB_OSDIRNAMES" ]; then
-       gcc_multilib_dir=`./xgcc -B./ $flags --print-multi-directory`
-       os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory`
-       if [ "$dir" != . ]; then
-         shlib_dir="$dir"/
-       fi
-       gcc_multilib_sup=`echo $gcc_multilib_dir | sed 's~^[^/]*/~~'`
-       os_multilib_base=`echo $os_multilib_dir | sed -n "s~/${gcc_multilib_sup}\$~~p"`
-       if [ -z "$os_multilib_base" ]; then
-         shlib_so_name=libgcc_s
-         shlibunwind_so_name=libunwind
-         if [ "$os_multilib_dir" != "." ]; then
-           shlib_slibdir_qual="/$os_multilib_dir"
-         fi
-       else
-         shlib_so_name=libgcc_s_`echo $gcc_multilib_sup | sed s,/,_,g`
-         shlibunwind_so_name=libunwind_`echo $gcc_multilib_sup | sed s,/,_,g`
-         shlib_slibdir_qual="/$os_multilib_base"
-       fi
-      fi
-      echo "   $SHLIB_INSTALL" \
-       | sed -e "s%@shlib_base_name@%$shlib_base_name%g" \
-             -e "s%@shlib_so_name@%$shlib_so_name%g" \
+    shlib_slibdir_qual=
+    os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory`
+    if [ "$os_multilib_dir" != . ]; then
+      shlib_slibdir_qual="/$os_multilib_dir"
+    fi
+    echo "     $SHLIB_INSTALL" \
+      | sed -e "s%@multilib_dir@%$dir%g" \
+           -e "s%@shlib_base_name@%libgcc_s%g" \
+           -e "s%@shlib_slibdir_qual@%$shlib_slibdir_qual%g"
+    if [ "$LIBUNWIND" ]; then
+      echo "   $SHLIBUNWIND_INSTALL" \
+       | sed -e "s%@multilib_dir@%$dir%g" \
+             -e "s%@shlib_base_name@%libunwind%g" \
              -e "s%@shlib_slibdir_qual@%$shlib_slibdir_qual%g"
-      if [ "$LIBUNWIND" ]; then
-       echo "  $SHLIBUNWIND_INSTALL" \
-          | sed -e "s%@shlib_base_name@%$shlibunwind_base_name%g" \
-                -e "s%@shlib_so_name@%$shlibunwind_so_name%g" \
-                -e "s%@shlib_slibdir_qual@%$shlib_slibdir_qual%g"
-       libunwinddir='$(DESTDIR)$(slibdir)$(shlib_slibdir_qual)/$(shlib_dir)'
-       echo '  $(INSTALL_DATA)' ${dir}/libunwind.a ${libunwinddir}/
-       echo '  $(RANLIB_FOR_TARGET)' ${libunwinddir}/libunwind.a
-      fi
-    elif [ "$SHLIB_MULTILIB" = "$dir" ]; then
-      shlib_base_name="libgcc_s";
-      echo "   $SHLIB_INSTALL" \
-       | sed -e "s%@shlib_base_name@%$shlib_base_name%g" \
-             -e "s%@shlib_so_name@%$shlib_base_name%g" \
-             -e "s%@shlib_slibdir_qual@%%g"
-      if [ "$LIBUNWIND" ]; then
-       echo "  $SHLIBUNWIND_INSTALL" \
-          | sed -e "s%@shlib_base_name@%$shlibunwind_base_name%g" \
-                -e "s%@shlib_so_name@%$shlibunwind_base_name%g" \
-                -e "s%@shlib_slibdir_qual@%%g"
-       libunwinddir='$(DESTDIR)$(slibdir)'
-       echo '  $(INSTALL_DATA)' ${dir}/libunwind.a ${libunwinddir}/
-       echo '  $(RANLIB_FOR_TARGET)' ${libunwinddir}/libunwind.a
-      fi
+      libunwinddir='$(DESTDIR)$(slibdir)$(shlib_slibdir_qual)/$(shlib_dir)'
+      echo '   $(INSTALL_DATA)' ${dir}/libunwind.a ${libunwinddir}/
+      echo '   $(RANLIB_FOR_TARGET)' ${libunwinddir}/libunwind.a
     fi
   fi
 done