binary-comparison workaround for Darwin

Geoffrey Keating gkeating@apple.com
Sat Apr 2 09:47:00 GMT 2005


This works around the bug that causes comparison of libgcc/*.o to fail
in a bootstrap on Darwin, as described in
<http://gcc.gnu.org/ml/gcc-patches/2005-04/msg00145.html>.

(I won't commit the patch in that message until at least Tuesday,
maybe even later if I get a report that it would break a platform.)

Bootstrapped & tested on powerpc-darwin8.

-- 
- Geoffrey Keating <geoffk@apple.com>

===File ~/patches/gcc-4077127workaround.patch===============
2005-04-02  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
	* config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.

Index: config/t-darwin
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/t-darwin,v
retrieving revision 1.8
diff -u -p -u -p -r1.8 t-darwin
--- config/t-darwin	16 Sep 2004 06:49:58 -0000	1.8
+++ config/t-darwin	2 Apr 2005 09:40:30 -0000
@@ -22,4 +22,8 @@ LIB2ADDEH = $(srcdir)/unwind-dw2.c $(src
   $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
 LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
 
-TARGET_LIBGCC2_CFLAGS = -fPIC
+# -pipe because there's an assembler bug, 4077127, which causes
+# it to not properly process the first # directive, causing temporary
+# file names to appear in stabs, causing the bootstrap to fail.  Using -pipe
+# works around this by not having any temporary file names.
+TARGET_LIBGCC2_CFLAGS = -fPIC -pipe
Index: config/rs6000/t-darwin
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/t-darwin,v
retrieving revision 1.17
diff -u -p -u -p -r1.17 t-darwin
--- config/rs6000/t-darwin	9 Dec 2004 18:25:13 -0000	1.17
+++ config/rs6000/t-darwin	2 Apr 2005 09:40:30 -0000
@@ -9,7 +9,12 @@ LIB2FUNCS_STATIC_EXTRA = \
 # The .asm files above are designed to run on all processors,
 # even though they use AltiVec instructions.  -Wa is used because
 # -force_cpusubtype_ALL doesn't work with -dynamiclib.
-TARGET_LIBGCC2_CFLAGS = -Wa,-force_cpusubtype_ALL
+#
+# -pipe because there's an assembler bug, 4077127, which causes
+# it to not properly process the first # directive, causing temporary
+# file names to appear in stabs, causing the bootstrap to fail.  Using -pipe
+# works around this by not having any temporary file names.
+TARGET_LIBGCC2_CFLAGS = -Wa,-force_cpusubtype_ALL -pipe
 
 # Export the _xlq* symbols from darwin-ldouble.c.
 SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ppc64.ver
============================================================



More information about the Gcc-patches mailing list