bfd/
* elf32-xtensa.c (elf_xtensa_gc_mark_hook): Don't follow references from Xtensa property sections. ld/ * emulparams/elf32xtensa.sh (OTHER_SECTIONS): KEEP property sections.
This commit is contained in:
parent
e6590a1b7e
commit
e1e5c0b5eb
|
@ -1,3 +1,8 @@
|
||||||
|
2007-04-12 Bob Wilson <bob.wilson@acm.org>
|
||||||
|
|
||||||
|
* elf32-xtensa.c (elf_xtensa_gc_mark_hook): Don't follow references
|
||||||
|
from Xtensa property sections.
|
||||||
|
|
||||||
2007-04-12 Alan Modra <amodra@bigpond.net.au>
|
2007-04-12 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* elf32-spu.c (needs_ovl_stub): Test that spu_elf_section_data
|
* elf32-spu.c (needs_ovl_stub): Test that spu_elf_section_data
|
||||||
|
|
|
@ -969,6 +969,19 @@ elf_xtensa_gc_mark_hook (asection *sec,
|
||||||
struct elf_link_hash_entry *h,
|
struct elf_link_hash_entry *h,
|
||||||
Elf_Internal_Sym *sym)
|
Elf_Internal_Sym *sym)
|
||||||
{
|
{
|
||||||
|
/* Property sections are marked "KEEP" in the linker scripts, but they
|
||||||
|
should not cause other sections to be marked. (This approach relies
|
||||||
|
on elf_xtensa_discard_info to remove property table entries that
|
||||||
|
describe discarded sections. Alternatively, it might be more
|
||||||
|
efficient to avoid using "KEEP" in the linker scripts and instead use
|
||||||
|
the gc_mark_extra_sections hook to mark only the property sections
|
||||||
|
that describe marked sections. That alternative does not work well
|
||||||
|
with the current property table sections, which do not correspond
|
||||||
|
one-to-one with the sections they describe, but that should be fixed
|
||||||
|
someday.) */
|
||||||
|
if (xtensa_is_property_section (sec))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
if (h != NULL)
|
if (h != NULL)
|
||||||
switch (ELF32_R_TYPE (rel->r_info))
|
switch (ELF32_R_TYPE (rel->r_info))
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
2007-04-12 Bob Wilson <bob.wilson@acm.org>
|
||||||
|
|
||||||
|
* emulparams/elf32xtensa.sh (OTHER_SECTIONS): KEEP property sections.
|
||||||
|
|
||||||
2007-04-10 Richard Henderson <rth@redhat.com>
|
2007-04-10 Richard Henderson <rth@redhat.com>
|
||||||
|
|
||||||
* ldlang.c (relax_sections): Initialize and increment
|
* ldlang.c (relax_sections): Initialize and increment
|
||||||
|
|
|
@ -36,7 +36,7 @@ OTHER_SDATA_SECTIONS="
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
OTHER_SECTIONS="
|
OTHER_SECTIONS="
|
||||||
.xt.lit 0 : { *(.xt.lit${RELOCATING+ .xt.lit.* .gnu.linkonce.p.*}) }
|
.xt.lit 0 : { KEEP (*(.xt.lit${RELOCATING+ .xt.lit.* .gnu.linkonce.p.*})) }
|
||||||
.xt.insn 0 : { *(.xt.insn${RELOCATING+ .gnu.linkonce.x.*}) }
|
.xt.insn 0 : { KEEP (*(.xt.insn${RELOCATING+ .gnu.linkonce.x.*})) }
|
||||||
.xt.prop 0 : { *(.xt.prop${RELOCATING+ .xt.prop.* .gnu.linkonce.prop.*}) }
|
.xt.prop 0 : { KEEP (*(.xt.prop${RELOCATING+ .xt.prop.* .gnu.linkonce.prop.*})) }
|
||||||
"
|
"
|
||||||
|
|
Loading…
Reference in New Issue