diff options
author | Richard Sandiford <rsandifo@redhat.com> | 2005-02-19 11:44:10 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2005-02-19 11:44:10 +0000 |
commit | 4e8d0554ef223d2158e45b5831b9623a355d1d08 (patch) | |
tree | ac558f936697e52cc362b3bdf22989d4fba3c2c3 /gcc | |
parent | a74b85d0a4d58604e99cefa057df9353c5fb9ea6 (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 46 | ||||
-rw-r--r-- | gcc/config/i386/t-nwld | 23 | ||||
-rw-r--r-- | gcc/config/ia64/t-hpux | 17 | ||||
-rw-r--r-- | gcc/config/mips/t-slibgcc-irix | 22 | ||||
-rw-r--r-- | gcc/config/pa/t-hpux-shlib | 24 | ||||
-rw-r--r-- | gcc/config/rs6000/t-aix43 | 15 | ||||
-rw-r--r-- | gcc/config/rs6000/t-aix52 | 15 | ||||
-rw-r--r-- | gcc/config/sh/t-linux | 18 | ||||
-rw-r--r-- | gcc/config/t-libunwind-elf | 19 | ||||
-rw-r--r-- | gcc/config/t-slibgcc-darwin | 19 | ||||
-rw-r--r-- | gcc/config/t-slibgcc-elf-ver | 20 | ||||
-rw-r--r-- | gcc/config/t-slibgcc-sld | 19 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 5 | ||||
-rw-r--r-- | gcc/gcc.c | 30 | ||||
-rw-r--r-- | gcc/mklibgcc.in | 170 |
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. @@ -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 |