mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-23 13:21:43 +08:00
Resolve size relocation with copy relocation
We can resolve size relocation against symbol which needs copy relocation when building executable. bfd/ PR ld/20550 * elf64-x86-64.c (elf_x86_64_relocate_section): Resolve size relocation with copy relocation when building executable. ld/ PR ld/20550 * testsuite/ld-x86-64/pr20550a.s: New file. * testsuite/ld-x86-64/pr20550b.s: Likewise. * testsuite/ld-x86-64/x86-64.exp (x86_64tests): Add tests for PR ld/20550.
This commit is contained in:
parent
22d6c51be8
commit
d8457a04b7
@ -1,3 +1,9 @@
|
||||
2016-09-06 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/20550
|
||||
* elf64-x86-64.c (elf_x86_64_relocate_section): Resolve size
|
||||
relocation with copy relocation when building executable.
|
||||
|
||||
2016-09-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
|
||||
|
||||
PR ld/20545
|
||||
|
@ -4818,7 +4818,9 @@ direct:
|
||||
&& (h->needs_copy
|
||||
|| eh->needs_copy
|
||||
|| h->root.type == bfd_link_hash_undefined)
|
||||
&& IS_X86_64_PCREL_TYPE (r_type))
|
||||
&& (IS_X86_64_PCREL_TYPE (r_type)
|
||||
|| r_type == R_X86_64_SIZE32
|
||||
|| r_type == R_X86_64_SIZE64))
|
||||
&& (h == NULL
|
||||
|| ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
|
||||
&& !resolved_to_zero)
|
||||
|
@ -1,3 +1,11 @@
|
||||
2016-09-06 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/20550
|
||||
* testsuite/ld-x86-64/pr20550a.s: New file.
|
||||
* testsuite/ld-x86-64/pr20550b.s: Likewise.
|
||||
* testsuite/ld-x86-64/x86-64.exp (x86_64tests): Add tests for
|
||||
PR ld/20550.
|
||||
|
||||
2016-09-06 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* Makefile.am (CFLAGS_FOR_TARGET): Define as a copy of CFLAGS but
|
||||
|
6
ld/testsuite/ld-x86-64/pr20550a.s
Normal file
6
ld/testsuite/ld-x86-64/pr20550a.s
Normal file
@ -0,0 +1,6 @@
|
||||
.text
|
||||
.global _start
|
||||
_start:
|
||||
movabsq $strings@SIZE, %rdx
|
||||
.section .data.rel,"aw",@progbits
|
||||
.quad strings
|
10
ld/testsuite/ld-x86-64/pr20550b.s
Normal file
10
ld/testsuite/ld-x86-64/pr20550b.s
Normal file
@ -0,0 +1,10 @@
|
||||
.globl strings
|
||||
.section .rodata
|
||||
.LC0:
|
||||
.string "test"
|
||||
.section .data.rel.local,"aw",@progbits
|
||||
.align 8
|
||||
.type strings, @object
|
||||
.size strings, 8
|
||||
strings:
|
||||
.quad .LC0
|
@ -207,6 +207,12 @@ set x86_64tests {
|
||||
"--64" { pr19827a.S } {{readelf {-rW} pr19827.rd}} "pr19827.so"}
|
||||
{"Build pr19969.so" "-melf_x86_64 -shared" ""
|
||||
"--64" { pr19969a.S } {} "pr19969.so"}
|
||||
{"Build pr20550a.o" "" ""
|
||||
"--64" { pr20550a.s }}
|
||||
{"Build pr20550b.so" "-melf_x86_64 -shared" ""
|
||||
"--64" { pr20550b.s } {} "pr20550b.so"}
|
||||
{"Build pr20550" "-melf_x86_64 -pie tmpdir/pr20550a.o tmpdir/pr20550b.so" ""
|
||||
"--64" { dummy.s } {} "pr20550"}
|
||||
}
|
||||
|
||||
# So as to avoid rewriting every last test case here in a nacl variant,
|
||||
|
Loading…
Reference in New Issue
Block a user