[PATCH] [MIPS] LD/testsuite: Skip 32bit test if ld not support.
ld/ChangeLog: * testsuite/ld-mips-elf/mips-elf-flags.exp (check_ld_support_32bit, check_is_32bit_args): New procedures. (good_combination, bad_combination): Skip 32bit test if ld not support 32bit emulations.
This commit is contained in:
parent
a9eafb08b3
commit
3da65cd27e
|
@ -1,3 +1,10 @@
|
||||||
|
2018-08-24 Chenghua Xu <paul.hua.gm@gmail.com>
|
||||||
|
|
||||||
|
* testsuite/ld-mips-elf/mips-elf-flags.exp
|
||||||
|
(check_ld_support_32bit, check_is_32bit_args): New procedures.
|
||||||
|
(good_combination, bad_combination): Skip 32bit test if ld
|
||||||
|
not support 32bit emulations.
|
||||||
|
|
||||||
2018-08-24 H.J. Lu <hongjiu.lu@intel.com>
|
2018-08-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* testsuite/ld-i386/i386.exp: Run pr23372c, pr23372d, pr23486c
|
* testsuite/ld-i386/i386.exp: Run pr23372c, pr23372d, pr23486c
|
||||||
|
|
|
@ -36,6 +36,32 @@ if {[istarget mips*-*-irix6*]} {
|
||||||
set ldemul ""
|
set ldemul ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Check is ld supported 32bit emulations.
|
||||||
|
proc check_ld_support_32bit { } {
|
||||||
|
global ld
|
||||||
|
global echo
|
||||||
|
|
||||||
|
set ld_output [remote_exec host $ld "-V"]
|
||||||
|
if [string match "*elf32*" $ld_output] then {
|
||||||
|
return 1
|
||||||
|
} else {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check args is 32bit abis.
|
||||||
|
proc check_is_32bit_args {arg} {
|
||||||
|
|
||||||
|
if { [string match "*-32*" $arg]
|
||||||
|
|| [string match "*-mabi=32*" $arg]
|
||||||
|
|| [string match "*-mabi=o64*" $arg]
|
||||||
|
|| [string match "*-mgp32*" $arg] } {
|
||||||
|
return 1
|
||||||
|
} else {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Assemble jr.s using each of the argument lists in ARGLIST. Return the
|
# Assemble jr.s using each of the argument lists in ARGLIST. Return the
|
||||||
# list of object files on success and an empty list on failure.
|
# list of object files on success and an empty list on failure.
|
||||||
proc assemble_for_flags {arglist} {
|
proc assemble_for_flags {arglist} {
|
||||||
|
@ -70,6 +96,13 @@ proc good_combination {arglist flags args} {
|
||||||
set testname "MIPS compatible objects: $arglist"
|
set testname "MIPS compatible objects: $arglist"
|
||||||
set objs [assemble_for_flags $arglist]
|
set objs [assemble_for_flags $arglist]
|
||||||
|
|
||||||
|
foreach argsl $arglist {
|
||||||
|
if { [check_is_32bit_args $argsl] && ![check_ld_support_32bit] } {
|
||||||
|
unsupported $testname
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if {$objs == ""} {
|
if {$objs == ""} {
|
||||||
unresolved $testname
|
unresolved $testname
|
||||||
} elseif {![ld_link "$ld $ldemul" $finalobj "-r $objs"]} {
|
} elseif {![ld_link "$ld $ldemul" $finalobj "-r $objs"]} {
|
||||||
|
@ -156,6 +189,13 @@ proc bad_combination {arglist message} {
|
||||||
set testname "MIPS incompatible objects: $arglist"
|
set testname "MIPS incompatible objects: $arglist"
|
||||||
set objs [assemble_for_flags $arglist]
|
set objs [assemble_for_flags $arglist]
|
||||||
|
|
||||||
|
foreach argsl $arglist {
|
||||||
|
if { [check_is_32bit_args $argsl] && ![check_ld_support_32bit] } {
|
||||||
|
unsupported $testname
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if {$objs == ""} {
|
if {$objs == ""} {
|
||||||
unresolved $testname
|
unresolved $testname
|
||||||
} elseif {[ld_link "$ld $ldemul" $finalobj "-r $objs"]
|
} elseif {[ld_link "$ld $ldemul" $finalobj "-r $objs"]
|
||||||
|
|
Loading…
Reference in New Issue