* ld-scripts/weak.exp: New test.

* ld-scripts/weak.t: New file.
	* ld-scripts/weak1.s: New file.
	* ld-scripts/weak2.s: New file.
This commit is contained in:
Ian Lance Taylor 1998-06-19 21:13:57 +00:00
parent ae49bab676
commit 0d61eedd67
5 changed files with 89 additions and 0 deletions

View File

@ -42,6 +42,10 @@ scriptm.t
sizeof.exp
sizeof.s
sizeof.t
weak.exp
weak.t
weak1.s
weak2.s
Things-to-lose:

View File

@ -0,0 +1,56 @@
# Test weak symbols.
# By Ian Lance Taylor, Cygnus Solutions.
set testname "weak symbols"
# This test only works for ELF targets. It ought to work for some
# a.out targets, but it doesn't.
if { ![istarget *-*-sysv4*] \
&& ![istarget *-*-unixware*] \
&& ![istarget *-*-elf*] \
&& ![istarget *-*-linux*] \
&& ![istarget *-*-irix5*] \
&& ![istarget *-*-irix6*] \
&& ![istarget *-*-solaris2*] } then {
return
}
if { [istarget *-*-linuxaout*] \
|| [istarget *-*-linuxoldld*] } {
return
}
if {! [ld_assemble $as $srcdir/$subdir/weak1.s tmpdir/weak1.o]
|| ! [ld_assemble $as $srcdir/$subdir/weak2.s tmpdir/weak2.o]} then {
# It's OK if .weak doesn't work on this target.
unresolved $testname
return
}
set weak_regexp_big \
".*Contents of section .text:.*1000 00001008 0000200c 12121212 34343434.*Contents of section .data:.*2000 00001008 0000200c 56565656 78787878.*"
set weak_regexp_little \
".*Contents of section .text:.*1000 08100000 0c200000 12121212 34343434.*Contents of section .data:.*2000 08100000 0c200000 56565656 78787878.*"
if {! [ld_simple_link $ld tmpdir/weak "-T $srcdir/$subdir/weak.t tmpdir/weak1.o tmpdir/weak2.o"] } then {
fail $testname
} else {
if {[which $objdump] == 0} then {
unresolved $testname
return
}
verbose -log "$objdump -s tmpdir/weak"
catch "exec $objdump -s tmpdir/weak" exec_output
set exec_output [prune_warnings $exec_output]
verbose -log $exec_output
if {[regexp $weak_regexp_big $exec_output] \
|| [regexp $weak_regexp_little $exec_output] } then {
pass $testname
} else {
fail $testname
}
}

View File

@ -0,0 +1,9 @@
SECTIONS
{
.text 0x1000 : {
tmpdir/weak1.o(*)
}
.data 0x2000 : {
tmpdir/weak2.o(*)
}
}

View File

@ -0,0 +1,10 @@
.global foo1
.global sym1
.weak sym2
foo1:
.long sym1
.long sym2
sym1:
.long 0x12121212
sym2:
.long 0x34343434

View File

@ -0,0 +1,10 @@
.global foo2
.weak sym1
.global sym2
foo2:
.long sym1
.long sym2
sym1:
.long 0x56565656
sym2:
.long 0x78787878