This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] PR ld/20436: Skip LTO tests for --disable-plugin
- From: "H.J. Lu" <hongjiu dot lu at intel dot com>
- To: binutils at sourceware dot org
- Date: Mon, 8 Aug 2016 12:28:31 -0700
- Subject: [PATCH] PR ld/20436: Skip LTO tests for --disable-plugin
- Authentication-results: sourceware.org; auth=none
- Reply-to: "H.J. Lu" <hjl dot tools at gmail dot com>
Don't run LTO tests if compiler is configured with --disable-plugin.
Tested with GCC configured with and without --disable-plugin. OK
for master?
H.J.
--
PR ld/20436
* testsuite/lib/ld-lib.exp (check_gcc_plugin_disabled): New
proc.
(check_lto_available): Return 0 if check_gcc_plugin_disabled
returns 1.
(check_lto_fat_available): Likewise.
(check_lto_shared_available): Likewise.
---
ld/testsuite/lib/ld-lib.exp | 28 +++++++++++++++++++++++++---
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index cd9e930..3c27ca7 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -1808,13 +1808,35 @@ proc check_sysroot_available { } {
return $ld_sysroot_available_saved
}
+# Returns 1 if plugin is disabled in gcc. Returns 0 otherwise.
+proc check_gcc_plugin_disabled { } {
+ 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 1;
+ }
+ }
+
+ return 0;
+}
+
# 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 { [which $CC] == 0 || [ check_gcc_plugin_disabled ] } {
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 { [which $CC] == 0 || [ check_gcc_plugin_disabled ] } {
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 { [which $CC] == 0 || [ check_gcc_plugin_disabled ] } {
set lto_shared_available_saved 0
return 0
}
--
2.7.4