mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-20 06:53:59 +08:00
* ldmain.c (main): Initialise print_gc_sections field of link_info structure.
* lexsup.c: Add --print-gc-sections and --no-print-gc-sections switches. * ld.texinfo: Document new switches. * NEWS: Mention new switches. * bfdlink.h (struct bfd_link_info): New field: print_gc_sections. * elflink.c (elf_gc_sweep): If info.print_gc_sections is true, list removed sections to stderr.
This commit is contained in:
parent
55e6e39790
commit
c17d87de17
@ -1,3 +1,8 @@
|
||||
2006-08-04 Marcelo Tosatti <marcelo@kvack.org>
|
||||
|
||||
* elflink.c (elf_gc_sweep): If info.print_gc_sections is true,
|
||||
list removed sections to stderr.
|
||||
|
||||
2006-08-04 Richard Sandiford <richard@codesourcery.com>
|
||||
Kazu Hirata <kazu@codesourcery.com>
|
||||
Phil Edwards <phil@codesourcery.com>
|
||||
|
@ -9356,7 +9356,8 @@ _bfd_elf_gc_mark (struct bfd_link_info *info,
|
||||
|
||||
/* Sweep symbols in swept sections. Called via elf_link_hash_traverse. */
|
||||
|
||||
struct elf_gc_sweep_symbol_info {
|
||||
struct elf_gc_sweep_symbol_info
|
||||
{
|
||||
struct bfd_link_info *info;
|
||||
void (*hide_symbol) (struct bfd_link_info *, struct elf_link_hash_entry *,
|
||||
bfd_boolean);
|
||||
@ -9419,6 +9420,9 @@ elf_gc_sweep (bfd *abfd, struct bfd_link_info *info)
|
||||
to remove a section from the output. */
|
||||
o->flags |= SEC_EXCLUDE;
|
||||
|
||||
if (info->print_gc_sections == TRUE)
|
||||
_bfd_error_handler (_("Removing unused section '%s' in file '%B'"), sub, o->name);
|
||||
|
||||
/* But we also have to update some of the relocation
|
||||
info we collected before. */
|
||||
if (gc_sweep_hook
|
||||
|
@ -1,3 +1,7 @@
|
||||
2006-08-04 Marcelo Tosatti <marcelo@kvack.org>
|
||||
|
||||
* bfdlink.h (struct bfd_link_info): New field: print_gc_sections.
|
||||
|
||||
2006-07-10 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* bfdlink.h (struct bfd_link_info): Add emit_hash and
|
||||
|
@ -324,6 +324,9 @@ struct bfd_link_info
|
||||
/* TRUE if unreferenced sections should be removed. */
|
||||
unsigned int gc_sections: 1;
|
||||
|
||||
/* TRUE if user shoudl be informed of removed unreferenced sections. */
|
||||
unsigned int print_gc_sections: 1;
|
||||
|
||||
/* TRUE if .hash section should be created. */
|
||||
unsigned int emit_hash: 1;
|
||||
|
||||
|
@ -1,3 +1,12 @@
|
||||
2006-08-04 Marcelo Tosatti <marcelo@kvack.org>
|
||||
|
||||
* ldmain.c (main): Initialise print_gc_sections field of link_info
|
||||
structure.
|
||||
* lexsup.c: Add --print-gc-sections and --no-print-gc-sections
|
||||
switches.
|
||||
* ld.texinfo: Document new switches.
|
||||
* NEWS: Mention new switches.
|
||||
|
||||
2006-08-04 Richard Sandiford <richard@codesourcery.com>
|
||||
Kazu Hirata <kazu@codesourcery.com>
|
||||
Phil Edwards <phil@codesourcery.com>
|
||||
|
4
ld/NEWS
4
ld/NEWS
@ -1,4 +1,8 @@
|
||||
-*- text -*-
|
||||
* New switch: --print-gc-sections to list any sections removed by garabge
|
||||
collection.
|
||||
|
||||
Changes in 2.17:
|
||||
|
||||
* Support for the Infineon XC16X has been added by KPIT Cummins Infosystems.
|
||||
|
||||
|
@ -1230,14 +1230,26 @@ it ends in a @code{.exe} suffix.
|
||||
@kindex --gc-sections
|
||||
@kindex --no-gc-sections
|
||||
@cindex garbage collection
|
||||
@item --no-gc-sections
|
||||
@itemx --gc-sections
|
||||
@item --gc-sections
|
||||
@itemx --no-gc-sections
|
||||
Enable garbage collection of unused input sections. It is ignored on
|
||||
targets that do not support this option. This option is not compatible
|
||||
with @samp{-r}. The default behaviour (of not performing this garbage
|
||||
collection) can be restored by specifying @samp{--no-gc-sections} on
|
||||
the command line.
|
||||
|
||||
@kindex --print-gc-sections
|
||||
@kindex --no-print-gc-sections
|
||||
@cindex garbage collection
|
||||
@item --print-gc-sections
|
||||
@itemx --no-print-gc-sections
|
||||
List all sections removed by garbage collection. The listing is
|
||||
printed on stderr. This option is only effective if garbage
|
||||
collection has been enabled via the @samp{--gc-sections}) option. The
|
||||
default behaviour (of not listing the sections that are removed) can
|
||||
be restored by specifying @samp{--no-print-gc-sections} on the command
|
||||
line.
|
||||
|
||||
@cindex help
|
||||
@cindex usage
|
||||
@kindex --help
|
||||
|
@ -318,6 +318,7 @@ main (int argc, char **argv)
|
||||
link_info.relax_pass = 1;
|
||||
link_info.warn_shared_textrel = FALSE;
|
||||
link_info.gc_sections = FALSE;
|
||||
link_info.print_gc_sections = FALSE;
|
||||
|
||||
config.maxpagesize = 0;
|
||||
config.commonpagesize = 0;
|
||||
|
14
ld/lexsup.c
14
ld/lexsup.c
@ -124,6 +124,8 @@ enum option_values
|
||||
OPTION_FORCE_EXE_SUFFIX,
|
||||
OPTION_GC_SECTIONS,
|
||||
OPTION_NO_GC_SECTIONS,
|
||||
OPTION_PRINT_GC_SECTIONS,
|
||||
OPTION_NO_PRINT_GC_SECTIONS,
|
||||
OPTION_HASH_SIZE,
|
||||
OPTION_CHECK_SECTIONS,
|
||||
OPTION_NO_CHECK_SECTIONS,
|
||||
@ -370,6 +372,12 @@ static const struct ld_option ld_options[] =
|
||||
{ {"no-gc-sections", no_argument, NULL, OPTION_NO_GC_SECTIONS},
|
||||
'\0', NULL, N_("Don't remove unused sections (default)"),
|
||||
TWO_DASHES },
|
||||
{ {"print-gc-sections", no_argument, NULL, OPTION_PRINT_GC_SECTIONS},
|
||||
'\0', NULL, N_("List removed unused sections on stderr"),
|
||||
TWO_DASHES },
|
||||
{ {"no-print-gc-sections", no_argument, NULL, OPTION_NO_PRINT_GC_SECTIONS},
|
||||
'\0', NULL, N_("Do not list removed unused sections"),
|
||||
TWO_DASHES },
|
||||
{ {"hash-size=<NUMBER>", required_argument, NULL, OPTION_HASH_SIZE},
|
||||
'\0', NULL, N_("Set default hash table size close to <NUMBER>"),
|
||||
TWO_DASHES },
|
||||
@ -812,6 +820,9 @@ parse_args (unsigned argc, char **argv)
|
||||
case OPTION_GC_SECTIONS:
|
||||
link_info.gc_sections = TRUE;
|
||||
break;
|
||||
case OPTION_PRINT_GC_SECTIONS:
|
||||
link_info.print_gc_sections = TRUE;
|
||||
break;
|
||||
case OPTION_HELP:
|
||||
help ();
|
||||
xexit (0);
|
||||
@ -855,6 +866,9 @@ parse_args (unsigned argc, char **argv)
|
||||
case OPTION_NO_GC_SECTIONS:
|
||||
link_info.gc_sections = FALSE;
|
||||
break;
|
||||
case OPTION_NO_PRINT_GC_SECTIONS:
|
||||
link_info.print_gc_sections = FALSE;
|
||||
break;
|
||||
case OPTION_NO_KEEP_MEMORY:
|
||||
link_info.keep_memory = FALSE;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user