diff options
author | Iain Sandoe <iain@codesourcery.com> | 2012-01-13 15:19:13 +0000 |
---|---|---|
committer | Iain Sandoe <iain@codesourcery.com> | 2012-01-13 15:19:13 +0000 |
commit | 34dd18bca5b8991d5e107dc1669ba6710916ce1d (patch) | |
tree | dd8c4d6ffcd6a8745710832b9abee5f444f97376 /gas/testsuite | |
parent | 0ee339bc478ec8c35f4fee8998456bc33be0a3e2 (diff) | |
download | ppe42-binutils-34dd18bca5b8991d5e107dc1669ba6710916ce1d.tar.gz ppe42-binutils-34dd18bca5b8991d5e107dc1669ba6710916ce1d.zip |
reverse the order of relocs in mach-o gas output.
gas:
* config/obj-macho.c (obj_mach_o_reorder_section_relocs): New.
* config/obj-macho.h (SET_SECTION_RELOCS): Define.
(obj_mach_o_reorder_section_relocs): Declare.
gas/testsuite:
* gas/all/redef2.d: Skip for Darwin.
* gas/all/redef3.d: Likewise.
* gas/all/weakref1.d: Likewise.
* gas/macros/irp.d: Likewise.
* gas/macros/repeat.d: Likewise.
* gas/macros/rept.d: Likewise.
* gas/macros/test2.d: Likewise.
* gas/macros/vararg.d: Likewise.
* gas/mach-o/macro-irp.d: New.
* gas/mach-o/macro-repeat.d: New.
* gas/mach-o/macro-rept.d: New.
* gas/mach-o/macro-test2.d: New.
* gas/mach-o/macro-vararg.d: New.
* gas/mach-o/redef2.d: New.
* gas/mach-o/redef3.d: New.
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/ChangeLog | 18 | ||||
-rw-r--r-- | gas/testsuite/gas/all/redef2.d | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/all/redef3.d | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/all/weakref1.d | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/mach-o/macro-irp.d | 14 | ||||
-rw-r--r-- | gas/testsuite/gas/mach-o/macro-repeat.d | 44 | ||||
-rw-r--r-- | gas/testsuite/gas/mach-o/macro-rept.d | 11 | ||||
-rw-r--r-- | gas/testsuite/gas/mach-o/macro-test2.d | 11 | ||||
-rw-r--r-- | gas/testsuite/gas/mach-o/macro-vararg.d | 14 | ||||
-rw-r--r-- | gas/testsuite/gas/mach-o/redef2.d | 17 | ||||
-rw-r--r-- | gas/testsuite/gas/mach-o/redef3.d | 17 | ||||
-rw-r--r-- | gas/testsuite/gas/macros/irp.d | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/macros/repeat.d | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/macros/rept.d | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/macros/test2.d | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/macros/vararg.d | 2 |
16 files changed, 160 insertions, 2 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 01418cb3f1..ea80694d96 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,5 +1,23 @@ 2012-01-13 Iain Sandoe <idsandoe@googlemail.com> + * gas/all/redef2.d: Skip for Darwin. + * gas/all/redef3.d: Likewise. + * gas/all/weakref1.d: Likewise. + * gas/macros/irp.d: Likewise. + * gas/macros/repeat.d: Likewise. + * gas/macros/rept.d: Likewise. + * gas/macros/test2.d: Likewise. + * gas/macros/vararg.d: Likewise. + * gas/mach-o/macro-irp.d: New. + * gas/mach-o/macro-repeat.d: New. + * gas/mach-o/macro-rept.d: New. + * gas/mach-o/macro-test2.d: New. + * gas/mach-o/macro-vararg.d: New. + * gas/mach-o/redef2.d: New. + * gas/mach-o/redef3.d: New. + +2012-01-13 Iain Sandoe <idsandoe@googlemail.com> + * gas/mach-o/dysymtab-3.d: New. * gas/mach-o/symbols-7.s: New. diff --git a/gas/testsuite/gas/all/redef2.d b/gas/testsuite/gas/all/redef2.d index 244d33dd68..c50cd6c94c 100644 --- a/gas/testsuite/gas/all/redef2.d +++ b/gas/testsuite/gas/all/redef2.d @@ -1,5 +1,6 @@ #objdump: -rs -j .data -j "\$DATA\$" #name: .equ redefinitions (2) +#not-target: *-*-darwin* .*: .* diff --git a/gas/testsuite/gas/all/redef3.d b/gas/testsuite/gas/all/redef3.d index 566f9c95d5..a16fac3c9b 100644 --- a/gas/testsuite/gas/all/redef3.d +++ b/gas/testsuite/gas/all/redef3.d @@ -1,6 +1,6 @@ #objdump: -rsj .data #name: .equ redefinitions (3) -#not-target: arc-*-* +#not-target: arc-*-* *-*darwin* .*: .* diff --git a/gas/testsuite/gas/all/weakref1.d b/gas/testsuite/gas/all/weakref1.d index ee37d97700..b44d1fced4 100644 --- a/gas/testsuite/gas/all/weakref1.d +++ b/gas/testsuite/gas/all/weakref1.d @@ -2,8 +2,9 @@ #name: weakref tests, relocations # ecoff (OSF/alpha) lacks .weak support # pdp11 lacks .long +# darwin (mach-o) reverses the order of relocs. # the following must be present in all weakref1*.d -#not-target: alpha*-*-osf* *-*-ecoff pdp11-*-aout +#not-target: alpha*-*-osf* *-*-ecoff pdp11-*-aout *-*-darwin* #... RELOCATION RECORDS FOR \[(\.text|\$CODE\$)\]: diff --git a/gas/testsuite/gas/mach-o/macro-irp.d b/gas/testsuite/gas/mach-o/macro-irp.d new file mode 100644 index 0000000000..c7737fa0fb --- /dev/null +++ b/gas/testsuite/gas/mach-o/macro-irp.d @@ -0,0 +1,14 @@ +#objdump: -r +#name: macro irp +#source: ../macros/irp.s + +.*: +file format .* + +RELOCATION RECORDS FOR .* +OFFSET[ ]+TYPE[ ]+VALUE.* +0+14[ ]+[a-zA-Z0-9_]+[ ]+bar3 +0+10[ ]+[a-zA-Z0-9_]+[ ]+bar2 +0+0c[ ]+[a-zA-Z0-9_]+[ ]+bar1 +0+08[ ]+[a-zA-Z0-9_]+[ ]+foo3 +0+04[ ]+[a-zA-Z0-9_]+[ ]+foo2 +0+00[ ]+[a-zA-Z0-9_]+[ ]+foo1 diff --git a/gas/testsuite/gas/mach-o/macro-repeat.d b/gas/testsuite/gas/mach-o/macro-repeat.d new file mode 100644 index 0000000000..db215a43d2 --- /dev/null +++ b/gas/testsuite/gas/mach-o/macro-repeat.d @@ -0,0 +1,44 @@ +#objdump: -r +#name: nested irp/irpc/rept +#source: ../macros/repeat.s + +.*: +file format .* + +RELOCATION RECORDS FOR .* +OFFSET[ ]+TYPE[ ]+VALUE.* +0+8c[ ]+[a-zA-Z0-9_]+[ ]+rept_rept +0+88[ ]+[a-zA-Z0-9_]+[ ]+rept_rept +0+84[ ]+[a-zA-Z0-9_]+[ ]+rept_rept +0+80[ ]+[a-zA-Z0-9_]+[ ]+rept_rept +0+7c[ ]+[a-zA-Z0-9_]+[ ]+rept_irpc_8 +0+78[ ]+[a-zA-Z0-9_]+[ ]+rept_irpc_9 +0+74[ ]+[a-zA-Z0-9_]+[ ]+rept_irpc_8 +0+70[ ]+[a-zA-Z0-9_]+[ ]+rept_irpc_9 +0+6c[ ]+[a-zA-Z0-9_]+[ ]+rept_irp_8 +0+68[ ]+[a-zA-Z0-9_]+[ ]+rept_irp_9 +0+64[ ]+[a-zA-Z0-9_]+[ ]+rept_irp_8 +0+60[ ]+[a-zA-Z0-9_]+[ ]+rept_irp_9 +0+5c[ ]+[a-zA-Z0-9_]+[ ]+irpc_rept_2 +0+58[ ]+[a-zA-Z0-9_]+[ ]+irpc_rept_2 +0+54[ ]+[a-zA-Z0-9_]+[ ]+irpc_rept_1 +0+50[ ]+[a-zA-Z0-9_]+[ ]+irpc_rept_1 +0+4c[ ]+[a-zA-Z0-9_]+[ ]+irpc_irpc_28 +0+48[ ]+[a-zA-Z0-9_]+[ ]+irpc_irpc_29 +0+44[ ]+[a-zA-Z0-9_]+[ ]+irpc_irpc_18 +0+40[ ]+[a-zA-Z0-9_]+[ ]+irpc_irpc_19 +0+3c[ ]+[a-zA-Z0-9_]+[ ]+irpc_irp_28 +0+38[ ]+[a-zA-Z0-9_]+[ ]+irpc_irp_29 +0+34[ ]+[a-zA-Z0-9_]+[ ]+irpc_irp_18 +0+30[ ]+[a-zA-Z0-9_]+[ ]+irpc_irp_19 +0+2c[ ]+[a-zA-Z0-9_]+[ ]+irp_rept_2 +0+28[ ]+[a-zA-Z0-9_]+[ ]+irp_rept_2 +0+24[ ]+[a-zA-Z0-9_]+[ ]+irp_rept_1 +0+20[ ]+[a-zA-Z0-9_]+[ ]+irp_rept_1 +0+1c[ ]+[a-zA-Z0-9_]+[ ]+irp_irpc_28 +0+18[ ]+[a-zA-Z0-9_]+[ ]+irp_irpc_29 +0+14[ ]+[a-zA-Z0-9_]+[ ]+irp_irpc_18 +0+10[ ]+[a-zA-Z0-9_]+[ ]+irp_irpc_19 +0+0c[ ]+[a-zA-Z0-9_]+[ ]+irp_irp_28 +0+08[ ]+[a-zA-Z0-9_]+[ ]+irp_irp_29 +0+04[ ]+[a-zA-Z0-9_]+[ ]+irp_irp_18 +0+00[ ]+[a-zA-Z0-9_]+[ ]+irp_irp_19 diff --git a/gas/testsuite/gas/mach-o/macro-rept.d b/gas/testsuite/gas/mach-o/macro-rept.d new file mode 100644 index 0000000000..7ac212a78c --- /dev/null +++ b/gas/testsuite/gas/mach-o/macro-rept.d @@ -0,0 +1,11 @@ +#objdump: -r +#name: macro rept +#source: ../macros/rept.s + +.*: +file format .* + +RELOCATION RECORDS FOR .* +OFFSET[ ]+TYPE[ ]+VALUE.* +0+08[ ]+[a-zA-Z0-9_]+[ ]+foo1 +0+04[ ]+[a-zA-Z0-9_]+[ ]+foo1 +0+00[ ]+[a-zA-Z0-9_]+[ ]+foo1 diff --git a/gas/testsuite/gas/mach-o/macro-test2.d b/gas/testsuite/gas/mach-o/macro-test2.d new file mode 100644 index 0000000000..30a2b2f5e2 --- /dev/null +++ b/gas/testsuite/gas/mach-o/macro-test2.d @@ -0,0 +1,11 @@ +#objdump: -r +#name: macro test 2 +#source: ../macros/test2.s + +.*: +file format .* + +RELOCATION RECORDS FOR .* +OFFSET[ ]+TYPE[ ]+VALUE.* +0+08[ ]+[a-zA-Z0-9_]+[ ]+foo3 +0+04[ ]+[a-zA-Z0-9_]+[ ]+foo2 +0+00[ ]+[a-zA-Z0-9_]+[ ]+foo1 diff --git a/gas/testsuite/gas/mach-o/macro-vararg.d b/gas/testsuite/gas/mach-o/macro-vararg.d new file mode 100644 index 0000000000..da6c0afece --- /dev/null +++ b/gas/testsuite/gas/mach-o/macro-vararg.d @@ -0,0 +1,14 @@ +#objdump: -r +#name: macro vararg +#source: ../macros/vararg.s + +.*: +file format .* + +RELOCATION RECORDS FOR .* +OFFSET[ ]+TYPE[ ]+VALUE.* +0+14[ ]+[a-zA-Z0-9_]+[ ]+foo6 +0+10[ ]+[a-zA-Z0-9_]+[ ]+foo5 +0+0c[ ]+[a-zA-Z0-9_]+[ ]+foo4 +0+08[ ]+[a-zA-Z0-9_]+[ ]+foo3 +0+04[ ]+[a-zA-Z0-9_]+[ ]+foo2 +0+00[ ]+[a-zA-Z0-9_]+[ ]+foo1 diff --git a/gas/testsuite/gas/mach-o/redef2.d b/gas/testsuite/gas/mach-o/redef2.d new file mode 100644 index 0000000000..5e76d5074a --- /dev/null +++ b/gas/testsuite/gas/mach-o/redef2.d @@ -0,0 +1,17 @@ +#objdump: -rs -j .data -j "\$DATA\$" +#name: .equ redefinitions (2) +# identical to ../all, we just need to reverse the relocs. +#source: ../all/redef2.s + +.*: .* + +RELOCATION RECORDS FOR .* +.* +0+10.*(sym|(\.data|\$DATA\$)(\+0x0+10)?) +0+08.*xtrn +0+00.*(here|\.data|\$DATA\$) +#... +Contents of section (\.data|\$DATA\$): + 0000 00000000 11111111 00000000 22222222[ ]+................[ ]* + 0010 [01]00000[01]0 .* +#pass diff --git a/gas/testsuite/gas/mach-o/redef3.d b/gas/testsuite/gas/mach-o/redef3.d new file mode 100644 index 0000000000..3f61a3fe8f --- /dev/null +++ b/gas/testsuite/gas/mach-o/redef3.d @@ -0,0 +1,17 @@ +#objdump: -rsj .data +#name: .equ redefinitions (3) +#identical to ../all/redef, we just need to reverse the relocs. +#source: ../all/redef3.s + +.*: .* + +RELOCATION RECORDS FOR .* +.* +0+10.*sym +0+08.*xtrn +0+00.*(here|\.data) +#... +Contents of section \.data: + 0000 00000000 11111111 00000000 22222222[ ]+................[ ]* + 0010 00000000 .* +#pass diff --git a/gas/testsuite/gas/macros/irp.d b/gas/testsuite/gas/macros/irp.d index e6d7bcfd40..2c07f8eecb 100644 --- a/gas/testsuite/gas/macros/irp.d +++ b/gas/testsuite/gas/macros/irp.d @@ -1,5 +1,7 @@ #objdump: -r #name: macro irp +#darwin (mach-o) reverses relocs. +#not-target: *-*-darwin* .*: +file format .* diff --git a/gas/testsuite/gas/macros/repeat.d b/gas/testsuite/gas/macros/repeat.d index 272e441d02..1e6e42220f 100644 --- a/gas/testsuite/gas/macros/repeat.d +++ b/gas/testsuite/gas/macros/repeat.d @@ -1,5 +1,7 @@ #objdump: -r #name: nested irp/irpc/rept +# darwin (mach-o) reverse relocs. +#not-target: *-*-darwin* .*: +file format .* diff --git a/gas/testsuite/gas/macros/rept.d b/gas/testsuite/gas/macros/rept.d index 0022d5f95d..df2ed9648e 100644 --- a/gas/testsuite/gas/macros/rept.d +++ b/gas/testsuite/gas/macros/rept.d @@ -1,5 +1,7 @@ #objdump: -r #name: macro rept +#darwin (mach-o) reverses relocs. +#not-target: *-*-darwin* .*: +file format .* diff --git a/gas/testsuite/gas/macros/test2.d b/gas/testsuite/gas/macros/test2.d index 9a7d41481d..e5041cd1ff 100644 --- a/gas/testsuite/gas/macros/test2.d +++ b/gas/testsuite/gas/macros/test2.d @@ -1,5 +1,7 @@ #objdump: -r #name: macro test 2 +# darwin(mach-o) reverses the order of relocs. +#not-target: *-*-darwin* .*: +file format .* diff --git a/gas/testsuite/gas/macros/vararg.d b/gas/testsuite/gas/macros/vararg.d index 4b943fd18f..94c1511260 100644 --- a/gas/testsuite/gas/macros/vararg.d +++ b/gas/testsuite/gas/macros/vararg.d @@ -1,5 +1,7 @@ #objdump: -r #name: macro vararg +# darwin (mach-o) reverses relocs. +#not-target: *-*-darwin* .*: +file format .* |