aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ChangeLog11
-rw-r--r--ld/testsuite/ld-elf/linkonce1.d12
-rw-r--r--ld/testsuite/ld-elf/linkonce1a.s3
-rw-r--r--ld/testsuite/ld-elf/linkonce1b.s17
-rw-r--r--ld/testsuite/ld-elf/linkonce2.d12
-rw-r--r--ld/testsuite/ld-i386/i386.exp1
-rw-r--r--ld/testsuite/ld-i386/pcrel16abs.d12
-rw-r--r--ld/testsuite/ld-i386/pcrel16abs.s6
8 files changed, 74 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 9493773..82c0bc9 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2007-03-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR 3958
+ * ld-elf/linkonce1.d: New.
+ * ld-elf/linkonce1a.s: New.
+ * ld-elf/linkonce1b.s: New.
+ * ld-elf/linkonce2.d: New.
+ * ld-i386/pcrel16abs.d: New.
+ * ld-i386/pcrel16abs.s: New.
+ * ld-i386/i386.exp: Run it.
+
2007-03-06 H.J. Lu <hongjiu.lu@intel.com>
PR ld/4144
diff --git a/ld/testsuite/ld-elf/linkonce1.d b/ld/testsuite/ld-elf/linkonce1.d
new file mode 100644
index 0000000..35e1787
--- /dev/null
+++ b/ld/testsuite/ld-elf/linkonce1.d
@@ -0,0 +1,12 @@
+#source: linkonce1a.s
+#source: linkonce1b.s
+#ld: -r
+#objdump: -r
+
+.*: file format .*
+
+RELOCATION RECORDS FOR \[.debug_frame\]:
+OFFSET[ ]+TYPE[ ]+VALUE[ ]*
+.*(NONE|unused).*\*ABS\*
+
+#pass
diff --git a/ld/testsuite/ld-elf/linkonce1a.s b/ld/testsuite/ld-elf/linkonce1a.s
new file mode 100644
index 0000000..5c2d8c2
--- /dev/null
+++ b/ld/testsuite/ld-elf/linkonce1a.s
@@ -0,0 +1,3 @@
+ .section .gnu.linkonce.d.dummy,"aw"
+bar:
+ .long 0
diff --git a/ld/testsuite/ld-elf/linkonce1b.s b/ld/testsuite/ld-elf/linkonce1b.s
new file mode 100644
index 0000000..fd45cec
--- /dev/null
+++ b/ld/testsuite/ld-elf/linkonce1b.s
@@ -0,0 +1,17 @@
+ .globl main
+ .globl start
+ .globl _start
+ .globl __start
+ .text
+main:
+start:
+_start:
+__start:
+ .long 0
+
+ .section .gnu.linkonce.d.dummy,"aw"
+ .long 0
+foo:
+ .long 0
+ .section .debug_frame,"",%progbits
+ .long foo
diff --git a/ld/testsuite/ld-elf/linkonce2.d b/ld/testsuite/ld-elf/linkonce2.d
new file mode 100644
index 0000000..33eb14f
--- /dev/null
+++ b/ld/testsuite/ld-elf/linkonce2.d
@@ -0,0 +1,12 @@
+#source: linkonce1a.s
+#source: linkonce1b.s
+#ld: -emit-relocs
+#objdump: -r
+
+.*: file format .*
+
+RELOCATION RECORDS FOR \[.debug_frame\]:
+OFFSET[ ]+TYPE[ ]+VALUE[ ]*
+.*(NONE|unused).*\*ABS\*
+
+#pass
diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
index ad8a610..d0d4cad 100644
--- a/ld/testsuite/ld-i386/i386.exp
+++ b/ld/testsuite/ld-i386/i386.exp
@@ -113,3 +113,4 @@ run_ld_link_tests $i386tests
run_dump_test "abs"
run_dump_test "pcrel8"
run_dump_test "pcrel16"
+run_dump_test "pcrel16abs"
diff --git a/ld/testsuite/ld-i386/pcrel16abs.d b/ld/testsuite/ld-i386/pcrel16abs.d
new file mode 100644
index 0000000..f4bfca5
--- /dev/null
+++ b/ld/testsuite/ld-i386/pcrel16abs.d
@@ -0,0 +1,12 @@
+#name: PCREL16 absolute reloc
+#as: --32
+#ld: -melf_i386 -Ttext 0xfffffff0
+#objdump: -drj.text -m i8086
+
+.*: +file format elf32-i386
+
+Disassembly of section .text:
+
+f+0 <_start>:
+f+0: e9 0d e0[ ]+jmp[ ]+ffffe000 <SEGMENT_SIZE\+0xfffee000>
+#pass
diff --git a/ld/testsuite/ld-i386/pcrel16abs.s b/ld/testsuite/ld-i386/pcrel16abs.s
new file mode 100644
index 0000000..4bf68a7
--- /dev/null
+++ b/ld/testsuite/ld-i386/pcrel16abs.s
@@ -0,0 +1,6 @@
+SEGMENT_SIZE = 0x10000
+RVECTOR = 0x00010
+.code16
+ .globl _start
+_start:
+ jmp SEGMENT_SIZE-(0x1f00 +0xf0 +RVECTOR)