Here is a patch from our backlog at Mentor Graphics that addresses a libgomp issue where setting ENABLE_LTO=1 in site.exp causes the following error with dejagnu:
ERROR: (DejaGnu) proc "libgomp_target_compile linker_plugin9263.c linker_plugin9263.exe executable {{additional_flags=-flto -fuse-linker-plugin}}" does not exist. This problem usually does not occur since the default site.exp does not contain ENABLE_LTO=1. I tested both with and without our custom site.exp. Is it OK for trunk? If so, please check it in since I do not have commit rights. Cesar Philippidis 2013-05-30 Iain Sandoe <i...@codesourcery.com> Cesar Philippidis <ce...@codesourcery.com> libgomp/ * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order. Do not load_gcc_lib gcc-dg.exp and add a comment as to why. * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp. * testsuite/libgomp.fortran/fortran.exp: Likewise. * testsuite/libgomp.graphite/graphite.exp: Likewise. * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp. Use dg-runtest rather than gfortran-dg-runtest.
Index: libgomp/testsuite/libgomp.fortran/fortran.exp =================================================================== --- libgomp/testsuite/libgomp.fortran/fortran.exp (revision 199267) +++ libgomp/testsuite/libgomp.fortran/fortran.exp (working copy) @@ -1,4 +1,6 @@ load_lib libgomp-dg.exp +load_gcc_lib gcc-dg.exp +load_gcc_lib gfortran-dg.exp global shlib_ext global ALWAYS_CFLAGS Index: libgomp/testsuite/lib/libgomp.exp =================================================================== --- libgomp/testsuite/lib/libgomp.exp (revision 199267) +++ libgomp/testsuite/lib/libgomp.exp (working copy) @@ -9,24 +9,27 @@ } load_lib dg.exp + +# Required to use gcc-dg.exp - however, the latter should NOT be +# loaded until ${tool}_target_compile is defined since it uses that +# to determine default LTO options. + +load_gcc_lib prune.exp +load_gcc_lib target-libpath.exp +load_gcc_lib wrapper.exp +load_gcc_lib gcc-defs.exp +load_gcc_lib timeout.exp +load_gcc_lib target-supports.exp load_gcc_lib file-format.exp -load_gcc_lib target-supports.exp load_gcc_lib target-supports-dg.exp load_gcc_lib scanasm.exp load_gcc_lib scandump.exp load_gcc_lib scanrtl.exp load_gcc_lib scantree.exp load_gcc_lib scanipa.exp -load_gcc_lib prune.exp -load_gcc_lib target-libpath.exp -load_gcc_lib wrapper.exp -load_gcc_lib gcc-defs.exp +load_gcc_lib timeout-dg.exp load_gcc_lib torture-options.exp -load_gcc_lib timeout.exp -load_gcc_lib timeout-dg.exp load_gcc_lib fortran-modules.exp -load_gcc_lib gcc-dg.exp -load_gcc_lib gfortran-dg.exp set dg-do-what-default run Index: libgomp/testsuite/libgomp.c/c.exp =================================================================== --- libgomp/testsuite/libgomp.c/c.exp (revision 199267) +++ libgomp/testsuite/libgomp.c/c.exp (working copy) @@ -7,6 +7,7 @@ } load_lib libgomp-dg.exp +load_gcc_lib gcc-dg.exp # If a testcase doesn't have special options, use these. if ![info exists DEFAULT_CFLAGS] then { Index: libgomp/testsuite/libgomp.graphite/graphite.exp =================================================================== --- libgomp/testsuite/libgomp.graphite/graphite.exp (revision 199267) +++ libgomp/testsuite/libgomp.graphite/graphite.exp (working copy) @@ -23,6 +23,7 @@ } load_lib libgomp-dg.exp +load_gcc_lib gcc-dg.exp if ![check_effective_target_pthread] { return Index: libgomp/testsuite/libgomp.c++/c++.exp =================================================================== --- libgomp/testsuite/libgomp.c++/c++.exp (revision 199267) +++ libgomp/testsuite/libgomp.c++/c++.exp (working copy) @@ -1,4 +1,5 @@ load_lib libgomp-dg.exp +load_gcc_lib gcc-dg.exp global shlib_ext @@ -53,7 +54,7 @@ } # Main loop. - gfortran-dg-runtest $tests $libstdcxx_includes + dg-runtest $tests "" $libstdcxx_includes } # All done.