summaryrefslogtreecommitdiff
path: root/libgcc/config/sh
diff options
context:
space:
mode:
authorkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-09 10:50:23 +0000
committerkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-09 10:50:23 +0000
commit97f1a7045ad4240665bb14b581e62d01dbb402c2 (patch)
tree229ae6c189cf97a363f5928df5510ac67a6e5098 /libgcc/config/sh
parent48adc03d70345a7cdabf2c2917b17036a4ffb3b8 (diff)
downloadgcc-97f1a7045ad4240665bb14b581e62d01dbb402c2.tar.gz
gcc/
* 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
Diffstat (limited to 'libgcc/config/sh')
-rw-r--r--libgcc/config/sh/t-linux37
1 files changed, 37 insertions, 0 deletions
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