diff options
Diffstat (limited to 'libgcc')
-rw-r--r-- | libgcc/ChangeLog | 5 | ||||
-rw-r--r-- | libgcc/config.host | 5 | ||||
-rw-r--r-- | libgcc/config/sh/t-linux | 37 |
3 files changed, 47 insertions, 0 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 7020915..a1f3b93 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 ac18f04..a6e6a10 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 0000000..be0b128 --- /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 |