This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
fix t-*darwin ordering issue
- From: gkeating at apple dot com (Geoffrey Keating)
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 6 Oct 2005 12:00:03 -0700 (PDT)
- Subject: fix t-*darwin ordering issue
My recent patch made the Darwin ports do the t-* files in this order:
tmake_file="t-darwin ${cpu_type}/t-darwin t-slibgcc-darwin"
The cpu t-darwin has to be before t-slibgcc-darwin because
t-slibgcc-darwin has
libgcc_s.%.dylib : $(SHLIB_VERPFX).%.ver libgcc.a
and unless SHLIB_VERPFX is defined when this is read, make won't
substitute it. (I am not sure that this is correct behaviour on the
part of make, but it is what it seems to do.)
But, t-slibgcc-darwin had
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
and the cpu t-darwin files are expecting to be able to do things like
SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ppc64.ver
with it, and if the cpu files are first then they can't append. This
caused the 128-bit long double routines to vanish from libgcc's
exports, which is Bad.
This patch fixes it by having t-slibgcc-darwin do an append too.
(This does mean that no file actually sets the variable, but I think
that's OK.)
Bootstrapped & tested on powerpc-darwin8.
--
- Geoffrey Keating <geoffk@apple.com>
===File ~/patches/gcc-4288018.patch=========================
2005-10-06 Geoffrey Keating <geoffk@apple.com>
* config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='.
Index: gcc/config/t-slibgcc-darwin
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/t-slibgcc-darwin,v
retrieving revision 1.14
diff -u -p -u -p -r1.14 t-slibgcc-darwin
--- gcc/config/t-slibgcc-darwin 30 Sep 2005 18:08:26 -0000 1.14
+++ gcc/config/t-slibgcc-darwin 6 Oct 2005 18:55:09 -0000
@@ -32,7 +32,7 @@ SHLIB_INSTALL = \
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
SHLIB_MKMAP_OPTS = -v leading_underscore=1
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
+SHLIB_MAPFILES += $(srcdir)/libgcc-std.ver
# Must use a different directive for hidden visibility in assembly sources.
ASM_HIDDEN_OP = .private_extern
============================================================