aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2008-06-29 12:56:41 +0000
committerAndreas Schwab <schwab@linux-m68k.org>2008-06-29 12:56:41 +0000
commitf57718b4c3a59a16940b6b300a6b20237631686c (patch)
tree39926487b05f7e26b21d469694f6a6c6472aa8d7 /ld
parent240c00d201736b76208df956190091b477e18e10 (diff)
downloadfsf-binutils-gdb-f57718b4c3a59a16940b6b300a6b20237631686c.zip
fsf-binutils-gdb-f57718b4c3a59a16940b6b300a6b20237631686c.tar.gz
fsf-binutils-gdb-f57718b4c3a59a16940b6b300a6b20237631686c.tar.bz2
* elf32-m68k.c (elf_m68k_relocate_section): Don't ignore existing
addend on _GLOBAL_OFFSET_TABLE_. ld/testsuite/: * ld-m68k/got-1.s: New file. * ld-m68k/got-1.d: New dump test. * ld-m68k/m68k.exp: Run it.
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ChangeLog6
-rw-r--r--ld/testsuite/ld-m68k/got-1.d19
-rw-r--r--ld/testsuite/ld-m68k/got-1.s18
-rw-r--r--ld/testsuite/ld-m68k/m68k.exp1
4 files changed, 44 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 02614c7..34d75e6 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2008-06-29 Andreas Schwab <schwab@suse.de>
+
+ * ld-m68k/got-1.s: New file.
+ * ld-m68k/got-1.d: New dump test.
+ * ld-m68k/m68k.exp: Run it.
+
2008-06-24 Daniel Jacobowitz <dan@codesourcery.com>
* ld-arm/farcall-arm-arm-be8.d, ld-arm/farcall-arm-arm-pic-veneer.d,
diff --git a/ld/testsuite/ld-m68k/got-1.d b/ld/testsuite/ld-m68k/got-1.d
new file mode 100644
index 0000000..e8070e9
--- /dev/null
+++ b/ld/testsuite/ld-m68k/got-1.d
@@ -0,0 +1,19 @@
+#source: got-1.s
+#ld: -shared
+#readelf: -d -r
+
+Dynamic section at offset .* contains 9 entries:
+ Tag Type Name/Value
+ 0x00000004 \(HASH\) 0x[0-9a-f]+
+ 0x00000005 \(STRTAB\) 0x[0-9a-f]+
+ 0x00000006 \(SYMTAB\) 0x[0-9a-f]+
+ 0x0000000a \(STRSZ\) [0-9]+ \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x00000007 \(RELA\) 0x[0-9a-f]+
+ 0x00000008 \(RELASZ\) 12 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
+ Offset Info Type Sym.Value Sym. Name \+ Addend
+[0-9a-f]+ [0-9a-f]+ R_68K_GLOB_DAT 00000000 a \+ 0
diff --git a/ld/testsuite/ld-m68k/got-1.s b/ld/testsuite/ld-m68k/got-1.s
new file mode 100644
index 0000000..0cf3692
--- /dev/null
+++ b/ld/testsuite/ld-m68k/got-1.s
@@ -0,0 +1,18 @@
+#NO_APP
+ .file "got-1.c"
+ .text
+ .align 2
+ .globl foo
+ .type foo, @function
+foo:
+ link.w %fp,#0
+ move.l %a5,-(%sp)
+ lea (%pc, _GLOBAL_OFFSET_TABLE_@GOTPC), %a5
+ move.l a@GOT(%a5),%d0
+ move.l %d0,%a0
+ move.l (%a0),%d0
+ move.l (%sp)+,%a5
+ unlk %fp
+ rts
+ .size foo, .-foo
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-m68k/m68k.exp b/ld/testsuite/ld-m68k/m68k.exp
index fd98b63..69ca6ba 100644
--- a/ld/testsuite/ld-m68k/m68k.exp
+++ b/ld/testsuite/ld-m68k/m68k.exp
@@ -73,6 +73,7 @@ foreach { id sources } { a { plt1.s } b { plt1-empty.s plt1.s } } {
# 4 - 16384
# 5 - 16385
+run_dump_test "got-1"
run_dump_test "got-single-12-ok"
run_dump_test "got-single-13-er"
run_dump_test "got-negative-14-ok"