------- Comment #12 from steven at gcc dot gnu dot org 2010-04-27 20:25 ------- Created an attachment (id=20500) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20500&action=view) proof-of-concept patch
This doesn't even include a Mach-O writer yet (except for the to be rewritten COFF writer ;-) but this already makes LTO work for most of the test suite. For lto.exp, C only: Test Run By stevenb on Tue Apr 27 16:20:21 2010 Native configuration is x86_64-apple-darwin10.3.0 === gcc tests === Schedule of variations: unix Running target unix Using /sw/share/dejagnu/baseboards/unix.exp as board description file for target. Using /sw/share/dejagnu/config/unix.exp as generic interface file for target. Using /Users/stevenb/gcc_trunk/gcc/testsuite/config/default.exp as tool-and-target-specific interface file. Running /Users/stevenb/gcc_trunk/gcc/testsuite/gcc.dg/lto/lto.exp ... FAIL: gcc.dg/lto/20081201-2 c_lto_20081201-2_0.o-c_lto_20081201-2_1.o execute -O3 -fwhopr FAIL: gcc.dg/lto/20081222 c_lto_20081222_1.o assemble, -O0 -fwhopr FAIL: gcc.dg/lto/20081222 c_lto_20081222_1.o assemble, -O2 -fwhopr FAIL: gcc.dg/lto/20081222 c_lto_20081222_1.o assemble, -O0 -flto FAIL: gcc.dg/lto/20081222 c_lto_20081222_1.o assemble, -O2 -flto FAIL: gcc.dg/lto/20090914-2 c_lto_20090914-2_0.o assemble, -O0 -fwhopr FAIL: gcc.dg/lto/20090914-2 c_lto_20090914-2_0.o assemble, -O2 -fwhopr FAIL: gcc.dg/lto/20090914-2 c_lto_20090914-2_0.o assemble, -O0 -flto FAIL: gcc.dg/lto/20090914-2 c_lto_20090914-2_0.o assemble, -O2 -flto FAIL: gcc.dg/lto/20091216-1 c_lto_20091216-1_0.o-c_lto_20091216-1_0.o link FAIL: gcc.dg/lto/20091216-1 c_lto_20091216-1_0.o-c_lto_20091216-1_0.o link FAIL: gcc.dg/lto/20091216-1 c_lto_20091216-1_0.o-c_lto_20091216-1_0.o link FAIL: gcc.dg/lto/20091216-1 c_lto_20091216-1_0.o-c_lto_20091216-1_0.o link FAIL: gcc.dg/lto/20100423-2 c_lto_20100423-2_0.o-c_lto_20100423-2_1.o link FAIL: gcc.dg/lto/20100423-2 c_lto_20100423-2_0.o-c_lto_20100423-2_1.o link FAIL: gcc.dg/lto/20100423-2 c_lto_20100423-2_0.o-c_lto_20100423-2_1.o link FAIL: gcc.dg/lto/20100423-2 c_lto_20100423-2_0.o-c_lto_20100423-2_1.o link === gcc Summary === # of expected passes 479 # of unexpected failures 17 # of unresolved testcases 24 # of unsupported tests 2 /Users/stevenb/lto_objdir/gcc/xgcc version 4.6.0 20100427 (experimental) [trunk revision 158800] (GCC) There's still work to be done: 1) Try with other languages 2) Make it with with checking enabled (shouldn't make a difference) 3) Produce distinct error message per failure mode 4) Implement the writer n) ... fix whatever needs fixing ... I plan to go through the list as time permits. Help welcome (as are patches). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43729