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

Reply via email to