Fix ld action in run_dump_test

run_dump_test proposes an ld action but when trying to make use of it in
a gas test it gave me some Tcl error. It turns out that it references
the check_shared_lib_support procedure and ld_elf_shared_opt variable
both only available in ld-lib.exp. I've thus moved the procedure in
binutils-common.exp and defined the variable needed in the various
default.exp of testsuite that seem to be using run_dump_test.

Since check_shared_lib_support itself references the ld variable not
defined in binutils-common I've defined it from LD in run_dump_test and
fixed LD and LDFLAGS to be defined as expected by run_dump_test in the
various default.exp of testsuite using run_dump_test.

2018-11-01  Thomas Preud'homme  <thomas.preudhomme@linaro.org>

binutils/
	* testsuite/config/default.exp: Define LD, LDFLAGS and
	ld_elf_shared_opt.
	* testsuite/lib/binutils-common.exp (check_shared_lib_support): Moved
	from ld-lib.exp.
	(run_dump_test): Set ld to $LD.

gas/
	* testsuite/config/default.exp: Define LD, LDFLAGS and
	ld_elf_shared_opt.

ld/
	* testsuite/lib/ld-lib.exp (check_shared_lib_support): Moved to
	binutils-common.exp.
This commit is contained in:
Thomas Preud'homme
2018-11-01 17:18:24 +00:00
parent cdcda965ea
commit 33ea299c25
7 changed files with 53 additions and 17 deletions

View File

@ -248,6 +248,23 @@ proc is_bad_symtab {} {
return 0;
}
# Returns true if -shared is supported on the target
proc check_shared_lib_support { } {
global shared_available_saved
global ld
if {![info exists shared_available_saved]} {
set ld_output [remote_exec host $ld "-shared"]
if { [ string first "not supported" $ld_output ] >= 0 } {
set shared_available_saved 0
} else {
set shared_available_saved 1
}
}
return $shared_available_saved
}
# Compare two files line-by-line. FILE_1 is the actual output and FILE_2
# is the expected output. Ignore blank lines in either file.
#
@ -1002,6 +1019,8 @@ proc run_dump_test { name {extra_options {}} } {
catch "exec rm -f $objfile" exec_output
set ld_extra_opt ""
global ld
set ld "$LD"
if { [is_elf_format] && [check_shared_lib_support] } {
set ld_extra_opt "$ld_elf_shared_opt"
}