diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2010-08-22 19:14:25 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2010-08-22 19:14:25 +0000 |
commit | 39334f3a4789eeaf07b8d74fa40e01cd59413831 (patch) | |
tree | ea053c019d193adbf243b67c6e869644cbd088d4 /ld | |
parent | a654efd60a7daee081082be0dae2a006759b6ea8 (diff) | |
download | binutils-39334f3a4789eeaf07b8d74fa40e01cd59413831.zip binutils-39334f3a4789eeaf07b8d74fa40e01cd59413831.tar.gz binutils-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/ChangeLog | 10 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/mixed1a.s | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/mixed1b.s | 10 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/mixed2a.s | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/mixed2b.s | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/x86-64.exp | 31 |
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" |