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 i686-linux --enable-targets=all


Right now all tests fail if you build an i686-linux compiler with
--enable-targets=all and test the -m64 multilib, while using bleeding
edge binutils.  This was already fixed for x86_64, but different
arrangement of t-* fragments means that the fix didn't cover
i686-linux.

Is this OK?  I have not been able to get my build server to bootstrap
an --enable-targets=all compiler due to the different way Debian /
Ubuntu handle multiple architecture support, but I did build 64-bit
libgcc and verify that crtend.o no longer has a zero terminator
followed by some unwind information.

-- 
Daniel Jacobowitz
CodeSourcery

2007-08-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Add
	-fno-asynchronous-unwind-tables.
	* config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Remove.
	* gcc/config.gcc (x86_64-*-linux*): Use i386/t-crtstuff.

Index: gcc/config/i386/t-crtstuff
===================================================================
--- gcc/config/i386/t-crtstuff	(revision 127159)
+++ gcc/config/i386/t-crtstuff	(working copy)
@@ -1,2 +1,5 @@
 # The pushl in CTOR initialization interferes with frame pointer elimination.
-CRTSTUFF_T_CFLAGS = -fno-omit-frame-pointer
+# crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables,
+# because then __FRAME_END__ might not be the last thing in .eh_frame
+# section.
+CRTSTUFF_T_CFLAGS = -fno-omit-frame-pointer -fno-asynchronous-unwind-tables
Index: gcc/config/i386/t-linux64
===================================================================
--- gcc/config/i386/t-linux64	(revision 127159)
+++ gcc/config/i386/t-linux64	(working copy)
@@ -17,9 +17,3 @@ EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o
 
 softfp_wrap_start := '\#ifdef __x86_64__'
 softfp_wrap_end := '\#endif'
-
-# The pushl in CTOR initialization interferes with frame pointer elimination.
-# crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables,
-# because then __FRAME_END__ might not be the last thing in .eh_frame
-# section.
-CRTSTUFF_T_CFLAGS = -fno-omit-frame-pointer -fno-asynchronous-unwind-tables
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(revision 127159)
+++ gcc/config.gcc	(working copy)
@@ -1166,7 +1166,7 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu
 	x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h" ;;
 	x86_64-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h" ;;
 	esac
-	tmake_file="${tmake_file} i386/t-linux64 i386/t-crtpc i386/t-crtfm i386/t-fprules-softfp64 soft-fp/t-softfp t-dfprules"
+	tmake_file="${tmake_file} i386/t-linux64 i386/t-crtstuff i386/t-crtpc i386/t-crtfm i386/t-fprules-softfp64 soft-fp/t-softfp t-dfprules"
 	;;
 i[34567]86-*-gnu*)
 	;;


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