aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2009-08-10 13:38:44 +0000
committerNathan Sidwell <nathan@codesourcery.com>2009-08-10 13:38:44 +0000
commit01017ef89a902536817c86aa0d0562184807a954 (patch)
tree7479f8fca97167522f03259c9c82e7804c762753 /ld
parent023e4e81acd973bf79e07681690ca4196bf2e37d (diff)
downloadgdb-01017ef89a902536817c86aa0d0562184807a954.zip
gdb-01017ef89a902536817c86aa0d0562184807a954.tar.gz
gdb-01017ef89a902536817c86aa0d0562184807a954.tar.bz2
bfd/
* elf32-ppc.c (shared_stub_entry, stub_entry): Use r12, not r11. (ppc_elf_relax_section): Use symbol index to distinguish relocatable stubs. ld/testsuite/ * ld-powerpc/relax.s: New. * ld-powerpc/relax.d: New. * ld-powerpc/relaxr.d: New. * ld-powerpc/powerpc.exp: Add new tests.
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ChangeLog7
-rw-r--r--ld/testsuite/ld-powerpc/powerpc.exp6
-rw-r--r--ld/testsuite/ld-powerpc/relax.d15
-rw-r--r--ld/testsuite/ld-powerpc/relax.s6
-rw-r--r--ld/testsuite/ld-powerpc/relaxr.d25
5 files changed, 59 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index d0e1699..29457a6 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2009-08-10 Nathan Sidwell <nathan@codesourcery.com>
+
+ * ld-powerpc/relax.s: New.
+ * ld-powerpc/relax.d: New.
+ * ld-powerpc/relaxr.d: New.
+ * ld-powerpc/powerpc.exp: Add new tests.
+
2009-08-06 Nathan Sidwell <nathan@codesourcery.com>
* ld-arm/arm-elf.exp: Add new test.
diff --git a/ld/testsuite/ld-powerpc/powerpc.exp b/ld/testsuite/ld-powerpc/powerpc.exp
index bc63a46..edfab3f 100644
--- a/ld/testsuite/ld-powerpc/powerpc.exp
+++ b/ld/testsuite/ld-powerpc/powerpc.exp
@@ -158,6 +158,12 @@ set ppc64elftests {
"tlsmark"}
{"sym@tocbase" "-shared -melf64ppc" "-a64" {symtocbase-1.s symtocbase-2.s}
{{objdump -dj.data symtocbase.d}} "symtocbase.so"}
+ {"relaxing" "-melf32ppc --relax -Ttext=0 --defsym far=0x80001234 --defsym near=0x00004320" "" "relax.s"
+ {{objdump -dr relax.d}}
+ "relax"}
+ {"relocatable relaxing" "-melf32ppc -r --relax" "" "relax.s"
+ {{objdump -dr relaxr.d}}
+ "relax"}
}
diff --git a/ld/testsuite/ld-powerpc/relax.d b/ld/testsuite/ld-powerpc/relax.d
new file mode 100644
index 0000000..2f09522
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/relax.d
@@ -0,0 +1,15 @@
+
+.*: file format .*
+
+Disassembly of section .text:
+
+00000000 <_start>:
+ 0: 48 00 43 21 bl 4320 <near>
+ 4: 48 00 00 11 bl 14 <_start\+0x14>
+ 8: 48 00 43 19 bl 4320 <near>
+ c: 48 00 00 09 bl 14 <_start\+0x14>
+ 10: 48 00 00 14 b 24 <.*>
+ 14: 3d 80 80 00 lis r12,-32768
+ 18: 39 8c 12 34 addi r12,r12,4660
+ 1c: 7d 89 03 a6 mtctr r12
+ 20: 4e 80 04 20 bctr
diff --git a/ld/testsuite/ld-powerpc/relax.s b/ld/testsuite/ld-powerpc/relax.s
new file mode 100644
index 0000000..2e05569
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/relax.s
@@ -0,0 +1,6 @@
+ .globl _start
+_start:
+ bl near
+ bl far
+ bl near
+ bl far
diff --git a/ld/testsuite/ld-powerpc/relaxr.d b/ld/testsuite/ld-powerpc/relaxr.d
new file mode 100644
index 0000000..62fa8ae
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/relaxr.d
@@ -0,0 +1,25 @@
+
+.*: file format .*
+
+Disassembly of section .text:
+
+00000000 <_start>:
+ 0: 48 00 00 15 bl 14 <_start\+0x14>
+ 4: 48 00 00 21 bl 24 <_start\+0x24>
+ 8: 48 00 00 0d bl 14 <_start\+0x14>
+ 8: R_PPC_NONE \*ABS\*
+ c: 48 00 00 19 bl 24 <_start\+0x24>
+ c: R_PPC_NONE \*ABS\*
+ 10: 48 00 00 24 b 34 <_start\+0x34>
+ 14: 3d 80 00 00 lis r12,0
+ 16: R_PPC_ADDR16_HA near
+ 18: 39 8c 00 00 addi r12,r12,0
+ 1a: R_PPC_ADDR16_LO near
+ 1c: 7d 89 03 a6 mtctr r12
+ 20: 4e 80 04 20 bctr
+ 24: 3d 80 00 00 lis r12,0
+ 26: R_PPC_ADDR16_HA far
+ 28: 39 8c 00 00 addi r12,r12,0
+ 2a: R_PPC_ADDR16_LO far
+ 2c: 7d 89 03 a6 mtctr r12
+ 30: 4e 80 04 20 bctr