Skip LTO tests for --disable-plugin

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.
This commit is contained in:
H.J. Lu 2016-08-09 16:41:12 -07:00
parent 3eb7562a98
commit 5ff559107a
2 changed files with 35 additions and 3 deletions

View 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.

View 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
}