On Wed, Sep 30, 2009 at 7:36 PM, Rainer Orth <r...@techfak.uni-bielefeld.de> wrote: > 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.
Ah. We don't expect the linker to complain here - GNU ld accepts different size common sections. The testcase is reduced from broken SPEC CPU 2000 source ... If you happen to know a linker option that would silence the warning ... Richard.