This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [LTO] Request for testing: Last merge from trunk before final merge
- From: Rainer Orth <ro at TechFak dot Uni-Bielefeld dot DE>
- To: Diego Novillo <dnovillo at google dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: 30 Sep 2009 19:36:33 +0200
- Subject: Re: [LTO] Request for testing: Last merge from trunk before final merge
- References: <b798aad50909280858r46f947e8ud9cb2ce1754e594@mail.gmail.com>
Diego Novillo <dnovillo@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-testresults@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-testresults@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