aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2010-08-22 19:14:25 +0000
committerH.J. Lu <hjl.tools@gmail.com>2010-08-22 19:14:25 +0000
commit39334f3a4789eeaf07b8d74fa40e01cd59413831 (patch)
treeea053c019d193adbf243b67c6e869644cbd088d4 /ld
parenta654efd60a7daee081082be0dae2a006759b6ea8 (diff)
downloadgdb-39334f3a4789eeaf07b8d74fa40e01cd59413831.zip
gdb-39334f3a4789eeaf07b8d74fa40e01cd59413831.tar.gz
gdb-39334f3a4789eeaf07b8d74fa40e01cd59413831.tar.bz2
Don't check relocation if input ELF object ID doesn't match output.
bfd/ 2010-08-22 H.J. Lu <hongjiu.lu@intel.com> PR ld/11933 * elflink.c (elf_link_add_object_symbols): Don't check relocation if input ELF object ID doesn't match output. ld/testsuite/ 2010-08-22 H.J. Lu <hongjiu.lu@intel.com> PR ld/11933 * ld-x86-64/mixed1a.s: New. * ld-x86-64/mixed1b.s: Likewise. * ld-x86-64/mixed2a.s: Likewise. * ld-x86-64/mixed2b.s: Likewise. * ld-x86-64/x86-64.exp: Text mixed x86_64 and i386 inputs.
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ChangeLog10
-rw-r--r--ld/testsuite/ld-x86-64/mixed1a.s6
-rw-r--r--ld/testsuite/ld-x86-64/mixed1b.s10
-rw-r--r--ld/testsuite/ld-x86-64/mixed2a.s7
-rw-r--r--ld/testsuite/ld-x86-64/mixed2b.s7
-rw-r--r--ld/testsuite/ld-x86-64/x86-64.exp31
6 files changed, 71 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 5a7bff8..df69b37 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2010-08-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/11933
+ * ld-x86-64/mixed1a.s: New.
+ * ld-x86-64/mixed1b.s: Likewise.
+ * ld-x86-64/mixed2a.s: Likewise.
+ * ld-x86-64/mixed2b.s: Likewise.
+
+ * ld-x86-64/x86-64.exp: Text mixed x86_64 and i386 inputs.
+
2010-08-20 Maciej W. Rozycki <macro@codesourcery.com>
* ld-sh/sh.exp: Add missing newline.
diff --git a/ld/testsuite/ld-x86-64/mixed1a.s b/ld/testsuite/ld-x86-64/mixed1a.s
new file mode 100644
index 0000000..07e0ae8
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/mixed1a.s
@@ -0,0 +1,6 @@
+ .text
+.globl _start
+ .type _start, @function
+_start:
+ cmpq $0, foo(%rip)
+ .size _start, .-_start
diff --git a/ld/testsuite/ld-x86-64/mixed1b.s b/ld/testsuite/ld-x86-64/mixed1b.s
new file mode 100644
index 0000000..66bb38f
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/mixed1b.s
@@ -0,0 +1,10 @@
+.globl foo
+ .section .rodata.str1.1,"aMS",@progbits,1
+.LC0:
+ .string "Hello"
+ .data
+ .align 4
+ .type foo, @object
+ .size foo, 4
+foo:
+ .long .LC0
diff --git a/ld/testsuite/ld-x86-64/mixed2a.s b/ld/testsuite/ld-x86-64/mixed2a.s
new file mode 100644
index 0000000..a597bb3
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/mixed2a.s
@@ -0,0 +1,7 @@
+ .text
+ .p2align 4,,15
+.globl _start
+ .type _start, @function
+_start:
+ movl foo(%rip), %eax
+ .size _start, .-_start
diff --git a/ld/testsuite/ld-x86-64/mixed2b.s b/ld/testsuite/ld-x86-64/mixed2b.s
new file mode 100644
index 0000000..3cac801
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/mixed2b.s
@@ -0,0 +1,7 @@
+.globl foo
+ .data
+ .align 4
+ .type foo, @object
+ .size foo, 4
+foo:
+ .long 1
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index ed5d8dc..f5d1b0b 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -75,10 +75,41 @@ set x86_64tests {
{"TLS IE->LE transition" "-melf_x86_64"
"--64" {tlsie1.s}
{{objdump -dwr tlsie1.dd}} "tlsie1"}
+ {"Helper 64bit object 1" "-r -melf_x86_64"
+ "--64" {mixed1a.s} {} "libmixe1a.o"}
+ {"Helper 32bit object 1" "-r -melf_i386"
+ "--32" {mixed1b.s} {} "libmixe1b.o"}
+ {"Helper 64bit object 2" "-r -melf_x86_64"
+ "--64" {mixed2a.s} {} "libmixe2a.o"}
+ {"Helper 32bit object 2" "-r -melf_i386"
+ "--32" {mixed2b.s} {} "libmixe2b.o"}
}
run_ld_link_tests $x86_64tests
+global link_output
+global ld
+
+set test_namename "Mixed x86_64 and i386 input test 1"
+set test mixed1
+if { ![ld_simple_link $ld tmpdir/$test "-melf_x86_64 tmpdir/${test}a.o tmpdir/${test}b.o"] } {
+ if [string match "*i386 architecture of input file `tmpdir/${test}b.o' is incompatible with i386:x86-64 output*" $link_output] {
+ pass "$test_name"
+ } {
+ fail "$test_name"
+ }
+}
+
+set test_namename "Mixed x86_64 and i386 input test 2"
+set test mixed2
+if { ![ld_simple_link $ld tmpdir/$test "-melf_x86_64 tmpdir/${test}a.o tmpdir/${test}b.o"] } {
+ if [string match "*i386 architecture of input file `tmpdir/${test}b.o' is incompatible with i386:x86-64 output*" $link_output] {
+ pass "$test_name"
+ } {
+ fail "$test_name"
+ }
+}
+
run_dump_test "abs"
run_dump_test "abs-l1om"
run_dump_test "pcrel8"