t-linux (TARGET_LIBGCC2_CFLAGS): Delete.

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.

From-SVN: r120619
This commit is contained in:
Kaz Kojima 2007-01-09 10:50:23 +00:00
parent 1ba008b772
commit 269008262e
5 changed files with 52 additions and 36 deletions

View 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

View 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)

View 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.

View 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*)
;;

37
libgcc/config/sh/t-linux Normal file
View File

@ -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