diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/sh/t-linux | 36 | ||||
-rw-r--r-- | libgcc/ChangeLog | 5 | ||||
-rw-r--r-- | libgcc/config.host | 5 | ||||
-rw-r--r-- | libgcc/config/sh/t-linux | 37 |
5 files changed, 52 insertions, 36 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2451d719d0c..bd58d3a0429 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-01-09 Kaz Kojima <kkojima@gcc.gnu.org> + + * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete. + (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise. + 2007-01-09 Nicolas Pitre <nico@cam.org> PR target/30173 diff --git a/gcc/config/sh/t-linux b/gcc/config/sh/t-linux index 8679bb52946..b7a3d7c977b 100644 --- a/gcc/config/sh/t-linux +++ b/gcc/config/sh/t-linux @@ -1,4 +1,3 @@ -TARGET_LIBGCC2_CFLAGS = -fpic -DNO_FPSCR_VALUES LIB1ASMFUNCS_CACHE = _ic_invalidate _ic_invalidate_array LIB2FUNCS_EXTRA= $(srcdir)/config/sh/linux-atomic.asm @@ -8,38 +7,3 @@ MULTILIB_MATCHES = MULTILIB_EXCEPTIONS= EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o - -# Override t-slibgcc-elf-ver to export some libgcc symbols with -# the symbol versions that glibc used, and hide some lib1func -# routines which should not be called via PLT. We have to create -# the list from scratch. -SHLIB_MAPFILES = \ - $(srcdir)/libgcc-std.ver \ - $(srcdir)/config/sh/libgcc-excl.ver \ - $(srcdir)/config/sh/libgcc-glibc.ver - -# Override SHLIB_LINK and SHLIB_INSTALL to use linker script -# libgcc_s.so. -SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ - -Wl,--soname=$(SHLIB_SONAME) \ - -Wl,--version-script=$(SHLIB_MAP) \ - -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_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_DIR)/$(SHLIB_SOLINK) -SHLIB_INSTALL = \ - $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \ - $(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_DIR)/$(SHLIB_SOLINK) \ - $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 7020915b952..a1f3b931071 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,8 @@ +2007-01-09 Kaz Kojima <kkojima@gcc.gnu.org> + + * config/sh/t-linux: New. + * config.host (sh*-*-linux*): Set tmake_file. + 2007-01-05 Daniel Jacobowitz <dan@codesourcery.com> * Makefile.in (install): Handle multilibs. diff --git a/libgcc/config.host b/libgcc/config.host index ac18f04a0a4..a6e6a101480 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -548,6 +548,11 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ sh-*-linux* | sh[346lbe]*-*-linux* | \ sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \ sh64-*-netbsd* | sh64l*-*-netbsd*) + case ${host} in + sh*-*-linux*) + tmake_file="${tmake_file} sh/t-linux" + ;; + esac ;; sh-*-rtemscoff*) ;; diff --git a/libgcc/config/sh/t-linux b/libgcc/config/sh/t-linux new file mode 100644 index 00000000000..be0b1282431 --- /dev/null +++ b/libgcc/config/sh/t-linux @@ -0,0 +1,37 @@ +HOST_LIBGCC2_CFLAGS = -fpic -DNO_FPSCR_VALUES + +# Override t-slibgcc-elf-ver to export some libgcc symbols with +# the symbol versions that glibc used, and hide some lib1func +# routines which should not be called via PLT. We have to create +# the list from scratch. +SHLIB_MAPFILES = \ + $(gcc_srcdir)/libgcc-std.ver \ + $(gcc_srcdir)/config/sh/libgcc-excl.ver \ + $(gcc_srcdir)/config/sh/libgcc-glibc.ver + +# Override SHLIB_LINK and SHLIB_INSTALL to use linker script +# libgcc_s.so. +SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ + -Wl,--soname=@shlib_base_name@.so.1 \ + -Wl,--version-script=@shlib_map_file@ \ + -o @multilib_dir@/@shlib_base_name@.so.1.tmp @multilib_flags@ \ + @shlib_objs@ -lc && \ + rm -f @multilib_dir@/@shlib_base_name@.so && \ + if [ -f @multilib_dir@/@shlib_base_name@.so.1 ]; then \ + mv -f @multilib_dir@/@shlib_base_name@.so.1 \ + @multilib_dir@/@shlib_base_name@.so.1.backup; \ + else true; fi && \ + mv @multilib_dir@/@shlib_base_name@.so.1.tmp \ + @multilib_dir@/@shlib_base_name@.so.1 && \ + (echo "/* GNU ld script"; \ + echo " Use the shared library, but some functions are only in"; \ + echo " the static library. */"; \ + echo "GROUP ( @shlib_base_name@.so.1 libgcc.a )" \ + ) > @multilib_dir@/@shlib_base_name@.so +SHLIB_INSTALL = \ + $(mkinstalldirs) $(DESTDIR)$(slibdir)@shlib_slibdir_qual@; \ + $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.so.1 \ + $(DESTDIR)$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so.1; \ + rm -f $(DESTDIR)$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so; \ + $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.so \ + $(DESTDIR)$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so |