gcc/
authorkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Jan 2007 10:50:23 +0000 (10:50 +0000)
committerkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Jan 2007 10:50:23 +0000 (10:50 +0000)
* config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
(SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
libgcc/
* config/sh/t-linux: New.
* config.host (sh*-*-linux*): Set tmake_file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120619 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/sh/t-linux
libgcc/ChangeLog
libgcc/config.host
libgcc/config/sh/t-linux [new file with mode: 0644]

index 2451d71..bd58d3a 100644 (file)
@@ -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
index 8679bb5..b7a3d7c 100644 (file)
@@ -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)
index 7020915..a1f3b93 100644 (file)
@@ -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.
index ac18f04..a6e6a10 100644 (file)
@@ -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 (file)
index 0000000..be0b128
--- /dev/null
@@ -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