diff options
author | Ian Lance Taylor <ian@airs.com> | 1995-01-11 16:49:57 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1995-01-11 16:49:57 +0000 |
commit | 1db367dae07aa30b991e334955f26295348326e7 (patch) | |
tree | 5ba32405e7464b1a755cfff5f3083759849c4ec9 | |
parent | 93a0630f614ba2bf6d5ec4eb69b5529b8dce1118 (diff) | |
download | gdb-1db367dae07aa30b991e334955f26295348326e7.zip gdb-1db367dae07aa30b991e334955f26295348326e7.tar.gz gdb-1db367dae07aa30b991e334955f26295348326e7.tar.bz2 |
* 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.
-rw-r--r-- | ld/testsuite/ld-scripts/.Sanitize | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-scripts/sizeof.exp | 46 | ||||
-rw-r--r-- | ld/testsuite/ld-scripts/sizeof.s | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-scripts/sizeof.t | 17 |
4 files changed, 67 insertions, 0 deletions
diff --git a/ld/testsuite/ld-scripts/.Sanitize b/ld/testsuite/ld-scripts/.Sanitize index b68da1b..07c5fe0 100644 --- a/ld/testsuite/ld-scripts/.Sanitize +++ b/ld/testsuite/ld-scripts/.Sanitize @@ -29,6 +29,9 @@ defined.t script.exp script.s script.t +sizeof.exp +sizeof.s +sizeof.t Things-to-lose: diff --git a/ld/testsuite/ld-scripts/sizeof.exp b/ld/testsuite/ld-scripts/sizeof.exp new file mode 100644 index 0000000..e91701c --- /dev/null +++ b/ld/testsuite/ld-scripts/sizeof.exp @@ -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 diff --git a/ld/testsuite/ld-scripts/sizeof.s b/ld/testsuite/ld-scripts/sizeof.s new file mode 100644 index 0000000..e221ca3 --- /dev/null +++ b/ld/testsuite/ld-scripts/sizeof.s @@ -0,0 +1 @@ + .space 16 diff --git a/ld/testsuite/ld-scripts/sizeof.t b/ld/testsuite/ld-scripts/sizeof.t new file mode 100644 index 0000000..6244a37 --- /dev/null +++ b/ld/testsuite/ld-scripts/sizeof.t @@ -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); |