]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - ld/testsuite/ld-scripts/sizeof.exp
19990502 sourceware import
[thirdparty/binutils-gdb.git] / ld / testsuite / ld-scripts / sizeof.exp
1 # Test SIZEOF in a linker script.
2 # By Ian Lance Taylor, Cygnus Support
3 # Based on a bug report from anders.blomdell@control.lth.se.
4
5 set testname "SIZEOF"
6
7 if ![ld_assemble $as $srcdir/$subdir/sizeof.s tmpdir/sizeof.o] {
8 unresolved $testname
9 return
10 }
11
12 if ![ld_simple_link $ld tmpdir/sizeof "-T $srcdir/$subdir/sizeof.t tmpdir/sizeof.o"] {
13 fail $testname
14 return
15 }
16
17 if ![ld_nm $nm tmpdir/sizeof] {
18 unresolved $testname
19 return
20 }
21
22 if {![info exists nm_output(text_start)] \
23 || ![info exists nm_output(text_end)] \
24 || ![info exists nm_output(data_start)] \
25 || ![info exists nm_output(data_end)] \
26 || ![info exists nm_output(sizeof_text)] \
27 || ![info exists nm_output(sizeof_data)]} {
28 send_log "bad output from nm\n"
29 verbose "bad output from nm"
30 fail $testname
31 return
32 }
33
34 if {$nm_output(text_end) - $nm_output(text_start) != $nm_output(sizeof_text)} {
35 send_log "text_end - text_start != sizeof_text\n"
36 verbose "text_end - text_start != sizeof_text"
37 fail $testname
38 return
39 }
40
41 if {$nm_output(data_end) - $nm_output(data_start) != $nm_output(sizeof_data)} {
42 send_log "data_end - data_start != sizeof_data\n"
43 verbose "data_end - data_start != sizeof_data"
44 fail $testname
45 return
46 }
47
48 if {$nm_output(sizeof_text) != $nm_output(sizeof_data)} {
49 send_log "sizeof_text != sizeof_data\n"
50 verbose "sizeof_text != sizeof_data"
51 fail $testname
52 return
53 }
54
55 pass $testname