mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 17:18:24 +08:00
* ld-scripts/sizeof.exp: New test, based on bug report from
anders.blomdell@control.lth.se. * ld-scripts/sizeof.s: New file. * ld-scripts/sizeof.t: New file.
This commit is contained in:
@ -29,6 +29,9 @@ defined.t
|
|||||||
script.exp
|
script.exp
|
||||||
script.s
|
script.s
|
||||||
script.t
|
script.t
|
||||||
|
sizeof.exp
|
||||||
|
sizeof.s
|
||||||
|
sizeof.t
|
||||||
|
|
||||||
Things-to-lose:
|
Things-to-lose:
|
||||||
|
|
||||||
|
46
ld/testsuite/ld-scripts/sizeof.exp
Normal file
46
ld/testsuite/ld-scripts/sizeof.exp
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# Test SIZEOF in a linker script.
|
||||||
|
# By Ian Lance Taylor, Cygnus Support
|
||||||
|
# Based on a bug report from anders.blomdell@control.lth.se.
|
||||||
|
|
||||||
|
if ![ld_assemble $as $srcdir$subdir/sizeof.s tmpdir/sizeof.o] { return }
|
||||||
|
|
||||||
|
if ![ld_simple_link $ld tmpdir/sizeof "-T $srcdir$subdir/sizeof.t tmpdir/sizeof.o"] {
|
||||||
|
fail SIZEOF
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if ![ld_nm $nm tmpdir/sizeof] {
|
||||||
|
fail SIZEOF
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
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)] \
|
||||||
|
|| ![info exists nm_output(sizeof_text)] \
|
||||||
|
|| ![info exists nm_output(sizeof_data)]} {
|
||||||
|
send_log "Bad output from nm\n"
|
||||||
|
fail SIZEOF
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if {$nm_output(text_end) - $nm_output(text_start) != $nm_output(sizeof_text)} {
|
||||||
|
send_log "text_end - text_start != sizeof_text\n"
|
||||||
|
fail SIZEOF
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if {$nm_output(data_end) - $nm_output(data_start) != $nm_output(sizeof_data)} {
|
||||||
|
send_log "data_end - data_start != sizeof_data\n"
|
||||||
|
fail SIZEOF
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if {$nm_output(sizeof_text) != $nm_output(sizeof_data)} {
|
||||||
|
send_log "sizeof_text != sizeof_data\n"
|
||||||
|
fail SIZEOF
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
pass SIZEOF
|
1
ld/testsuite/ld-scripts/sizeof.s
Normal file
1
ld/testsuite/ld-scripts/sizeof.s
Normal file
@ -0,0 +1 @@
|
|||||||
|
.space 16
|
17
ld/testsuite/ld-scripts/sizeof.t
Normal file
17
ld/testsuite/ld-scripts/sizeof.t
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
SECTIONS {
|
||||||
|
.text :
|
||||||
|
{
|
||||||
|
text_start = .;
|
||||||
|
tmpdir/sizeof.o
|
||||||
|
text_end = .;
|
||||||
|
}
|
||||||
|
.data :
|
||||||
|
{
|
||||||
|
data_start = .;
|
||||||
|
. = . + SIZEOF(.text);
|
||||||
|
data_end = .;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sizeof_text = SIZEOF(.text);
|
||||||
|
sizeof_data = SIZEOF(.data);
|
Reference in New Issue
Block a user