diff options
author | Nick Clifton <nickc@redhat.com> | 2006-08-04 14:53:26 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2006-08-04 14:53:26 +0000 |
commit | c17d87de17351aed016a9d0b0712cdee4cca5f9e (patch) | |
tree | 13f06eeffc7669d44e8c5af57f8e7871ddef110b /ld | |
parent | 55e6e39790fd27daea0bf1af3b9a7797c735a79f (diff) | |
download | gdb-c17d87de17351aed016a9d0b0712cdee4cca5f9e.zip gdb-c17d87de17351aed016a9d0b0712cdee4cca5f9e.tar.gz gdb-c17d87de17351aed016a9d0b0712cdee4cca5f9e.tar.bz2 |
* 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.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 9 | ||||
-rw-r--r-- | ld/NEWS | 4 | ||||
-rw-r--r-- | ld/ld.texinfo | 16 | ||||
-rw-r--r-- | ld/ldmain.c | 1 | ||||
-rw-r--r-- | ld/lexsup.c | 14 |
5 files changed, 42 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 4512965..1ee78d4 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -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> @@ -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. diff --git a/ld/ld.texinfo b/ld/ld.texinfo index f3d9580..835482d 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -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 diff --git a/ld/ldmain.c b/ld/ldmain.c index cb56a8d..4dab0d6 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -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; diff --git a/ld/lexsup.c b/ld/lexsup.c index c2bef1d..4d526b0 100644 --- a/ld/lexsup.c +++ b/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; |