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.

Reply via email to