diff options
Diffstat (limited to 'ld/ldlang.c')
-rw-r--r-- | ld/ldlang.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/ld/ldlang.c b/ld/ldlang.c index 57e2ee8..37ef265 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -1063,13 +1063,6 @@ new_afile (const char *name, p->flags.whole_archive = input_flags.whole_archive; p->flags.sysrooted = input_flags.sysrooted; - if (file_type == lang_input_file_is_l_enum - && name[0] == ':' && name[1] != '\0') - { - file_type = lang_input_file_is_search_file_enum; - name = name + 1; - } - switch (file_type) { case lang_input_file_is_symbols_only_enum: @@ -1083,7 +1076,13 @@ new_afile (const char *name, p->local_sym_name = name; break; case lang_input_file_is_l_enum: - p->filename = name; + if (name[0] == ':' && name[1] != '\0') + { + p->filename = name + 1; + p->flags.full_name_provided = TRUE; + } + else + p->filename = name; p->local_sym_name = concat ("-l", name, (const char *) NULL); p->flags.maybe_archive = TRUE; p->flags.real = TRUE; |