diff options
author | Bob Wilson <bob.wilson@acm.org> | 2007-04-12 15:52:02 +0000 |
---|---|---|
committer | Bob Wilson <bob.wilson@acm.org> | 2007-04-12 15:52:02 +0000 |
commit | e1e5c0b5eb58ca69f19feca1b13bedc9fc256e84 (patch) | |
tree | f1849969021349cf3d9389153c3678b21158e6a4 /bfd/elf32-xtensa.c | |
parent | e6590a1b7e15e9f2f2527603f2e18bd3d4da62a6 (diff) | |
download | fsf-binutils-gdb-e1e5c0b5eb58ca69f19feca1b13bedc9fc256e84.zip fsf-binutils-gdb-e1e5c0b5eb58ca69f19feca1b13bedc9fc256e84.tar.gz fsf-binutils-gdb-e1e5c0b5eb58ca69f19feca1b13bedc9fc256e84.tar.bz2 |
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.
Diffstat (limited to 'bfd/elf32-xtensa.c')
-rw-r--r-- | bfd/elf32-xtensa.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c index 1d6fb42..10e00aa 100644 --- a/bfd/elf32-xtensa.c +++ b/bfd/elf32-xtensa.c @@ -969,6 +969,19 @@ elf_xtensa_gc_mark_hook (asection *sec, struct elf_link_hash_entry *h, 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) switch (ELF32_R_TYPE (rel->r_info)) { |