* 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:
Ian Lance Taylor 1994-09-28 16:21:32 +00:00
parent 7b777690a8
commit f81eadb499
8 changed files with 66 additions and 10 deletions

View File

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

View File

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

View File

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

View File

@ -26,6 +26,9 @@ Things-to-keep:
defined.exp
defined.s
defined.t
script.exp
script.s
script.t
Things-to-lose:

View File

@ -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))"

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

View File

@ -0,0 +1,6 @@
.text
text_symbol:
.long 1
.data
data_symbol:
.long 2

View File

@ -0,0 +1,14 @@
SECTIONS
{
.text 0x100 : {
text_start = .;
*(.text)
text_end = .;
}
. = 0x1000;
.data : {
data_start = .;
*(.data)
data_end = .;
}
}