aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@redhat.com>2005-02-19 11:44:10 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2005-02-19 11:44:10 +0000
commit4e8d0554ef223d2158e45b5831b9623a355d1d08 (patch)
treeac558f936697e52cc362b3bdf22989d4fba3c2c3
parenta74b85d0a4d58604e99cefa057df9353c5fb9ea6 (diff)
downloadgcc-4e8d0554ef223d2158e45b5831b9623a355d1d08.zip
gcc-4e8d0554ef223d2158e45b5831b9623a355d1d08.tar.gz
gcc-4e8d0554ef223d2158e45b5831b9623a355d1d08.tar.bz2
re PR other/19525 (In-build-directory multilib testing broken)
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
-rw-r--r--gcc/ChangeLog46
-rw-r--r--gcc/config/i386/t-nwld23
-rw-r--r--gcc/config/ia64/t-hpux17
-rw-r--r--gcc/config/mips/t-slibgcc-irix22
-rw-r--r--gcc/config/pa/t-hpux-shlib24
-rw-r--r--gcc/config/rs6000/t-aix4315
-rw-r--r--gcc/config/rs6000/t-aix5215
-rw-r--r--gcc/config/sh/t-linux18
-rw-r--r--gcc/config/t-libunwind-elf19
-rw-r--r--gcc/config/t-slibgcc-darwin19
-rw-r--r--gcc/config/t-slibgcc-elf-ver20
-rw-r--r--gcc/config/t-slibgcc-sld19
-rw-r--r--gcc/doc/invoke.texi5
-rw-r--r--gcc/gcc.c30
-rw-r--r--gcc/mklibgcc.in170
15 files changed, 196 insertions, 266 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 25fc15a..34a6c74 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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>
diff --git a/gcc/config/i386/t-nwld b/gcc/config/i386/t-nwld
index 2535563..ec12d12 100644
--- a/gcc/config/i386/t-nwld
+++ b/gcc/config/i386/t-nwld
@@ -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)/
diff --git a/gcc/config/ia64/t-hpux b/gcc/config/ia64/t-hpux
index d89f174..e84a09a 100644
--- a/gcc/config/ia64/t-hpux
+++ b/gcc/config/ia64/t-hpux
@@ -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
diff --git a/gcc/config/mips/t-slibgcc-irix b/gcc/config/mips/t-slibgcc-irix
index 71e5094..cfb4bf4 100644
--- a/gcc/config/mips/t-slibgcc-irix
+++ b/gcc/config/mips/t-slibgcc-irix
@@ -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) \
diff --git a/gcc/config/pa/t-hpux-shlib b/gcc/config/pa/t-hpux-shlib
index 5183b06..2a42ed6 100644
--- a/gcc/config/pa/t-hpux-shlib
+++ b/gcc/config/pa/t-hpux-shlib
@@ -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)
diff --git a/gcc/config/rs6000/t-aix43 b/gcc/config/rs6000/t-aix43
index 0e42449..f9e70c1 100644
--- a/gcc/config/rs6000/t-aix43
+++ b/gcc/config/rs6000/t-aix43
@@ -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
diff --git a/gcc/config/rs6000/t-aix52 b/gcc/config/rs6000/t-aix52
index 68d70ef5..cb2b884 100644
--- a/gcc/config/rs6000/t-aix52
+++ b/gcc/config/rs6000/t-aix52
@@ -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
diff --git a/gcc/config/sh/t-linux b/gcc/config/sh/t-linux
index 71e96f5..777d157 100644
--- a/gcc/config/sh/t-linux
+++ b/gcc/config/sh/t-linux
@@ -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)
diff --git a/gcc/config/t-libunwind-elf b/gcc/config/t-libunwind-elf
index 428bc43..1fa8aa2 100644
--- a/gcc/config/t-libunwind-elf
+++ b/gcc/config/t-libunwind-elf
@@ -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) \
diff --git a/gcc/config/t-slibgcc-darwin b/gcc/config/t-slibgcc-darwin
index 66d4e77..46fb36f 100644
--- a/gcc/config/t-slibgcc-darwin
+++ b/gcc/config/t-slibgcc-darwin
@@ -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) \
diff --git a/gcc/config/t-slibgcc-elf-ver b/gcc/config/t-slibgcc-elf-ver
index e70647a..346143c 100644
--- a/gcc/config/t-slibgcc-elf-ver
+++ b/gcc/config/t-slibgcc-elf-ver
@@ -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) \
diff --git a/gcc/config/t-slibgcc-sld b/gcc/config/t-slibgcc-sld
index 64c1478..02d21c6 100644
--- a/gcc/config/t-slibgcc-sld
+++ b/gcc/config/t-slibgcc-sld
@@ -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) \
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 048f495..ad8ee65 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -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.
diff --git a/gcc/gcc.c b/gcc/gcc.c
index a9eec5a..753ba33 100644
--- 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. */
diff --git a/gcc/mklibgcc.in b/gcc/mklibgcc.in
index 3a78935..91e5640 100644
--- a/gcc/mklibgcc.in
+++ b/gcc/mklibgcc.in
@@ -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