diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 11 | ||||
-rw-r--r-- | ld/ld.h | 4 | ||||
-rw-r--r-- | ld/ld.texinfo | 5 | ||||
-rw-r--r-- | ld/ldfile.c | 12 | ||||
-rw-r--r-- | ld/ldmain.c | 1 | ||||
-rw-r--r-- | ld/lexsup.c | 8 |
6 files changed, 37 insertions, 4 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 1064f77..8a40c00 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,16 @@ 2007-05-03 Alan Modra <amodra@bigpond.net.au> + * ld.texinfo (--no-warn-search-mismatch): Document. + * ldfile.c (ldfile_try_open_bfd): Don't warn about skipping + incompatible libraries if --no-warn-search-mismatch. + * ld.h (args_type): Add warn_search_mismatch. + * ldmain.c (main): Init it. + * lexsup.c (enum option_values): Add OPTION_NO_WARN_SEARCH_MISMATCH. + (ld_options): Add entry for --no-warn-search-mismatch. + (parse_args): Handle OPTION_NO_WARN_SEARCH_MISMATCH. + +2007-05-03 Alan Modra <amodra@bigpond.net.au> + * scripttempl/elf.sc: Add .debug_pubtypes and .debug_ranges. 2007-05-01 Robert Millan <rmh@aybabtu.com> @@ -177,6 +177,10 @@ typedef struct { files. */ bfd_boolean warn_mismatch; + /* Warn on attempting to open an incompatible library during a library + search. */ + bfd_boolean warn_search_mismatch; + /* Name of shared object whose symbol table should be filtered with this shared object. From the --filter option. */ char *filter_shlib; diff --git a/ld/ld.texinfo b/ld/ld.texinfo index 010345d..788c515 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -1390,6 +1390,11 @@ errors. This option should only be used with care, in cases when you have taken some special action that ensures that the linker errors are inappropriate. +@kindex --no-warn-search-mismatch +@item --no-warn-search-mismatch +Normally @command{ld} will give a warning if it finds an incompatible +library during a library search. This option silences the warning. + @kindex --no-whole-archive @item --no-whole-archive Turn off the effect of the @option{--whole-archive} option for subsequent diff --git a/ld/ldfile.c b/ld/ldfile.c index d3ad467..9781aac 100644 --- a/ld/ldfile.c +++ b/ld/ldfile.c @@ -252,8 +252,10 @@ ldfile_try_open_bfd (const char *attempt, yyin = NULL; if (skip) { - einfo (_("%P: skipping incompatible %s when searching for %s\n"), - attempt, entry->local_sym_name); + if (command_line.warn_search_mismatch) + einfo (_("%P: skipping incompatible %s " + "when searching for %s\n"), + attempt, entry->local_sym_name); bfd_close (entry->the_bfd); entry->the_bfd = NULL; return FALSE; @@ -279,8 +281,10 @@ ldfile_try_open_bfd (const char *attempt, && bfd_get_flavour (output_bfd) == bfd_target_xcoff_flavour && bfd_check_format (entry->the_bfd, bfd_archive))) { - einfo (_("%P: skipping incompatible %s when searching for %s\n"), - attempt, entry->local_sym_name); + if (command_line.warn_search_mismatch) + einfo (_("%P: skipping incompatible %s " + "when searching for %s\n"), + attempt, entry->local_sym_name); bfd_close (entry->the_bfd); entry->the_bfd = NULL; return FALSE; diff --git a/ld/ldmain.c b/ld/ldmain.c index 1ab52b3..ccbc8bb 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -257,6 +257,7 @@ main (int argc, char **argv) command_line.interpreter = NULL; command_line.rpath = NULL; command_line.warn_mismatch = TRUE; + command_line.warn_search_mismatch = TRUE; command_line.check_section_addresses = TRUE; command_line.accept_unknown_input_arch = FALSE; command_line.symbolic = symbolic_unset; diff --git a/ld/lexsup.c b/ld/lexsup.c index 489f8ad..dddbdca 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -83,6 +83,7 @@ enum option_values OPTION_NO_DEMANGLE, OPTION_NO_KEEP_MEMORY, OPTION_NO_WARN_MISMATCH, + OPTION_NO_WARN_SEARCH_MISMATCH, OPTION_NOINHIBIT_EXEC, OPTION_NON_SHARED, OPTION_NO_WHOLE_ARCHIVE, @@ -428,6 +429,10 @@ static const struct ld_option ld_options[] = TWO_DASHES }, { {"no-warn-mismatch", no_argument, NULL, OPTION_NO_WARN_MISMATCH}, '\0', NULL, N_("Don't warn about mismatched input files"), TWO_DASHES}, + { {"no-warn-search-mismatch", no_argument, NULL, + OPTION_NO_WARN_SEARCH_MISMATCH}, + '\0', NULL, N_("Don't warn on finding an incompatible library"), + TWO_DASHES}, { {"no-whole-archive", no_argument, NULL, OPTION_NO_WHOLE_ARCHIVE}, '\0', NULL, N_("Turn off --whole-archive"), TWO_DASHES }, { {"noinhibit-exec", no_argument, NULL, OPTION_NOINHIBIT_EXEC}, @@ -963,6 +968,9 @@ parse_args (unsigned argc, char **argv) case OPTION_NO_WARN_MISMATCH: command_line.warn_mismatch = FALSE; break; + case OPTION_NO_WARN_SEARCH_MISMATCH: + command_line.warn_search_mismatch = FALSE; + break; case OPTION_NOINHIBIT_EXEC: force_make_executable = TRUE; break; |