diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 24 | ||||
-rw-r--r-- | ld/ldmain.c | 1 | ||||
-rw-r--r-- | ld/lexsup.c | 14 |
3 files changed, 30 insertions, 9 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index cc43cea..8295f1e 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,17 +1,25 @@ +2002-12-23 Alan Modra <amodra@bigpond.net.au> + + * ldmain.c (main): Init "strip_discarded". + * lexsup.c (OPTION_STRIP_DISCARDED): Define. + (OPTION_NO_STRIP_DISCARDED): Define. + (ld_options): Add "strip-discarded" and "no-strip-discarded". + (parse_args): Handle them. + 2002-12-23 Nick Clifton <nickc@redhat.com> * ld.h (struct args_type): Add new field 'accept_unknown_input_architecture'. - * ldmain.c (main): Initialise 'accept_unknown_input_architecture' + * ldmain.c (main): Initialise 'accept_unknown_input_architecture' to false. - * ldlang.c (lang_check): Pass accept_unknown_input_architecture to + * ldlang.c (lang_check): Pass accept_unknown_input_architecture to bfd_arch_get_compatible. - * ldfile.c (ldfile_try_open_bfd): Likewise. - * lexsup.c (ld_options): Add new command line switch + * ldfile.c (ldfile_try_open_bfd): Likewise. + * lexsup.c (ld_options): Add new command line switch --accept-unknown-input-architecture and its inverse. - (parse_args): Handle --accept-unknown-input-architecture. - * ld.texinfo: Document new linker option. - * NEWS: Mention new linker option. + (parse_args): Handle --accept-unknown-input-architecture. + * ld.texinfo: Document new linker option. + * NEWS: Mention new linker option. 2002-12-20 Alan Modra <amodra@bigpond.net.au> @@ -46,7 +54,7 @@ so that it is not confused with -c. 2002-12-13 Ralf Habacker <Ralf.Habacker@freenet.de> - Charles Wilson <cwilson@ece.gatech.edu> + Charles Wilson <cwilson@ece.gatech.edu> * configure.in: Add check for realpath function. * configure: Regenerate. diff --git a/ld/ldmain.c b/ld/ldmain.c index 03a5c5a..c90cb66 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -248,6 +248,7 @@ main (argc, argv) link_info.new_dtags = FALSE; link_info.combreloc = TRUE; link_info.eh_frame_hdr = FALSE; + link_info.strip_discarded = TRUE; link_info.strip = strip_none; link_info.discard = discard_sec_merge; link_info.common_skip_ar_aymbols = bfd_link_common_skip_none; diff --git a/ld/lexsup.c b/ld/lexsup.c index ce4cf30..87a729a 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -133,7 +133,9 @@ int parsing_defsym = 0; #define OPTION_NO_DEFINE_COMMON (OPTION_SPARE_DYNAMIC_TAGS + 1) #define OPTION_NOSTDLIB (OPTION_NO_DEFINE_COMMON + 1) #define OPTION_NO_OMAGIC (OPTION_NOSTDLIB + 1) -#define OPTION_ACCEPT_UNKNOWN_INPUT_ARCH (OPTION_NO_OMAGIC + 1) +#define OPTION_STRIP_DISCARDED (OPTION_NO_OMAGIC + 1) +#define OPTION_NO_STRIP_DISCARDED (OPTION_STRIP_DISCARDED + 1) +#define OPTION_ACCEPT_UNKNOWN_INPUT_ARCH (OPTION_NO_STRIP_DISCARDED + 1) #define OPTION_NO_ACCEPT_UNKNOWN_INPUT_ARCH (OPTION_ACCEPT_UNKNOWN_INPUT_ARCH + 1) /* The long options. This structure is used for both the option @@ -241,6 +243,10 @@ static const struct ld_option ld_options[] = 's', NULL, N_("Strip all symbols"), TWO_DASHES }, { {"strip-debug", no_argument, NULL, 'S'}, 'S', NULL, N_("Strip debugging symbols"), TWO_DASHES }, + { {"strip-discarded", no_argument, NULL, OPTION_STRIP_DISCARDED}, + '\0', NULL, N_("Strip symbols in discarded sections"), TWO_DASHES }, + { {"no-strip-discarded", no_argument, NULL, OPTION_NO_STRIP_DISCARDED}, + '\0', NULL, N_("Do not strip symbols in discarded sections"), TWO_DASHES }, { {"trace", no_argument, NULL, 't'}, 't', NULL, N_("Trace file opens"), TWO_DASHES }, { {"script", required_argument, NULL, 'T'}, @@ -924,6 +930,12 @@ parse_args (argc, argv) case 's': link_info.strip = strip_all; break; + case OPTION_STRIP_DISCARDED: + link_info.strip_discarded = TRUE; + break; + case OPTION_NO_STRIP_DISCARDED: + link_info.strip_discarded = FALSE; + break; case OPTION_SHARED: if (config.has_shared) link_info.shared = TRUE; |