From: Nick Clifton Date: Fri, 31 Oct 2003 10:27:34 +0000 (+0000) Subject: When looking for a previously loaded file compare the local_sym_name not the X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=c967d1427c0f87e23fd3f718132e87afed494ad8;p=pf3gnuchains%2Fpf3gnuchains3x.git 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. --- diff --git a/ld/ChangeLog b/ld/ChangeLog index b5efd5c181..83350bd996 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,13 @@ +2003-10-31 Nick Clifton + + * 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 * emultempl/pe.em, pe-dll.c: Replace "struct symbol_cache_entry" diff --git a/ld/ldlang.c b/ld/ldlang.c index b343c275ae..1dc2b1ea44 100644 --- a/ld/ldlang.c +++ b/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