Test results for this patch series more or less look the way they did with the old proposed patch, and more reflect the state of binutils and GCC than that of Libtool I would say; there might be ways to work around them though, dunno yet.
1) With -flto in CC, CXX, F77, FC and LDFLAGS, I get failures of pdemo-make and almost all recursive tests in 112: cmdline_wrap.at:28 Run tests with low max_cmd_len where I'm hoping that all failures are due to LTO not working across either 'ld -r' or static libraries; but I haven't checked that. 2) With -fwhopr in CFLAGS, CXXFLAGS, FFLAGS, FCFLAGS and GCJFLAGS, I get a couple more failures: - tagdemo-*make.test - 25. duplicate_conv.at:25: 25. duplicate convenience archive names (duplicate_conv.at:25): FAILED (duplicate_conv.at:81) with excerpts below. Cheers, Ralf tagdemo-conf-make.test: /bin/sh ./libtool --tag=CXX --mode=link /opt/gcc-test/bin/g++ -fwhopr -O2 -o tagdemo main.o libbaz.la -ldl libtool: link: /opt/gcc-test/bin/g++ -fwhopr -O2 -o .libs/tagdemo main.o ./.libs/libbaz.so /tmp/build-gcc-lto3/tests/tagdemo/.libs/libfoo.so /opt/gcc-test/lib/../lib64/libstdc++.so -lm -ldl -Wl,-rpath -Wl,/tmp/build-gcc-lto3/_inst-tagdemo/lib -Wl,-rpath -Wl,/opt/gcc-test/lib/../lib64 /opt/gcc-test/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../x86_64-unknown-linux-gnu/bin/ld: main.o: in function main:main.cpp(.text+0x71): error: undefined reference to 'vtable for foobar_derived' /opt/gcc-test/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../x86_64-unknown-linux-gnu/bin/ld: main.o: in function main:main.cpp(.text+0xb8): error: undefined reference to 'vtable for barbaz_derived' collect2: ld returned 1 exit status make[5]: *** [tagdemo] Error 1 make[5]: Target `all' not remade because of errors. make[5]: Leaving directory `/tmp/build-gcc-lto3/tests/tagdemo' duplicate_conv.at: ../../libtool/tests/duplicate_conv.at:79: $LIBTOOL --mode=link --tag=CC $CC $CFLAGS $LDFLAGS -o cee.$OBJEXT c.lo a/liba.la b/liba.la stderr: stdout: libtool: link: /opt/gcc-test/x86_64-unknown-linux-gnu/bin/ld -m elf_x86_64 -r -o cee.o .libs/c.o --whole-archive a/.libs/liba.a b/.libs/liba.a --no-whole-archive ../../libtool/tests/duplicate_conv.at:81: $LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o main$EXEEXT main.$OBJEXT cee.$OBJEXT stderr: collect2: too many lto output files stdout: libtool: link: /opt/gcc-test/bin/gcc -fwhopr -O2 -o main main.o cee.o ../../libtool/tests/duplicate_conv.at:81: exit code was 1, expected 0 25. duplicate_conv.at:25: 25. duplicate convenience archive names (duplicate_conv.at:25): FAILED (duplicate_conv.at:81)