t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, [...]): New variables.
* config/t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, SHLIB_INSTALL_SOLINK): New variables. (SHLIB_LINK, SHLIB_INSTALL): Use them. * config/t-slibgcc-libgcc: New file. * config.gcc (powerpc*-*-linux*, powerpc*-*-gnu*): Use it. From-SVN: r151568
This commit is contained in:
parent
d72a3ac17b
commit
80a76d1d75
|
@ -1,3 +1,11 @@
|
|||
2009-09-09 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* config/t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, SHLIB_INSTALL_SOLINK):
|
||||
New variables.
|
||||
(SHLIB_LINK, SHLIB_INSTALL): Use them.
|
||||
* config/t-slibgcc-libgcc: New file.
|
||||
* config.gcc (powerpc*-*-linux*, powerpc*-*-gnu*): Use it.
|
||||
|
||||
2009-09-09 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
PR tree-optimization/41089
|
||||
|
|
|
@ -1927,7 +1927,7 @@ powerpc-*-linux* | powerpc64-*-linux*)
|
|||
tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
|
||||
;;
|
||||
esac
|
||||
tmake_file="${tmake_file} rs6000/t-fprules-softfp soft-fp/t-softfp"
|
||||
tmake_file="${tmake_file} t-slibgcc-libgcc rs6000/t-fprules-softfp soft-fp/t-softfp"
|
||||
case ${target} in
|
||||
powerpc*-*-linux*altivec*)
|
||||
tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
|
||||
|
@ -1943,19 +1943,19 @@ powerpc-*-linux* | powerpc64-*-linux*)
|
|||
powerpc64-*-gnu*)
|
||||
tm_file="${tm_file} elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/default64.h rs6000/linux64.h rs6000/gnu.h glibc-stdint.h"
|
||||
extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
|
||||
tmake_file="t-slibgcc-elf-ver t-gnu"
|
||||
tmake_file="t-slibgcc-elf-ver t-slibgcc-libgcc t-gnu"
|
||||
;;
|
||||
powerpc-*-gnu-gnualtivec*)
|
||||
tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h glibc-stdint.h"
|
||||
extra_options="${extra_options} rs6000/sysv4.opt"
|
||||
tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm"
|
||||
tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-slibgcc-libgcc t-gnu rs6000/t-ppccomm"
|
||||
if test x$enable_threads = xyes; then
|
||||
thread_file='posix'
|
||||
fi
|
||||
;;
|
||||
powerpc-*-gnu*)
|
||||
tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/gnu.h glibc-stdint.h"
|
||||
tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm"
|
||||
tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-slibgcc-libgcc t-gnu rs6000/t-ppccomm"
|
||||
extra_options="${extra_options} rs6000/sysv4.opt"
|
||||
if test x$enable_threads = xyes; then
|
||||
thread_file='posix'
|
||||
|
|
|
@ -28,6 +28,9 @@ SHLIB_OBJS = @shlib_objs@
|
|||
SHLIB_DIR = @multilib_dir@
|
||||
SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
|
||||
SHLIB_LC = -lc
|
||||
SHLIB_MAKE_SOLINK = $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
|
||||
SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \
|
||||
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
|
||||
|
||||
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
||||
-Wl,--soname=$(SHLIB_SONAME) \
|
||||
|
@ -40,7 +43,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
|||
$(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
|
||||
else true; fi && \
|
||||
mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
|
||||
$(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
|
||||
$(SHLIB_MAKE_SOLINK)
|
||||
# $(slibdir) double quoted to protect it from expansion while building
|
||||
# libgcc.mk. We want this delayed until actual install time.
|
||||
SHLIB_INSTALL = \
|
||||
|
@ -48,7 +51,6 @@ SHLIB_INSTALL = \
|
|||
$(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \
|
||||
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
|
||||
rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
|
||||
$(LN_S) $(SHLIB_SONAME) \
|
||||
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
|
||||
$(SHLIB_INSTALL_SOLINK)
|
||||
SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
|
||||
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
# Copyright (C) 2009 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GCC.
|
||||
#
|
||||
# GCC is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# GCC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GCC; see the file COPYING3. If not see
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Instead of creating $(SHLIB_SOLINK) symlink create a GNU ld
|
||||
# linker script which sources in both $(SHLIB_SONAME) and libgcc.a.
|
||||
# This is needed on targets where libgcc.a contains routines that aren't in
|
||||
# $(SHLIB_SONAME) and are needed for shared libraries.
|
||||
|
||||
SHLIB_MAKE_SOLINK = \
|
||||
(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_SOLINK = \
|
||||
$(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SOLINK) \
|
||||
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
|
Loading…
Reference in New Issue