aboutsummaryrefslogtreecommitdiff
path: root/ld/lexsup.c
diff options
context:
space:
mode:
authorFaraz Shahbazker <fshahbazker@wavecomp.com>2019-04-02 20:17:16 +0000
committerFaraz Shahbazker <fshahbazker@wavecomp.com>2019-04-11 10:16:31 -0700
commit035801cebe9ffbdddb465b81ae514a465ce9c64c (patch)
tree1bec295602b51ae66b0c83a96673726cb10c6d46 /ld/lexsup.c
parentc30391f893fd99e768c1a6282763ef553c45f1ff (diff)
downloadgdb-035801cebe9ffbdddb465b81ae514a465ce9c64c.zip
gdb-035801cebe9ffbdddb465b81ae514a465ce9c64c.tar.gz
gdb-035801cebe9ffbdddb465b81ae514a465ce9c64c.tar.bz2
ld: Add --no-print-map-discarded option
Add a new option to disable the listing of discarded sections in map file output. The use case stems from a large application built with -ffunction-sections --gc-sections where the list of discarded sections blows up the map file output. The default behaviour remains to print discarded sections, but the new option allows us to disable it. ld/ * NEWS: Mention new option --no-print-map-discarded. * ld.h (ld_config_type) <print_map_discarded>: New field. * ldlang.c (lang_map): Conditionally output discarded sections in map files based on configuration option. * ldlex.h (option_values) <OPTION_PRINT_MAP_DISCARDED, OPTION_NO_PRINT_MAP_DISCARDED>: New. * ldmain.c (main): Enabled print_map_discarded by default. * lexsup.c (ld_options): Add new command-line options. (parse_args) <OPTION_NO_PRINT_MAP_DISCARDED, OPTION_PRINT_MAP_DISCARDED>: New cases. * ld.texi: Document new options. * testsuite/ld-gc/gc.exp: Add new test. * testsuite/ld-gc/skip-map-discarded.s: New file. * testsuite/ld-gc/skip-map-discarded.d: New file. * testsuite/ld-gc/skip-map-discarded.map: New file.
Diffstat (limited to 'ld/lexsup.c')
-rw-r--r--ld/lexsup.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/ld/lexsup.c b/ld/lexsup.c
index 88e85c7..dacb962 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -543,6 +543,12 @@ static const struct ld_option ld_options[] =
{ {"orphan-handling", required_argument, NULL, OPTION_ORPHAN_HANDLING},
'\0', N_("=MODE"), N_("Control how orphan sections are handled."),
TWO_DASHES },
+ { {"print-map-discarded", no_argument, NULL, OPTION_PRINT_MAP_DISCARDED},
+ '\0', NULL, N_("Show discarded sections in map file output (default)"),
+ TWO_DASHES },
+ { {"no-print-map-discarded", no_argument, NULL, OPTION_NO_PRINT_MAP_DISCARDED},
+ '\0', NULL, N_("Do not show discarded sections in map file output"),
+ TWO_DASHES },
};
#define OPTION_COUNT ARRAY_SIZE (ld_options)
@@ -1577,6 +1583,14 @@ parse_args (unsigned argc, char **argv)
einfo (_("%F%P: invalid argument to option"
" \"--orphan-handling\"\n"));
break;
+
+ case OPTION_NO_PRINT_MAP_DISCARDED:
+ config.print_map_discarded = FALSE;
+ break;
+
+ case OPTION_PRINT_MAP_DISCARDED:
+ config.print_map_discarded = TRUE;
+ break;
}
}