Add experimental support for --gc-sections with COFF and PE based targets.
authorKai Tietz <ktietz@redhat.com>
Fri, 3 Jul 2015 14:50:29 +0000 (15:50 +0100)
committerNick Clifton <nickc@redhat.com>
Fri, 3 Jul 2015 14:50:29 +0000 (15:50 +0100)
commit0f088b2a9417b1d4ed597849ffa671eba25f5051
tree71be9adb049a632d7c572c0a8d82ad5ca8539de9
parentb6b3dd8f31c96b6f7ba26de1508c3c1b2fd437f9
Add experimental support for --gc-sections with COFF and PE based targets.

PR ld/11539
bfd * coffcode.h (coff_bfd_gc_sections): Define default
to bfd_coff_gc_sections function.
* cofflink.c (init_reloc_cookie): Copy and adjust coff
related code about gc-sections from elflink.c to here.
(fini_reloc_cookie): Likewise.
(init_reloc_cookie_rels): Likewise.
(fini_reloc_cookie_rels): Likewise.
(init_reloc_cookie_for_section): Likewise.
(fini_reloc_cookie_for_section): Likewise.
(_bfd_coff_gc_mark_hook): Likewise.
(_bfd_coff_gc_mark_rsec): Likewise.
(_bfd_coff_gc_mark_reloc): Likewise.
(_bfd_coff_gc_mark): Likewise.
(_bfd_coff_gc_mark_extra_sections): Likewise.
(coff_gc_sweep_symbol_info): Likewise.
(coff_gc_sweep_symbol): Likewise.
(gc_sweep_hook_fn): Likewise.
(coff_gc_sweep): Likewise.
(bfd_coff_gc_sections): Likewise.
(_bfd_coff_gc_keep): Likewise.
* libcoff.h (coff_reloc_cookie): New struct.
(bfd_coff_gc_sections): New prototype.
(coff_gc_mark_hook_fn): New type.

ld * scripttempl/pep.sc: Mark .idata*, .CRT*, .tls*,
.rsrc*, .init, .ctor*, .dtor*, .fini, .jcr,
.eh_frame, .pdata. .xdata, and .gcc_except_table sections
as KEEP.
* scripttempl/pe.sc: Likewise.
12 files changed:
bfd/ChangeLog
bfd/coffcode.h
bfd/coffgen.c
bfd/libcoff-in.h
bfd/libcoff.h
ld/ChangeLog
ld/NEWS
ld/ld.texinfo
ld/scripttempl/pe.sc
ld/scripttempl/pep.sc
ld/testsuite/ChangeLog
ld/testsuite/lib/ld-lib.exp