Fix the genetation of GOT entries for the Microblaze target.
PR target/19516 * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): Always produce a RELATIVE reloc for a local symbol.
This commit is contained in:
parent
c955ae7389
commit
47993b4af1
@ -1,3 +1,9 @@
|
||||
2016-02-23 Rich Felker <bugdal@aerifal.cx>
|
||||
|
||||
PR target/19516
|
||||
* elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol):
|
||||
Always produce a RELATIVE reloc for a local symbol.
|
||||
|
||||
2016-02-23 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
Fix test-case ld-elf/pr19617b
|
||||
|
@ -3288,7 +3288,7 @@ microblaze_elf_finish_dynamic_symbol (bfd *output_bfd,
|
||||
BFD_ASSERT (sgot != NULL && srela != NULL);
|
||||
|
||||
offset = (sgot->output_section->vma + sgot->output_offset
|
||||
+ (h->got.offset &~ (bfd_vma) 1));
|
||||
+ (h->got.offset &~ (bfd_vma) 1));
|
||||
|
||||
/* If this is a -Bsymbolic link, and the symbol is defined
|
||||
locally, we just want to emit a RELATIVE reloc. Likewise if
|
||||
@ -3296,8 +3296,8 @@ microblaze_elf_finish_dynamic_symbol (bfd *output_bfd,
|
||||
The entry in the global offset table will already have been
|
||||
initialized in the relocate_section function. */
|
||||
if (bfd_link_pic (info)
|
||||
&& (info->symbolic || h->dynindx == -1)
|
||||
&& h->def_regular)
|
||||
&& ((info->symbolic && h->def_regular)
|
||||
|| h->dynindx == -1))
|
||||
{
|
||||
asection *sec = h->root.u.def.section;
|
||||
microblaze_elf_output_dynamic_relocation (output_bfd,
|
||||
|
Loading…
Reference in New Issue
Block a user