summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/t-linux36
-rw-r--r--libgcc/ChangeLog5
-rw-r--r--libgcc/config.host5
-rw-r--r--libgcc/config/sh/t-linux37
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