* config/default.exp: Set variables as and nm. Create tmpdir if
it does not already exist. * ld.bootstrap/bootstrap.exp: Don't create tmpdir here. * ld.cdtest/cdtest.exp: Likewise. * ld.scripts/defined.exp: Likewise. Also, don't set as and nm here. Change perror for no variables found to fail. * ld.scripts/script.exp: New test. * ld.scripts/script.t, ld.scripts/script.s: New files.
This commit is contained in:
parent
7b777690a8
commit
f81eadb499
8 changed files with 66 additions and 10 deletions
|
@ -1,3 +1,14 @@
|
||||||
|
Wed Sep 28 12:18:54 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
|
||||||
|
|
||||||
|
* config/default.exp: Set variables as and nm. Create tmpdir if
|
||||||
|
it does not already exist.
|
||||||
|
* ld.bootstrap/bootstrap.exp: Don't create tmpdir here.
|
||||||
|
* ld.cdtest/cdtest.exp: Likewise.
|
||||||
|
* ld.scripts/defined.exp: Likewise. Also, don't set as and nm
|
||||||
|
here. Change perror for no variables found to fail.
|
||||||
|
* ld.scripts/script.exp: New test.
|
||||||
|
* ld.scripts/script.t, ld.scripts/script.s: New files.
|
||||||
|
|
||||||
Tue Sep 27 14:59:51 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
|
Tue Sep 27 14:59:51 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
|
||||||
|
|
||||||
* ld.scripts: New directory.
|
* ld.scripts: New directory.
|
||||||
|
|
|
@ -28,8 +28,6 @@ if ![isnative] {return}
|
||||||
# we need the object files.
|
# we need the object files.
|
||||||
if {$ld != "$objdir/ld.new"} {return}
|
if {$ld != "$objdir/ld.new"} {return}
|
||||||
|
|
||||||
if ![file isdirectory tmpdir] {catch "exec mkdir tmpdir" status}
|
|
||||||
|
|
||||||
# Bootstrap ld. First link the object files together using -r, in
|
# Bootstrap ld. First link the object files together using -r, in
|
||||||
# order to test -r. Then link the result into an executable, ld1, to
|
# order to test -r. Then link the result into an executable, ld1, to
|
||||||
# really test -r. Use ld1 to link a fresh ld, ld2. Use ld2 to link a
|
# really test -r. Use ld1 to link a fresh ld, ld2. Use ld2 to link a
|
||||||
|
|
|
@ -24,8 +24,6 @@
|
||||||
# This test requires running the executable generated by ld.
|
# This test requires running the executable generated by ld.
|
||||||
if ![isnative] {return}
|
if ![isnative] {return}
|
||||||
|
|
||||||
if ![file isdirectory tmpdir] {catch "exec mkdir tmpdir" status}
|
|
||||||
|
|
||||||
if ![ld_compile "$CXX $CXXFLAGS -fgnu-linker" $srcdir$subdir/cdtest-foo.cc tmpdir/cdtest-foo.o] {
|
if ![ld_compile "$CXX $CXXFLAGS -fgnu-linker" $srcdir$subdir/cdtest-foo.cc tmpdir/cdtest-foo.o] {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,9 @@ Things-to-keep:
|
||||||
defined.exp
|
defined.exp
|
||||||
defined.s
|
defined.s
|
||||||
defined.t
|
defined.t
|
||||||
|
script.exp
|
||||||
|
script.s
|
||||||
|
script.t
|
||||||
|
|
||||||
Things-to-lose:
|
Things-to-lose:
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
# Test DEFINED in a linker script.
|
# Test DEFINED in a linker script.
|
||||||
# By Ian Lance Taylor, Cygnus Support.
|
# By Ian Lance Taylor, Cygnus Support.
|
||||||
|
|
||||||
if ![file isdirectory tmpdir] {catch "exec mkdir tmpdir" status}
|
|
||||||
|
|
||||||
set as [findfile $base_dir/../gas/as.new $base_dir/../gas/as.new [transform as]]
|
|
||||||
set nm [findfile $base_dir/../binutils/nm.new $base_dir/../binutils/nm.new [transform nm]]
|
|
||||||
|
|
||||||
if ![ld_assemble $as $srcdir$subdir/defined.s tmpdir/def.o] { return }
|
if ![ld_assemble $as $srcdir$subdir/defined.s tmpdir/def.o] { return }
|
||||||
|
|
||||||
set prms_id 5699
|
set prms_id 5699
|
||||||
|
@ -16,7 +11,7 @@ if ![ld_simple_link $ld tmpdir/def "-T $srcdir$subdir/defined.t tmpdir/def.o"] {
|
||||||
if [ld_nm $nm tmpdir/def] {
|
if [ld_nm $nm tmpdir/def] {
|
||||||
if {![info exists nm_output(value1)] \
|
if {![info exists nm_output(value1)] \
|
||||||
|| ![info exists nm_output(value2)]} {
|
|| ![info exists nm_output(value2)]} {
|
||||||
perror "bad output from $nm"
|
fail "DEFINED (bad output from $nm)"
|
||||||
} else {
|
} else {
|
||||||
if {$nm_output(value1) != 1} {
|
if {$nm_output(value1) != 1} {
|
||||||
fail "DEFINED (value1 == $nm_output(value1))"
|
fail "DEFINED (value1 == $nm_output(value1))"
|
||||||
|
|
31
ld/testsuite/ld.scripts/script.exp
Normal file
31
ld/testsuite/ld.scripts/script.exp
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
# Test basic linker script functionality
|
||||||
|
# By Ian Lance Taylor, Cygnus Support
|
||||||
|
|
||||||
|
if ![ld_assemble $as $srcdir$subdir/script.s tmpdir/script.o] { return }
|
||||||
|
|
||||||
|
if ![ld_simple_link $ld tmpdir/script "-T $srcdir$subdir/script.t tmpdir/script.o"] {
|
||||||
|
fail script
|
||||||
|
} else {
|
||||||
|
if [ld_nm $nm tmpdir/script] {
|
||||||
|
if {![info exists nm_output(text_start)] \
|
||||||
|
|| ![info exists nm_output(text_end)] \
|
||||||
|
|| ![info exists nm_output(data_start)] \
|
||||||
|
|| ![info exists nm_output(data_end)]} {
|
||||||
|
fail "script (bad output from $nm)"
|
||||||
|
} else {
|
||||||
|
if {$nm_output(text_start) != 0x100} {
|
||||||
|
fail "script (text_start == $nm_output(text_start))"
|
||||||
|
} else { if {$nm_output(text_end) < 0x104 \
|
||||||
|
|| $nm_output(text_end) > 0x110} {
|
||||||
|
fail "script (text_end == $nm_output(text_end))"
|
||||||
|
} else { if {$nm_output(data_start) != 0x1000} {
|
||||||
|
fail "script (data_start == $nm_output(data_start))"
|
||||||
|
} else { if {$nm_output(data_end) < 0x1004 \
|
||||||
|
|| $nm_output(data_end) > 0x1010} {
|
||||||
|
fail "script (data_end == $nm_output(data_end))"
|
||||||
|
} else {
|
||||||
|
pass script
|
||||||
|
} } } }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
6
ld/testsuite/ld.scripts/script.s
Normal file
6
ld/testsuite/ld.scripts/script.s
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
.text
|
||||||
|
text_symbol:
|
||||||
|
.long 1
|
||||||
|
.data
|
||||||
|
data_symbol:
|
||||||
|
.long 2
|
14
ld/testsuite/ld.scripts/script.t
Normal file
14
ld/testsuite/ld.scripts/script.t
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
.text 0x100 : {
|
||||||
|
text_start = .;
|
||||||
|
*(.text)
|
||||||
|
text_end = .;
|
||||||
|
}
|
||||||
|
. = 0x1000;
|
||||||
|
.data : {
|
||||||
|
data_start = .;
|
||||||
|
*(.data)
|
||||||
|
data_end = .;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue