This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]