When looking for a previously loaded file compare the local_sym_name not the
filename, as the filename might have been transformed via the search directory path lookup. If the sought-for file has not been found in the input file chain then create a new node with the search_dirs_flag set so that the entire set of directory paths will be scanned for it.
This commit is contained in:
parent
83b6e7e845
commit
0013291dce
2 changed files with 19 additions and 4 deletions
10
ld/ChangeLog
10
ld/ChangeLog
|
@ -1,3 +1,13 @@
|
|||
2003-10-31 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* ldlang.c (lookup_name): When looking for a previously loaded
|
||||
file compare the local_sym_name not the filename, as the
|
||||
filename might have been transformed via the search directory
|
||||
path lookup.
|
||||
If the sought-for file has not been found in the input file
|
||||
chain then create a new node with the search_dirs_flag set so
|
||||
that the entire set of directory paths will be scanned for it.
|
||||
|
||||
2003-10-30 Andrew Cagney <cagney@redhat.com>
|
||||
|
||||
* emultempl/pe.em, pe-dll.c: Replace "struct symbol_cache_entry"
|
||||
|
|
13
ld/ldlang.c
13
ld/ldlang.c
|
@ -1320,16 +1320,21 @@ lookup_name (const char *name)
|
|||
search != NULL;
|
||||
search = (lang_input_statement_type *) search->next_real_file)
|
||||
{
|
||||
if (search->filename == NULL && name == NULL)
|
||||
/* Use the local_sym_name as the name of the file that has
|
||||
already been loaded as filename might have been transformed
|
||||
via the search directory lookup mechanism. */
|
||||
const char * filename = search->local_sym_name;
|
||||
|
||||
if (filename == NULL && name == NULL)
|
||||
return search;
|
||||
if (search->filename != NULL
|
||||
if (filename != NULL
|
||||
&& name != NULL
|
||||
&& strcmp (search->filename, name) == 0)
|
||||
&& strcmp (filename, name) == 0)
|
||||
break;
|
||||
}
|
||||
|
||||
if (search == NULL)
|
||||
search = new_afile (name, lang_input_file_is_file_enum, default_target,
|
||||
search = new_afile (name, lang_input_file_is_search_file_enum, default_target,
|
||||
FALSE);
|
||||
|
||||
/* If we have already added this file, or this file is not real
|
||||
|
|
Loading…
Reference in a new issue