mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 10:35:12 +08:00
* ld-x86-64/x86-64.exp: Add test of linking mixed 32-bit and
64-bit objects when the 32-bit object (loaded first) contains 32+ local symbols, all referenced by relocs and the 64-bit object contains a reloc that uses a symbol in the 32-bit object. * 32bit.s: New source file. * 64bit.s: New source file. * incompatible.l: New expected linker output file.
This commit is contained in:
parent
2ca0b532fd
commit
d7309e48b6
@ -1,3 +1,12 @@
|
||||
2012-01-05 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* ld-x86-64/x86-64.exp: Add test of linking mixed 32-bit and
|
||||
64-bit objects when the 32-bit object (loaded first) contains 32+
|
||||
local symbols, all referenced by relocs and the 64-bit object
|
||||
contains a reloc that uses a symbol in the 32-bit object.
|
||||
* 32bit.s: New source file.
|
||||
* 64bit.s: New source file.
|
||||
* incompatible.l: New expected linker output file.
|
||||
|
||||
For older changes see ChangeLog-2011
|
||||
|
||||
|
78
ld/testsuite/ld-x86-64/32bit.s
Normal file
78
ld/testsuite/ld-x86-64/32bit.s
Normal file
@ -0,0 +1,78 @@
|
||||
|
||||
.section .rodata.str1.1,"aMS",@progbits,1
|
||||
|
||||
.LC0: .word 1
|
||||
.LC1: .word 2
|
||||
.LC2: .word 3
|
||||
.LC3: .word 4
|
||||
.LC4: .word 5
|
||||
.LC5: .word 6
|
||||
.LC6: .word 7
|
||||
.LC7: .word 8
|
||||
.LC8: .word 9
|
||||
.LC9: .word 10
|
||||
.LC10: .word 11
|
||||
.LC11: .word 12
|
||||
.LC12: .word 13
|
||||
.LC13: .word 14
|
||||
.LC14: .word 15
|
||||
.LC15: .word 16
|
||||
.LC16: .word 17
|
||||
.LC17: .word 18
|
||||
.LC18: .word 19
|
||||
.LC19: .word 20
|
||||
.LC20: .word 21
|
||||
.LC21: .word 22
|
||||
.LC22: .word 23
|
||||
.LC23: .word 24
|
||||
.LC24: .word 25
|
||||
.LC25: .word 26
|
||||
.LC26: .word 27
|
||||
.LC27: .word 28
|
||||
.LC28: .word 29
|
||||
.LC29: .word 30
|
||||
.LC30: .word 31
|
||||
.LC31: .word 32
|
||||
.LC32: .word 33
|
||||
.LC33: .word 34
|
||||
|
||||
.text
|
||||
.p2align 4,,15
|
||||
.globl foo
|
||||
.type foo, @function
|
||||
foo:
|
||||
|
||||
leal .LC0@GOTOFF(%ecx), %eax
|
||||
leal .LC1@GOTOFF(%ecx), %eax
|
||||
leal .LC2@GOTOFF(%ecx), %eax
|
||||
leal .LC3@GOTOFF(%ecx), %eax
|
||||
leal .LC4@GOTOFF(%ecx), %eax
|
||||
leal .LC5@GOTOFF(%ecx), %eax
|
||||
leal .LC6@GOTOFF(%ecx), %eax
|
||||
leal .LC7@GOTOFF(%ecx), %eax
|
||||
leal .LC8@GOTOFF(%ecx), %eax
|
||||
leal .LC9@GOTOFF(%ecx), %eax
|
||||
leal .LC10@GOTOFF(%ecx), %eax
|
||||
leal .LC11@GOTOFF(%ecx), %eax
|
||||
leal .LC12@GOTOFF(%ecx), %eax
|
||||
leal .LC13@GOTOFF(%ecx), %eax
|
||||
leal .LC14@GOTOFF(%ecx), %eax
|
||||
leal .LC15@GOTOFF(%ecx), %eax
|
||||
leal .LC16@GOTOFF(%ecx), %eax
|
||||
leal .LC17@GOTOFF(%ecx), %eax
|
||||
leal .LC18@GOTOFF(%ecx), %eax
|
||||
leal .LC19@GOTOFF(%ecx), %eax
|
||||
leal .LC20@GOTOFF(%ecx), %eax
|
||||
leal .LC21@GOTOFF(%ecx), %eax
|
||||
leal .LC22@GOTOFF(%ecx), %eax
|
||||
leal .LC23@GOTOFF(%ecx), %eax
|
||||
leal .LC24@GOTOFF(%ecx), %eax
|
||||
leal .LC25@GOTOFF(%ecx), %eax
|
||||
leal .LC26@GOTOFF(%ecx), %eax
|
||||
leal .LC27@GOTOFF(%ecx), %eax
|
||||
leal .LC28@GOTOFF(%ecx), %eax
|
||||
leal .LC29@GOTOFF(%ecx), %eax
|
||||
leal .LC30@GOTOFF(%ecx), %eax
|
||||
leal .LC31@GOTOFF(%ecx), %eax
|
||||
leal .LC32@GOTOFF(%ecx), %eax
|
||||
leal .LC33@GOTOFF(%ecx), %eax
|
4
ld/testsuite/ld-x86-64/64bit.s
Normal file
4
ld/testsuite/ld-x86-64/64bit.s
Normal file
@ -0,0 +1,4 @@
|
||||
.text
|
||||
bar:
|
||||
call foo
|
||||
|
1
ld/testsuite/ld-x86-64/incompatible.l
Normal file
1
ld/testsuite/ld-x86-64/incompatible.l
Normal file
@ -0,0 +1 @@
|
||||
.*incompatible.*
|
@ -111,6 +111,10 @@ set x86_64tests {
|
||||
{"TLS X32 LD->LE transition" "-melf32_x86_64"
|
||||
"--x32" {tlsld2.s}
|
||||
{{objdump -dwr tlsld2.dd}} "tlsld2"}
|
||||
|
||||
{"build 32-bit object with 33 locals" "-e 0" "--32" {32bit.s} {{ ld incompatible.l }} "dummy" }
|
||||
{"build 64-bit object" "-e 0 --defsym foo=1" "--64" {64bit.s} {} "dummy" }
|
||||
{"link mixed objects" "-e 0 tmpdir/32bit.o tmpdir/64bit.o" "" {} { { ld incompatible.l } } "mixed"}
|
||||
}
|
||||
|
||||
run_ld_link_tests $x86_64tests
|
||||
|
Loading…
Reference in New Issue
Block a user