Skip LTO tests for --disable-plugin
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 9 Aug 2016 23:41:12 +0000 (16:41 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 9 Aug 2016 23:41:29 +0000 (16:41 -0700)
Don't run LTO tests if compiler is configured with --disable-plugin.

PR ld/20436
* testsuite/lib/ld-lib.exp (check_gcc_plugin_enabled): New
proc.
(check_lto_available): Return 0 if check_gcc_plugin_enabled
returns 0.
(check_lto_fat_available): Likewise.
(check_lto_shared_available): Likewise.

ld/ChangeLog
ld/testsuite/lib/ld-lib.exp

index e3ca95336baacee223ac9397a83dc6d9ea0df94e..cc7d91587079ad2d8596658dc14c159faff0cb29 100644 (file)
@@ -1,3 +1,13 @@
+2016-08-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/20436
+       * testsuite/lib/ld-lib.exp (check_gcc_plugin_enabled): New
+       proc.
+       (check_lto_available): Return 0 if check_gcc_plugin_enabled
+       returns 0.
+       (check_lto_fat_available): Likewise.
+       (check_lto_shared_available): Likewise.
+
 2016-08-09  Roland McGrath  <roland@hack.frob.com>
 
        * emulparams/armelf.sh (GENERATE_PIE_SCRIPT): Set to yes.
index cd9e930cab9a637fa402730659ba7a86dc99a735..b3cdb70a388e70c1f4f1c3c51a31cec1ec149163 100644 (file)
@@ -1808,13 +1808,35 @@ proc check_sysroot_available { } {
     return $ld_sysroot_available_saved
 }
 
+# Returns 1 if plugin is enabled in gcc.  Returns 0 otherwise.
+proc check_gcc_plugin_enabled { } {
+    global CC
+
+    if {![info exists CC]} {
+       set CC [find_gcc]
+    }
+    if { $CC == "" } {
+      return 0
+    }
+    set state [remote_exec host $CC -v]
+    for { set i 0 } { $i < [llength $state] } { incr i } {
+       set v [lindex $state $i]
+       if { [ string match "*--disable-plugin*" $v ] } {
+           verbose "plugin is disabled by $v"
+           return 0;
+       }
+    }
+
+    return 1;
+}
+
 # Returns true if the target compiler supports LTO
 proc check_lto_available { } {
     global lto_available_saved
     global CC
 
     if {![info exists lto_available_saved]} {
-        if { [which $CC] == 0 } {
+        if { ![check_gcc_plugin_enabled] } {
            set lto_available_saved 0
            return 0
        }
@@ -1857,7 +1879,7 @@ proc check_lto_fat_available { } {
     global CC
 
     if {![info exists lto_fat_available_saved]} {
-        if { [which $CC] == 0 } {
+        if { ![check_gcc_plugin_enabled] } {
            set lto_fat_available_saved 0
            return 0
        }
@@ -1900,7 +1922,7 @@ proc check_lto_shared_available { } {
     global CC
 
     if {![info exists lto_shared_available_saved]} {
-        if { [which $CC] == 0 } {
+        if { ![check_gcc_plugin_enabled] } {
            set lto_shared_available_saved 0
            return 0
        }