diff options
author | Alan Modra <amodra@gmail.com> | 2011-10-10 12:43:14 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2011-10-10 12:43:14 +0000 |
commit | 9bbc1a67d375f36d009bf5ba8ffd7d9c53511885 (patch) | |
tree | 33011b9c0c8b4ce911cae37e29939e4d7ea8e6ce /ld/ldmain.c | |
parent | bd518033e94e94717505ba617c9cc46beebffde8 (diff) | |
download | gdb-9bbc1a67d375f36d009bf5ba8ffd7d9c53511885.zip gdb-9bbc1a67d375f36d009bf5ba8ffd7d9c53511885.tar.gz gdb-9bbc1a67d375f36d009bf5ba8ffd7d9c53511885.tar.bz2 |
* ldmain.c (main): Move code twiddling various config and link_info
bits to..
* lexsup.c (parse_args): ..here. Move plugin_load_plugins call
into main.
* plugin.c (set_tv_header): Test link_info.executable, not
link_info.shared.
(is_visible_from_outside): Likewise. Delete redundant
is_ir_dummy_bfd check and "section" parameter.
Diffstat (limited to 'ld/ldmain.c')
-rw-r--r-- | ld/ldmain.c | 72 |
1 files changed, 6 insertions, 66 deletions
diff --git a/ld/ldmain.c b/ld/ldmain.c index 3c0dbc4..7aacf0f 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -297,73 +297,13 @@ main (int argc, char **argv) if (config.hash_table_size != 0) bfd_hash_set_default_size (config.hash_table_size); - ldemul_set_symbols (); - - if (link_info.relocatable) - { - if (command_line.check_section_addresses < 0) - command_line.check_section_addresses = 0; - if (link_info.shared) - einfo (_("%P%F: -r and -shared may not be used together\n")); - } - - /* We may have -Bsymbolic, -Bsymbolic-functions, --dynamic-list-data, - --dynamic-list-cpp-new, --dynamic-list-cpp-typeinfo and - --dynamic-list FILE. -Bsymbolic and -Bsymbolic-functions are - for shared libraries. -Bsymbolic overrides all others and vice - versa. */ - switch (command_line.symbolic) - { - case symbolic_unset: - break; - case symbolic: - /* -Bsymbolic is for shared library only. */ - if (link_info.shared) - { - link_info.symbolic = TRUE; - /* Should we free the unused memory? */ - link_info.dynamic_list = NULL; - command_line.dynamic_list = dynamic_list_unset; - } - break; - case symbolic_functions: - /* -Bsymbolic-functions is for shared library only. */ - if (link_info.shared) - command_line.dynamic_list = dynamic_list_data; - break; - } - - switch (command_line.dynamic_list) - { - case dynamic_list_unset: - break; - case dynamic_list_data: - link_info.dynamic_data = TRUE; - case dynamic_list: - link_info.dynamic = TRUE; - break; - } - - if (! link_info.shared) - { - if (command_line.filter_shlib) - einfo (_("%P%F: -F may not be used without -shared\n")); - if (command_line.auxiliary_filters) - einfo (_("%P%F: -f may not be used without -shared\n")); - } - - if (! link_info.shared || link_info.pie) - link_info.executable = TRUE; +#ifdef ENABLE_PLUGINS + /* Now all the plugin arguments have been gathered, we can load them. */ + if (plugin_load_plugins ()) + einfo (_("%P%F: %s: error loading plugin\n"), plugin_error_plugin ()); +#endif /* ENABLE_PLUGINS */ - /* Treat ld -r -s as ld -r -S -x (i.e., strip all local symbols). I - don't see how else this can be handled, since in this case we - must preserve all externally visible symbols. */ - if (link_info.relocatable && link_info.strip == strip_all) - { - link_info.strip = strip_debugger; - if (link_info.discard == discard_sec_merge) - link_info.discard = discard_all; - } + ldemul_set_symbols (); /* If we have not already opened and parsed a linker script, try the default script from command line first. */ |