diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2009-03-14 09:32:33 +0000 |
---|---|---|
committer | Richard Sandiford <rdsandiford@googlemail.com> | 2009-03-14 09:32:33 +0000 |
commit | 3df13c4a63ba23bb8e9b0b38f2dcd98d8d0b4a4b (patch) | |
tree | 569295d13eea738ab099607bba95e81b1079a654 /ld | |
parent | e450936a6fce7a4af7c9aac18db44cad94343ff1 (diff) | |
download | binutils-3df13c4a63ba23bb8e9b0b38f2dcd98d8d0b4a4b.tar.gz binutils-3df13c4a63ba23bb8e9b0b38f2dcd98d8d0b4a4b.tar.bz2 binutils-3df13c4a63ba23bb8e9b0b38f2dcd98d8d0b4a4b.zip |
bfd/
* libcoff-in.h (xcoff_tdata): Add a lineno_counts field.
* libcoff.h: Regenerate.
* xcofflink.c (xcoff_link_add_symbols): Record per-symbol
line-number counts in the bfd's lineno_counts field.
Don't keep per-csect line-number counts.
(xcoff_sweep): Don't update per-csect line-number counts.
(bfd_xcoff_size_dynamic_sections): Count the number of line-number
entries in each output section.
(xcoff_link_input_bfd): Get the number of line numbers from
the bfd's lineno_counts field, rather than recalculating it
from scratch. Fix the range check when updating C_BINCL and
C_EINCL symbols.
(_bfd_xcoff_bfd_final_link): Don't count the output line numbers
here. Don't expect csects to have line-number counts.
ld/testsuite/
* ld-powerpc/aix-lineno-1.s, ld-powerpc/aix-lineno-1.txt,
ld-powerpc/aix-lineno-1a.dd, ld-powerpc/aix-lineno-1a.nd,
ld-powerpc/aix-lineno-1b.dd, ld-powerpc/aix-lineno-1b.nd: New tests.
* ld-powerpc/aix52.exp: Run them. Copy aix-lineno-1.txt to tmpdir.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/aix-lineno-1.s | 25 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/aix-lineno-1.txt | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/aix-lineno-1a.dd | 24 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/aix-lineno-1a.nd | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/aix-lineno-1b.dd | 16 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/aix-lineno-1b.nd | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/aix52.exp | 14 |
8 files changed, 105 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index cb7c24ea565..ebb5120a298 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,5 +1,12 @@ 2009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com> + * ld-powerpc/aix-lineno-1.s, ld-powerpc/aix-lineno-1.txt, + ld-powerpc/aix-lineno-1a.dd, ld-powerpc/aix-lineno-1a.nd, + ld-powerpc/aix-lineno-1b.dd, ld-powerpc/aix-lineno-1b.nd: New tests. + * ld-powerpc/aix52.exp: Run them. Copy aix-lineno-1.txt to tmpdir. + +2009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com> + * ld-powerpc/aix-toc-1.ex, ld-powerpc/aix-toc-1a.s, ld-powerpc/aix-toc-1b.s, ld-powerpc/aix-toc-1-32.dd, ld-powerpc/aix-toc-1-64.dd: New tests. diff --git a/ld/testsuite/ld-powerpc/aix-lineno-1.s b/ld/testsuite/ld-powerpc/aix-lineno-1.s new file mode 100644 index 00000000000..196e012f206 --- /dev/null +++ b/ld/testsuite/ld-powerpc/aix-lineno-1.s @@ -0,0 +1,25 @@ + .file "tmpdir/aix-lineno-1.txt" + .csect .foo[PR] + .function .foo,.foo +.foo: + .bf 1 + nop + .line 2 + nop + .line 3 + nop + .line 4 + nop + .line 5 + nop + .ef 1 + + .globl .main + .csect .main[PR] + .function .main,.main +.main: + .bf 7 + bl .foo + .line 2 + nop + .ef 7 diff --git a/ld/testsuite/ld-powerpc/aix-lineno-1.txt b/ld/testsuite/ld-powerpc/aix-lineno-1.txt new file mode 100644 index 00000000000..0e8dc16560a --- /dev/null +++ b/ld/testsuite/ld-powerpc/aix-lineno-1.txt @@ -0,0 +1,8 @@ +Four +and +twenty +blackbirds +baked +in +a +pie diff --git a/ld/testsuite/ld-powerpc/aix-lineno-1a.dd b/ld/testsuite/ld-powerpc/aix-lineno-1a.dd new file mode 100644 index 00000000000..72410c9d96a --- /dev/null +++ b/ld/testsuite/ld-powerpc/aix-lineno-1a.dd @@ -0,0 +1,24 @@ + +.* + + +Disassembly of section \.text: + +0*10000000 <\.foo>: +Four + *10000000: 60 00 00 00 (oril r0,r0,0|nop) +and + *10000004: 60 00 00 00 (oril r0,r0,0|nop) +twenty + *10000008: 60 00 00 00 (oril r0,r0,0|nop) +blackbirds + *1000000c: 60 00 00 00 (oril r0,r0,0|nop) +baked + *10000010: 60 00 00 00 (oril r0,r0,0|nop) + +0*10000014 <\.main>: +in +a + *10000014: 4b ff ff ed bl 10000000 <\.foo> +pie + *10000018: 60 00 00 00 (oril r0,r0,0|nop) diff --git a/ld/testsuite/ld-powerpc/aix-lineno-1a.nd b/ld/testsuite/ld-powerpc/aix-lineno-1a.nd new file mode 100644 index 00000000000..5e841885673 --- /dev/null +++ b/ld/testsuite/ld-powerpc/aix-lineno-1a.nd @@ -0,0 +1,8 @@ +0*10000000 t \.bf +0*10000014 t \.bf +0*10000014 t \.ef +0*1000001c t \.ef +0*10000000 t \.foo +0*10000000 t \.foo +0*10000014 t \.main +0*10000014 T \.main diff --git a/ld/testsuite/ld-powerpc/aix-lineno-1b.dd b/ld/testsuite/ld-powerpc/aix-lineno-1b.dd new file mode 100644 index 00000000000..64c08df5688 --- /dev/null +++ b/ld/testsuite/ld-powerpc/aix-lineno-1b.dd @@ -0,0 +1,16 @@ + +.* + + +Disassembly of section \.text: + +0*10000000 <\.foo>: + *10000000: 60 00 00 00 (oril r0,r0,0|nop) + *10000004: 60 00 00 00 (oril r0,r0,0|nop) + *10000008: 60 00 00 00 (oril r0,r0,0|nop) + *1000000c: 60 00 00 00 (oril r0,r0,0|nop) + *10000010: 60 00 00 00 (oril r0,r0,0|nop) + +0*10000014 <\.main>: + *10000014: 4b ff ff ed bl 10000000 <\.foo> + *10000018: 60 00 00 00 (oril r0,r0,0|nop) diff --git a/ld/testsuite/ld-powerpc/aix-lineno-1b.nd b/ld/testsuite/ld-powerpc/aix-lineno-1b.nd new file mode 100644 index 00000000000..d3414705659 --- /dev/null +++ b/ld/testsuite/ld-powerpc/aix-lineno-1b.nd @@ -0,0 +1,3 @@ +0*10000000 t \.foo +0*10000014 t \.main +0*10000014 T \.main diff --git a/ld/testsuite/ld-powerpc/aix52.exp b/ld/testsuite/ld-powerpc/aix52.exp index 247b2d1ae4a..2178316fa13 100644 --- a/ld/testsuite/ld-powerpc/aix52.exp +++ b/ld/testsuite/ld-powerpc/aix52.exp @@ -64,6 +64,10 @@ proc run_aix_test { size name ldopts asopts sources tools output } { $output]] } +foreach file { "aix-lineno-1.txt" } { + remote_upload host "$srcdir/$subdir/$file" "tmpdir/$file" +} + set aix52tests { {"Absolute branch test 1" "-shared -bI:aix-abs-branch-1.im -bE:aix-abs-branch-1.ex" @@ -98,6 +102,16 @@ set aix52tests { {{objdump {-D -j.text -j.data} aix-glink-1-SIZE.dd}} "aix-glink-1.so"} + {"Line number test 1 (no discards)" "-e.main" + "" {aix-lineno-1.s} + {{objdump -dS aix-lineno-1a.dd} {nm {} aix-lineno-1a.nd}} + "aix-lineno-1a.exe"} + + {"Line number test 1 (discard locals)" "-e.main -x" + "" {aix-lineno-1.s} + {{objdump -dS aix-lineno-1b.dd} {nm {} aix-lineno-1b.nd}} + "aix-lineno-1b.exe"} + {"TOC test 1" "-shared -bE:aix-toc-1.ex" "" {aix-toc-1a.s aix-toc-1b.s} {{objdump -dr aix-toc-1-SIZE.dd}} |