{
const char *name = get_imported_name (symbol);
bound_minimal_symbol minsym
- = lookup_minimal_symbol_linkage (symbol->objfile ()->pspace (), name, false);
+ = lookup_minimal_symbol_linkage (symbol->objfile ()->pspace (), name,
+ true, false);
if (minsym.minsym == nullptr)
error (_("could not find imported name %s"), name);
return value_at (symbol->type (), minsym.value_address ());
bound_minimal_symbol
lookup_minimal_symbol_linkage (program_space *pspace, const char *name,
- bool only_main)
+ bool match_static_type, bool only_main)
{
for (objfile *objfile : pspace->objfiles ())
{
if (only_main && (objfile->flags & OBJF_MAINLINE) == 0)
continue;
- bound_minimal_symbol minsym = lookup_minimal_symbol_linkage (name,
- objfile,
- false);
+ bound_minimal_symbol minsym
+ = lookup_minimal_symbol_linkage (name, objfile, match_static_type);
if (minsym.minsym != nullptr)
return minsym;
}
OBJF_MAINLINE will be considered. */
extern bound_minimal_symbol lookup_minimal_symbol_linkage
- (program_space *pspace, const char *name, bool only_main)
- ATTRIBUTE_NONNULL (1);
+ (program_space *pspace, const char *name, bool match_static_type,
+ bool only_main) ATTRIBUTE_NONNULL (1);
/* Look through all the current minimal symbol tables and find the
first minimal symbol that matches NAME and PC. If OBJF is non-NULL,
const char *linkage_name = this->linkage_name ();
bound_minimal_symbol minsym
= lookup_minimal_symbol_linkage (this->objfile ()->pspace (), linkage_name,
- false);
+ false, false);
if (minsym.minsym != nullptr)
return minsym.value_address ();
const char *linkage_name = this->linkage_name ();
bound_minimal_symbol found
- = lookup_minimal_symbol_linkage (objf->pspace (), linkage_name, true);
+ = lookup_minimal_symbol_linkage (objf->pspace (), linkage_name,
+ false, true);
if (found.minsym != nullptr)
return found.value_address ();