aboutsummaryrefslogtreecommitdiff
path: root/ld/plugin.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2011-10-10 12:43:14 +0000
committerAlan Modra <amodra@gmail.com>2011-10-10 12:43:14 +0000
commit9bbc1a67d375f36d009bf5ba8ffd7d9c53511885 (patch)
tree33011b9c0c8b4ce911cae37e29939e4d7ea8e6ce /ld/plugin.c
parentbd518033e94e94717505ba617c9cc46beebffde8 (diff)
downloadgdb-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/plugin.c')
-rw-r--r--ld/plugin.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/ld/plugin.c b/ld/plugin.c
index 250233b..5f4aa8f 100644
--- a/ld/plugin.c
+++ b/ld/plugin.c
@@ -442,18 +442,14 @@ release_input_file (const void *handle)
/* Return TRUE if a defined symbol might be reachable from outside the
universe of claimed objects. */
static inline bfd_boolean
-is_visible_from_outside (struct ld_plugin_symbol *lsym, asection *section,
+is_visible_from_outside (struct ld_plugin_symbol *lsym,
struct bfd_link_hash_entry *blhe)
{
struct bfd_sym_chain *sym;
- /* Section's owner may be NULL if it is the absolute
- section, fortunately is_ir_dummy_bfd handles that. */
- if (!is_ir_dummy_bfd (section->owner))
- return TRUE;
if (link_info.relocatable)
return TRUE;
- if (link_info.export_dynamic || link_info.shared)
+ if (link_info.export_dynamic || !link_info.executable)
{
/* Check if symbol is hidden by version script. */
if (bfd_hide_sym_by_version (link_info.version_info,
@@ -580,7 +576,7 @@ get_symbols (const void *handle, int nsyms, struct ld_plugin_symbol *syms,
symbol is externally visible. */
if (blhe->non_ir_ref)
res = LDPR_PREVAILING_DEF;
- else if (is_visible_from_outside (&syms[n], owner_sec, blhe))
+ else if (is_visible_from_outside (&syms[n], blhe))
res = def_ironly_exp;
}
@@ -701,7 +697,7 @@ set_tv_header (struct ld_plugin_tv *tv)
case LDPT_LINKER_OUTPUT:
TVU(val) = (link_info.relocatable
? LDPO_REL
- : (link_info.shared ? LDPO_DYN : LDPO_EXEC));
+ : link_info.executable ? LDPO_EXEC : LDPO_DYN);
break;
case LDPT_OUTPUT_NAME:
TVU(string) = output_filename;