aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorIain Sandoe <iain@codesourcery.com>2012-01-13 15:19:13 +0000
committerIain Sandoe <iain@codesourcery.com>2012-01-13 15:19:13 +0000
commit34dd18bca5b8991d5e107dc1669ba6710916ce1d (patch)
treedd8c4d6ffcd6a8745710832b9abee5f444f97376 /gas/testsuite
parent0ee339bc478ec8c35f4fee8998456bc33be0a3e2 (diff)
downloadbinutils-34dd18bca5b8991d5e107dc1669ba6710916ce1d.zip
binutils-34dd18bca5b8991d5e107dc1669ba6710916ce1d.tar.gz
binutils-34dd18bca5b8991d5e107dc1669ba6710916ce1d.tar.bz2
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/ChangeLog18
-rw-r--r--gas/testsuite/gas/all/redef2.d1
-rw-r--r--gas/testsuite/gas/all/redef3.d2
-rw-r--r--gas/testsuite/gas/all/weakref1.d3
-rw-r--r--gas/testsuite/gas/mach-o/macro-irp.d14
-rw-r--r--gas/testsuite/gas/mach-o/macro-repeat.d44
-rw-r--r--gas/testsuite/gas/mach-o/macro-rept.d11
-rw-r--r--gas/testsuite/gas/mach-o/macro-test2.d11
-rw-r--r--gas/testsuite/gas/mach-o/macro-vararg.d14
-rw-r--r--gas/testsuite/gas/mach-o/redef2.d17
-rw-r--r--gas/testsuite/gas/mach-o/redef3.d17
-rw-r--r--gas/testsuite/gas/macros/irp.d2
-rw-r--r--gas/testsuite/gas/macros/repeat.d2
-rw-r--r--gas/testsuite/gas/macros/rept.d2
-rw-r--r--gas/testsuite/gas/macros/test2.d2
-rw-r--r--gas/testsuite/gas/macros/vararg.d2
16 files changed, 160 insertions, 2 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 01418cb..ea80694 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 244d33d..c50cd6c 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 566f9c9..a16fac3 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 ee37d97..b44d1fc 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 0000000..c7737fa
--- /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 0000000..db215a4
--- /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 0000000..7ac212a
--- /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 0000000..30a2b2f
--- /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 0000000..da6c0af
--- /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 0000000..5e76d50
--- /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 0000000..3f61a3f
--- /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 e6d7bcf..2c07f8e 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 272e441..1e6e422 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 0022d5f..df2ed96 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 9a7d414..e5041cd 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 4b943fd..94c1511 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 .*