* 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
|
@ -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)
|
||||
|
||||
* ld.scripts: New directory.
|
||||
|
|
|
@ -28,8 +28,6 @@ if ![isnative] {return}
|
|||
# we need the object files.
|
||||
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
|
||||
# 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
|
||||
|
|
|
@ -24,8 +24,6 @@
|
|||
# This test requires running the executable generated by ld.
|
||||
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] {
|
||||
return
|
||||
}
|
||||
|
|
|
@ -26,6 +26,9 @@ Things-to-keep:
|
|||
defined.exp
|
||||
defined.s
|
||||
defined.t
|
||||
script.exp
|
||||
script.s
|
||||
script.t
|
||||
|
||||
Things-to-lose:
|
||||
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
# Test DEFINED in a linker script.
|
||||
# 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 }
|
||||
|
||||
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 {![info exists nm_output(value1)] \
|
||||
|| ![info exists nm_output(value2)]} {
|
||||
perror "bad output from $nm"
|
||||
fail "DEFINED (bad output from $nm)"
|
||||
} else {
|
||||
if {$nm_output(value1) != 1} {
|
||||
fail "DEFINED (value1 == $nm_output(value1))"
|
||||
|
|
|
@ -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
|
||||
} } } }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
.text
|
||||
text_symbol:
|
||||
.long 1
|
||||
.data
|
||||
data_symbol:
|
||||
.long 2
|
|
@ -0,0 +1,14 @@
|
|||
SECTIONS
|
||||
{
|
||||
.text 0x100 : {
|
||||
text_start = .;
|
||||
*(.text)
|
||||
text_end = .;
|
||||
}
|
||||
. = 0x1000;
|
||||
.data : {
|
||||
data_start = .;
|
||||
*(.data)
|
||||
data_end = .;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue