backport: [multiple changes]
2010-01-04 Mikael Pettersson <mikpe@it.uu.se> PR target/42503 Backport from mainline: 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. 2009-10-19 Matthias Klose <doko@ubuntu.com> PR target/40134 * config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc. From-SVN: r155617
This commit is contained in:
parent
deca952548
commit
7188391371
|
@ -1,3 +1,21 @@
|
|||
2010-01-04 Mikael Pettersson <mikpe@it.uu.se>
|
||||
|
||||
PR target/42503
|
||||
|
||||
Backport from mainline:
|
||||
|
||||
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.
|
||||
|
||||
2009-10-19 Matthias Klose <doko@ubuntu.com>
|
||||
|
||||
PR target/40134
|
||||
* config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc.
|
||||
|
||||
2010-01-04 Ira Rosen <irar@il.ibm.com>
|
||||
|
||||
PR tree-optimization/41956
|
||||
|
|
|
@ -714,7 +714,7 @@ arm*-*-linux*) # ARM GNU/Linux with ELF
|
|||
case ${target} in
|
||||
arm*-*-linux-*eabi)
|
||||
tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
|
||||
tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
|
||||
tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
|
||||
# The BPABI long long divmod functions return a 128-bit value in
|
||||
# registers r0-r3. Correctly modeling that requires the use of
|
||||
# TImode.
|
||||
|
|
|
@ -10,6 +10,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) \
|
||||
|
@ -22,7 +25,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 = \
|
||||
|
@ -30,7 +33,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