# Expect script for common symbol tests
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2020 Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
#
return 0
}
- if { ![ld_simple_link $ld tmpdir/sort-common.dx "--sort-common=descending tmpdir/sort-common.o"] } {
- fail "$test"
+ if { ![ld_link $ld tmpdir/sort-common.dx "--sort-common=descending tmpdir/sort-common.o"] } {
+ fail "$test (could not link)"
return 0
}
# section and large commons in a .bss section.
if { ![regexp ".*var_16.*var_8.*var_4.*var_2.*var_1.*" $exec_output]
&& ![regexp ".*sbss.*var_8.*var_4.*var_2.*var_1.*bss.*var_16.*" $exec_output] } {
- fail $test
+ fail "$test (variables in wrong order)"
} else {
pass $test
}
verbose "Check to see that --sort-common=ascending sorts in ascending alignment"
- if { ![ld_simple_link $ld tmpdir/sort-common.ax "--sort-common=ascending tmpdir/sort-common.o"] } {
- fail "$test"
+ if { ![ld_link $ld tmpdir/sort-common.ax "--sort-common=ascending tmpdir/sort-common.o"] } {
+ fail "$test (could not link)"
return 0
}
set exec_output [run_host_cmd "$objdump" "--syms tmpdir/sort-common.ax | grep var | sort"]
if {![regexp ".*var_1.*var_2.*var_4.*var_8.*var_16.*" $exec_output]} {
- fail $test
+ fail "$test (variables in wrong order)"
return 0
}
test_sort_common
-set test1 "size/aligment change of common symbols"
+set test1 "size/alignment change of common symbols"
set test1w1 "$test1 (warning 1)"
set test1w2 "$test1 (warning 2)"
set test1c1 "$test1 (change 1)"
set test1c2 "$test1 (change 2)"
-if { ![is_remote host] && [which $CC] == 0 } {
+if { ![check_compiler_available] } {
untested $test1w1
untested $test1w2
untested $test1c1
set options "$options tmpdir/common1c.o"
- if { ! [ld_simple_link $ld tmpdir/common.exe $options] } {
+ if { ! [ld_link $ld tmpdir/common.exe $options] } {
unresolved $testname
return 0
}
return
}
-global ld
-global link_output
-
set options "-r tmpdir/common1a.o tmpdir/common1b.o"
-# SH64 targets needs an extra ld option for this test.
-if [istarget sh64*-*-*] {
- if [istarget sh64*l*-*-*] {
- set options "-mshlelf32 $options"
- } else {
- set options "-mshelf32 $options"
- }
-}
-
-if { [ld_simple_link $ld tmpdir/common1.o $options] } {
+if { [ld_link $ld tmpdir/common1.o $options] } {
unresolved $test1w1
return
}
# This test fails on MIPS because the backend sets type_change_ok.
# The size change warning is suppressed. Same on hppa64.
if {[istarget mips*-*-*] || [istarget hppa*64*-*-*]} {
- if { ![regexp "Warning: alignment (\[0-9\]+) of symbol \`_?foo1\' in tmpdir/common1b.o is smaller than 64 in tmpdir/common1a.o" $link_output] } {
+ if { ![regexp "warning: alignment (\[0-9\]+) of symbol \`_?foo1\' in tmpdir/common1b.o is smaller than 64 in tmpdir/common1a.o" $link_output] } {
fail $test1w1
} else {
pass $test1w1
}
} else {
- if { ![regexp "Warning: alignment (\[0-9\]+) of symbol \`_?foo1\' in tmpdir/common1b.o is smaller than 64 in tmpdir/common1a.o" $link_output]
- || ![regexp "Warning: size of symbol \`_?foo1\' changed from 2 in tmpdir/common1a.o to 21 in tmpdir/common1b.o" $link_output] } {
+ if { ![regexp "warning: alignment (\[0-9\]+) of symbol \`_?foo1\' in tmpdir/common1b.o is smaller than 64 in tmpdir/common1a.o" $link_output]
+ || ![regexp "warning: size of symbol \`_?foo1\' changed from 2 in tmpdir/common1a.o to 21 in tmpdir/common1b.o" $link_output] } {
fail $test1w1
} else {
pass $test1w1
set options "-r tmpdir/common1b.o tmpdir/common1a.o"
-# SH64 targets needs an extra ld option for this test.
-if [istarget sh64*-*-*] {
- if [istarget sh64*l*-*-*] {
- set options "-mshlelf32 $options"
- } else {
- set options "-mshelf32 $options"
- }
-}
-
-if { [ld_simple_link $ld tmpdir/common1.o $options] } {
+if { [ld_link $ld tmpdir/common1.o $options] } {
unresolved $test1w2
return
}
-if { ![regexp "Warning: alignment (\[0-9\]+) of symbol \`_?foo1\' in tmpdir/common1b.o is smaller than 64 in tmpdir/common1a.o" $link_output] } {
+if { ![regexp "warning: alignment (\[0-9\]+) of symbol \`_?foo1\' in tmpdir/common1b.o is smaller than 64 in tmpdir/common1a.o" $link_output] } {
fail $test1w2
} else {
pass $test1w2