mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 02:24:46 +08:00
Check relocations in note sections for --gc-sections.
bfd/ 2011-06-08 H.J. Lu <hongjiu.lu@intel.com> PR ld/12851 * elflink.c (elf_gc_sweep): Don't check SHT_NOTE sections here. (bfd_elf_gc_sections): Also check SHT_NOTE sections. ld/testsuite/ 2011-06-08 H.J. Lu <hongjiu.lu@intel.com> PR ld/12851 * ld-elf/pr12851.d: New. * ld-elf/pr12851.s: Likewise.
This commit is contained in:
parent
6122085426
commit
2400775011
@ -1,3 +1,9 @@
|
||||
2011-06-08 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/12851
|
||||
* elflink.c (elf_gc_sweep): Don't check SHT_NOTE sections here.
|
||||
(bfd_elf_gc_sections): Also check SHT_NOTE sections.
|
||||
|
||||
2011-06-08 Tristan Gingold <gingold@adacore.com>
|
||||
|
||||
* makefile.vms (OBJS): Add elfxx-ia64.obj
|
||||
|
@ -11728,10 +11728,9 @@ elf_gc_sweep (bfd *abfd, struct bfd_link_info *info)
|
||||
o->gc_mark = first->gc_mark;
|
||||
}
|
||||
else if ((o->flags & (SEC_DEBUGGING | SEC_LINKER_CREATED)) != 0
|
||||
|| (o->flags & (SEC_ALLOC | SEC_LOAD | SEC_RELOC)) == 0
|
||||
|| elf_section_data (o)->this_hdr.sh_type == SHT_NOTE)
|
||||
|| (o->flags & (SEC_ALLOC | SEC_LOAD | SEC_RELOC)) == 0)
|
||||
{
|
||||
/* Keep debug, special and SHT_NOTE sections. */
|
||||
/* Keep debug and special sections. */
|
||||
o->gc_mark = 1;
|
||||
}
|
||||
|
||||
@ -12013,8 +12012,12 @@ bfd_elf_gc_sections (bfd *abfd, struct bfd_link_info *info)
|
||||
if (bfd_get_flavour (sub) != bfd_target_elf_flavour)
|
||||
continue;
|
||||
|
||||
/* Also keep SHT_NOTE sections. */
|
||||
for (o = sub->sections; o != NULL; o = o->next)
|
||||
if ((o->flags & (SEC_EXCLUDE | SEC_KEEP)) == SEC_KEEP && !o->gc_mark)
|
||||
if ((o->flags & SEC_EXCLUDE) == 0
|
||||
&& ((o->flags & SEC_KEEP) != 0
|
||||
|| elf_section_data (o)->this_hdr.sh_type == SHT_NOTE)
|
||||
&& !o->gc_mark)
|
||||
if (!_bfd_elf_gc_mark (info, o, gc_mark_hook))
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -1,3 +1,9 @@
|
||||
2011-06-08 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/12851
|
||||
* ld-elf/pr12851.d: New.
|
||||
* ld-elf/pr12851.s: Likewise.
|
||||
|
||||
2011-06-07 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* ld-elf/elf.exp: Build symbol3.a and symbol3w.a.
|
||||
|
14
ld/testsuite/ld-elf/pr12851.d
Normal file
14
ld/testsuite/ld-elf/pr12851.d
Normal file
@ -0,0 +1,14 @@
|
||||
#source: pr12851.s
|
||||
#source: start.s
|
||||
#ld: --gc-sections
|
||||
#readelf: -s --wide
|
||||
#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* or32-*-* pj*-*-*
|
||||
#notarget: alpha-*-* hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-*
|
||||
#xfail: cr16-*-* crx-*-*
|
||||
# generic linker targets don't support --gc-sections, nor do a bunch of others
|
||||
# cr16 and crx use non-standard scripts with memory regions, which don't play
|
||||
# well with unique group sections under ld -r.
|
||||
|
||||
#...
|
||||
+.* _.stapsdt.base
|
||||
#pass
|
5
ld/testsuite/ld-elf/pr12851.s
Normal file
5
ld/testsuite/ld-elf/pr12851.s
Normal file
@ -0,0 +1,5 @@
|
||||
.section .note.stapsdt,"?","note"
|
||||
.dc.a _.stapsdt.base
|
||||
.section .stapsdt.base,"a","progbits"
|
||||
_.stapsdt.base: .space 1
|
||||
.size _.stapsdt.base,1
|
Loading…
Reference in New Issue
Block a user