Diego Novillo <dnovi...@google.com> writes: > In preparation for the final merge into mainline. I need to test > the branch on various platforms. Richi is currently testing on > i586, ppc, ppc64, ia64, s390, s390x. > > If anyone has free cycles I would appreciate results from other > ELF-capable targets.
I've run those for sparc-sun-solaris2.11, i386-pc-solaris2.10 and mips-sgi-irix6.5. Details below. > $ svn co svn://gcc.gnu.org/svn/gcc/branches/lto > $ mkdir bld && cd bld > $ ../lto/configure --enable-lto && make Why just a make and no make bootstrap? This is also on the LTO wiki page, which btw. is confusing since it states `Last updated: 07-Jul-2009'. For all my tests, I've just run regular bootstraps. > You will need to have libelf 0.8.12 installed > (http://www.mr511.de/software/libelf-0.8.12.tar.gz) libelf 0.8.12 builds without problems on Solaris 10 and 11, but fails out of the box on IRIX 6.5. I've contacted the maintainer about this, and he suggested configuring with $ ac_cv_header_elf_h=no ac_cv_header_sys_elf_h=no ./configure as a hack. This works for now, until I ran into PR lto/40790 which is still unfixed. I stopped here, but it should be possible to use GCC_HEADER_STDINT to work around this. I've posted testsuite results for sparc-sun-solaris2.11 to http://gcc.gnu.org/ml/gcc-testresults/2009-09/msg02772.html and compared them with mainline results as of 20090922. Ada is missing here, since I had to use a non-Ada enabled bootstrap compiler due to PR bootstrap/39020. @@ -20,13 +15,19 @@ === g++ Summary for unix === [...] Running target unix/-m64 +FAIL: tmpdir-g++.dg-struct-layout-1/t003 cp_compat_x_tst.o-cp_compat_y_tst.o execute "-O2","-fwhopr" +FAIL: tmpdir-g++.dg-struct-layout-1/t003 cp_compat_x_tst.o-cp_compat_y_tst.o execute "-O2","-flto" +FAIL: tmpdir-g++.dg-struct-layout-1/t019 cp_compat_x_tst.o-cp_compat_y_tst.o execute "-O2","-fwhopr" +FAIL: tmpdir-g++.dg-struct-layout-1/t019 cp_compat_x_tst.o-cp_compat_y_tst.o execute "-O2","-flto" +FAIL: tmpdir-g++.dg-struct-layout-1/t030 cp_compat_x_tst.o-cp_compat_y_tst.o execute "-O2","-fwhopr" +FAIL: tmpdir-g++.dg-struct-layout-1/t030 cp_compat_x_tst.o-cp_compat_y_tst.o execute "-O2","-flto" There's no indication in the logs why those fail, the 32-bit tests are fine. === gcc tests === [...] @@ -64,18 +65,22 @@ FAIL: gcc.c-torture/compile/pr38789.c -O3 -fomit-frame-pointer (test for excess errors) FAIL: gcc.c-torture/compile/pr38789.c -O3 -g (test for excess errors) FAIL: gcc.c-torture/compile/pr38789.c -Os (test for excess errors) +FAIL: gcc.c-torture/compile/pr38789.c -O2 -flto (test for excess errors) +FAIL: gcc.c-torture/compile/pr38789.c -O2 -fwhopr (test for excess errors) The test fails without -flto/-fwhopr as well: Sun as cannot cope with the input. I've filed PR testsuite/41522 for that. FAIL: gcc.c-torture/execute/pr38819.c execution, -O2 FAIL: gcc.c-torture/execute/pr38819.c execution, -O3 -fomit-frame-pointer FAIL: gcc.c-torture/execute/pr38819.c execution, -O3 -fomit-frame-pointer -funroll-loops FAIL: gcc.c-torture/execute/pr38819.c execution, -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions FAIL: gcc.c-torture/execute/pr38819.c execution, -O3 -g +FAIL: gcc.c-torture/execute/pr38819.c execution, -O2 -flto +FAIL: gcc.c-torture/execute/pr38819.c execution, -O2 -fwhopr Similarly here: already fails without -flto. +FAIL: gcc.dg/lto/20081120-1 c_lto_20081120-1_0.o-c_lto_20081120-1_1.o link +UNRESOLVED: gcc.dg/lto/20081120-1 c_lto_20081120-1_0.o-c_lto_20081120-1_1.o execute -flto -shared This fails like this: output is: Text relocation remains referenced against symbol offset in file stat64 0x4 c_lto_20081120-1_0.o stat64 0x4 c_lto_20081120-1_1.o ld: fatal: relocations remain against allocatable but non-writable sections collect2: ld returned 1 exit status FAIL: gcc.dg/lto/20081120-1 c_lto_20081120-1_0.o-c_lto_20081120-1_1.o link It seems like -flto -shared doesn't create PIC code here for some reason. +FAIL: gcc.dg/lto/20081201-2 c_lto_20081201-2_0.o-c_lto_20081201-2_1.o execute -O3 -fwhopr No hint why this fails. +FAIL: gcc.dg/lto/20090729 c_lto_20090729_0.o-c_lto_20090729_1.o link +UNRESOLVED: gcc.dg/lto/20090729 c_lto_20090729_0.o-c_lto_20090729_1.o execute -w output is: ld: warning: symbol `i' has differing sizes: (file c_lto_20090729_0.o value=0x8; file c_lto_20090729_1.o value=0x4); c_lto_20090729_0.o definition taken ld: warning: symbol `j' has differing sizes: (file c_lto_20090729_0.o value=0x4; file c_lto_20090729_1.o value=0x8); c_lto_20090729_1.o definition taken This seems like it cannot work. FAIL: gcc.dg/torture/pr26565.c -O1 execution test FAIL: gcc.dg/torture/pr26565.c -O2 execution test FAIL: gcc.dg/torture/pr26565.c -Os execution test +FAIL: gcc.dg/torture/pr26565.c -O2 -flto execution test +FAIL: gcc.dg/torture/pr26565.c -O2 -fwhopr execution test No hint why this fails, but does so already without -flto. gcc/-m64: I won't repeat the 32-bit failures from above. FAIL: gcc.c-torture/execute/ipa-sra-2.c execution, -O3 -fomit-frame-pointer FAIL: gcc.c-torture/execute/ipa-sra-2.c execution, -O3 -g FAIL: gcc.c-torture/execute/ipa-sra-2.c execution, -Os +FAIL: gcc.c-torture/execute/ipa-sra-2.c execution, -O2 -flto +FAIL: gcc.c-torture/execute/ipa-sra-2.c execution, -O2 -fwhopr Again: fails already without -flto. === gfortran tests === Several tests are run here without any optimization options, but already failed before. This is confusing, but I won't note this further on. FAIL: gfortran.dg/default_format_2.f90 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions execution test FAIL: gfortran.dg/default_format_2.f90 -O3 -g execution test FAIL: gfortran.dg/default_format_2.f90 -Os execution test +FAIL: gfortran.dg/default_format_2.f90 execution test === objc tests === FAIL: objc/execute/forward-1.m execution, -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions -fgnu-runtime FAIL: objc/execute/forward-1.m execution, -O3 -g -fgnu-runtime FAIL: objc/execute/forward-1.m execution, -Os -fgnu-runtime +FAIL: objc/execute/forward-1.m execution, Same issue as with gfortran above. libstdc++: Tons of new failures, all seem to be linker errors: Running target unix +FAIL: 20_util/shared_ptr/cons/alloc.cc (test for excess errors) FAIL: 20_util/shared_ptr/cons/alloc.cc (test for excess errors) Excess errors: ld: warning: relocation error: R_SPARC_UA32: file ./libtestc++.a(testsuite_allocator.o): symbol std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> (std::basic_ostream<char, std::char_traits<char> >&): external symbolic relocation against non-allocatable section .debug_loc; cannot be processed at runtime: relocation ignored I haven't yet stared investigating if this is a problem in the generated code or the Sun assembler used. -Compiler version: 4.5.0 20090922 (experimental) [trunk revision 152032] (GCC) +Compiler version: 4.5.0 20090928 (experimental) [lto revision 152243] (lto merged with rev 152236) Platform: sparc-sun-solaris2.11 -configure flags: --prefix=/vol/gcc --with-local-prefix=/vol/gcc --disable-nls --with-gmp=/vol/gcc --with-mpfr=/vol/gcc --enable-languages=c,c++,fortran,java,objc,ada --disable-libmudflap +configure flags: CC='/vol/gcc/obj/gcc-4.5.0-20090922/11-gcc/gcc/xgcc -B/vol/gcc/obj/gcc-4.5.0-20090922/11-gcc/gcc/' --prefix=/vol/gcc --with-local-prefix=/vol/gcc --disable-nls --with-gmp=/vol/gcc --with-mpfr=/vol/gcc --enable-lto --with-libelf=/vol/gcc BOOT_CFLAGS=-g -O2 EOF -Mail -s "Results for 4.5.0 20090922 (experimental) [trunk revision 152032] (GCC) testsuite on sparc-sun-solaris2.11" gcc-testresu...@gcc.gnu.org && +Mail -s "Results for 4.5.0 20090928 (experimental) [lto revision 152243] (lto merged with rev 152236) testsuite on sparc-sun-solaris2.11" gcc-testresu...@gcc.gnu.org && true The situation on i386-pc-solaris2.10 is much worse, though: mail-report.log is > 500 kB and rejected by the gcc.gnu.org mailserver. I'll have to analyze this separately and post results when I'm done. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University