mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-03-01 13:26:47 +08:00
or1k: Do not override section for non-TLS symbols.
Outgoing section for relocations was computed by setting a shared pointer to which section should be used. For TLS this was overriden to use .rela.got since they use GOT entries but since the pointer is per section that whole section was relocated to .rela.got, even non-TLS relocations. * elf32-or1k.c: Fix a bug where non-TLS relocations would be forced into .rela.got if it contained TLS relocations as well.
This commit is contained in:
parent
ca4f7f8beb
commit
230977a4a5
@ -1,3 +1,8 @@
|
||||
2014-04-29 Christian Svensson <blue@cmd.nu>
|
||||
|
||||
* elf32-or1k.c: Fix a bug where non-TLS relocations would be forced
|
||||
into .rela.got if it contained TLS relocations as well.
|
||||
|
||||
2014-04-28 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR ld/16821
|
||||
|
@ -1112,6 +1112,8 @@ or1k_elf_relocate_section (bfd *output_bfd,
|
||||
bfd_byte *loc;
|
||||
int dynamic;
|
||||
|
||||
sreloc = bfd_get_section_by_name (dynobj, ".rela.got");
|
||||
|
||||
/* Mark as TLS related GOT entry by setting
|
||||
bit 2 as well as bit 1. */
|
||||
if (h != NULL)
|
||||
@ -1541,15 +1543,6 @@ or1k_elf_check_relocs (bfd *abfd,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* TLS specific. */
|
||||
if (ELF32_R_TYPE (rel->r_info) >= R_OR1K_TLS_GD_HI16 &&
|
||||
ELF32_R_TYPE (rel->r_info) <= R_OR1K_TLS_IE_LO16)
|
||||
{
|
||||
/* Set which rela section to use. */
|
||||
elf_section_data (sec)->sreloc =
|
||||
bfd_get_section_by_name (dynobj, ".rela.got");;
|
||||
}
|
||||
|
||||
if (ELF32_R_TYPE (rel->r_info) != R_OR1K_GOTOFF_HI16 &&
|
||||
ELF32_R_TYPE (rel->r_info) != R_OR1K_GOTOFF_LO16)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user