http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51857
Bug #: 51857 Summary: gcc -flto ignores -B Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: driver AssignedTo: unassig...@gcc.gnu.org ReportedBy: amo...@gmail.com Extract from running binutils testsuite Executing on host: sh -c {/home/alan/build/ppc/gcc64-curr/gcc/xgcc -B/home/alan/build/ppc/bin64-fedora/ld/tmpdir/ld/ -L/usr/local/powerpc64-linux/lib64 -L/usr/local/lib64 -L/lib64 -L/usr/lib64 -L/usr/local/powerpc64-linux/lib -L/usr/local/lib -L/lib -L/usr/lib -B/home/alan/build/ppc/gcc64-curr/gcc/ -m64 -mno-save-toc-indirect -o tmpdir/lto-1.exe -L/src/binutils-fedora/ld/testsuite/ld-plugin -O2 -flto -fuse-linker-plugin tmpdir/lto-1a.o tmpdir/lto-1b.o 2>&1} /dev/null ld.tmp (timeout = 300) /usr/local/powerpc-linux/bin/ld: /home/alan/build/ppc/gcc64-curr/gcc/liblto_plugin.so: error in plugin cleanup (ignored/usr/local/powerpc-linux/bin/ld: /home/alan/build/ppc/gcc64-curr/gcc/liblto_plugin.so: error loading plugin collect2: error: ld returned 1 exit status ) Note how -B specifies tmpdir/ld dir so as to pick up the newly built ld, but ld installed to /usr/local is run. (The plugin failure is due to the /usr/local ld being a 32-bit binary while gcc and newly built ld are 64-bit.) Similar problems can occur when running gcc's own testsuite. You may not be testing what you think you're testing..