Browse Source

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

* ld-scripts/weak.t: New file.
	* ld-scripts/weak1.s: New file.
	* ld-scripts/weak2.s: New file.
gdb-4_18-branch
Ian Lance Taylor 29 years ago
parent
commit
0d61eedd67
  1. 4
      ld/testsuite/ld-scripts/.Sanitize
  2. 56
      ld/testsuite/ld-scripts/weak.exp
  3. 9
      ld/testsuite/ld-scripts/weak.t
  4. 10
      ld/testsuite/ld-scripts/weak1.s
  5. 10
      ld/testsuite/ld-scripts/weak2.s

4
ld/testsuite/ld-scripts/.Sanitize

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

56
ld/testsuite/ld-scripts/weak.exp

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

9
ld/testsuite/ld-scripts/weak.t

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

10
ld/testsuite/ld-scripts/weak1.s

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

10
ld/testsuite/ld-scripts/weak2.s

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