* elf32-i386.c (elf_i386_relocate_section): Zero section contents
for R_386_32 and R_386_PC32 relocs against symbols defined in discarded sections.
This commit is contained in:
parent
b18c562e39
commit
f855931bbd
|
@ -1,9 +1,15 @@
|
||||||
|
2004-08-25 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* elf32-i386.c (elf_i386_relocate_section): Zero section contents
|
||||||
|
for R_386_32 and R_386_PC32 relocs against symbols defined in
|
||||||
|
discarded sections.
|
||||||
|
|
||||||
2004-08-25 Dmitry Diky <diwil@spec.ru>
|
2004-08-25 Dmitry Diky <diwil@spec.ru>
|
||||||
|
|
||||||
* reloc.c (BFD_RELOC_MSP430_2X_PCREL,BFD_RELOC_MSP430_RL_PCREL):
|
* reloc.c (BFD_RELOC_MSP430_2X_PCREL,BFD_RELOC_MSP430_RL_PCREL):
|
||||||
Add new relocations.
|
Add new relocations.
|
||||||
* bfd-in2.h: Regenerate.
|
* bfd-in2.h: Regenerate.
|
||||||
* libbfd.h: Regenerate..
|
* libbfd.h: Regenerate.
|
||||||
* elf32-msp430.c: Clean-up code.
|
* elf32-msp430.c: Clean-up code.
|
||||||
(elf_msp430_howto_table): Add new relocation entries.
|
(elf_msp430_howto_table): Add new relocation entries.
|
||||||
(bfd_elf32_bfd_reloc_type_lookup): New relocation handlers.
|
(bfd_elf32_bfd_reloc_type_lookup): New relocation handlers.
|
||||||
|
|
|
@ -2319,8 +2319,19 @@ elf_i386_relocate_section (bfd *output_bfd,
|
||||||
/* r_symndx will be zero only for relocs against symbols
|
/* r_symndx will be zero only for relocs against symbols
|
||||||
from removed linkonce sections, or sections discarded by
|
from removed linkonce sections, or sections discarded by
|
||||||
a linker script. */
|
a linker script. */
|
||||||
if (r_symndx == 0
|
if (r_symndx == 0)
|
||||||
|| (input_section->flags & SEC_ALLOC) == 0)
|
{
|
||||||
|
/* Zero the section contents. eh_frame generated by old
|
||||||
|
versions of gcc isn't edited by elf-eh-frame.c, so
|
||||||
|
FDEs for discarded linkonce functions might remain.
|
||||||
|
Putting zeros here will zero such FDE's address range.
|
||||||
|
This is a hint to unwinders and other consumers of
|
||||||
|
exception handling info that the FDE is invalid. */
|
||||||
|
bfd_put_32 (input_bfd, 0, contents + rel->r_offset);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((input_section->flags & SEC_ALLOC) == 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if ((info->shared
|
if ((info->shared
|
||||||
|
|
Loading…
Reference in New Issue