aboutsummaryrefslogtreecommitdiff
path: root/ld/pe-dll.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-05-19 12:57:15 +0930
committerAlan Modra <amodra@gmail.com>2020-05-19 12:57:15 +0930
commit607b483327fdfc75fb193870b3c4e7445ce3f64d (patch)
tree184200d9b5f0b36628520554c4d28476137fe650 /ld/pe-dll.c
parent69f57659c37106c4407a801d89eed4b3e2243074 (diff)
downloadgdb-607b483327fdfc75fb193870b3c4e7445ce3f64d.zip
gdb-607b483327fdfc75fb193870b3c4e7445ce3f64d.tar.gz
gdb-607b483327fdfc75fb193870b3c4e7445ce3f64d.tar.bz2
Use bfd_get_filename throughout ld
* emultempl/beos.em (sort_by_file_name): Use bfd_get_filename rather than accessing bfd->filename directly. * emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Likewise. * emultempl/pep.em (gld_${EMULATION_NAME}_after_open): Likewise. * emultempl/spuelf.em (embedded_spu_file): Likewise. * ldlang.c (input_statement_is_archive_path, wild_sort), (check_excluded_libs): Likewise. * ldmain.c (add_archive_element): Likewise. * ldmisc.c (vfinfo): Likewise. * pe-dll.c (auto_export, generate_edata, pe_create_import_fixup), (pe_dll_generate_implib, pe_process_import_defs): Likewise. * plugin.c (plugin_object_p): Likewise.
Diffstat (limited to 'ld/pe-dll.c')
-rw-r--r--ld/pe-dll.c38
1 files changed, 21 insertions, 17 deletions
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index 0ed21fa..6050429 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -560,7 +560,7 @@ auto_export (bfd *abfd, def_file *d, const char *n)
const char * libname = NULL;
if (abfd && abfd->my_archive)
- libname = lbasename (abfd->my_archive->filename);
+ libname = lbasename (bfd_get_filename (abfd->my_archive));
key.name = key.its_name = (char *) n;
@@ -594,7 +594,7 @@ auto_export (bfd *abfd, def_file *d, const char *n)
/* Next, exclude symbols from certain startup objects. */
- if (abfd && (p = lbasename (abfd->filename)))
+ if (abfd && (p = lbasename (bfd_get_filename (abfd))))
{
afptr = autofilter_objlist;
while (afptr->name)
@@ -655,7 +655,7 @@ auto_export (bfd *abfd, def_file *d, const char *n)
}
else if (ex->type == EXCLUDEFORIMPLIB)
{
- if (filename_cmp (abfd->filename, ex->string) == 0)
+ if (filename_cmp (bfd_get_filename (abfd), ex->string) == 0)
return 0;
}
else if (strcmp (n, ex->string) == 0)
@@ -1079,7 +1079,7 @@ generate_edata (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED)
dll_name = pe_def_file->name;
else
{
- dll_name = abfd->filename;
+ dll_name = bfd_get_filename (abfd);
for (dlnp = dll_name; *dlnp; dlnp++)
if (*dlnp == '\\' || *dlnp == '/' || *dlnp == ':')
@@ -2767,7 +2767,7 @@ pe_create_import_fixup (arelent *rel, asection *s, bfd_vma addend, char *name,
if (!(name_thunk_sym && name_thunk_sym->type == bfd_link_hash_defined))
{
b = make_singleton_name_thunk (name, link_info.output_bfd);
- add_bfd_to_link (b, b->filename, &link_info);
+ add_bfd_to_link (b, bfd_get_filename (b), &link_info);
/* If we ever use autoimport, we have to cast text section writable. */
config.text_read_only = FALSE;
@@ -2778,7 +2778,7 @@ pe_create_import_fixup (arelent *rel, asection *s, bfd_vma addend, char *name,
{
b = make_import_fixup_entry (name, fixup_name, symname,
link_info.output_bfd);
- add_bfd_to_link (b, b->filename, &link_info);
+ add_bfd_to_link (b, bfd_get_filename (b), &link_info);
}
}
@@ -2794,12 +2794,12 @@ pe_create_import_fixup (arelent *rel, asection *s, bfd_vma addend, char *name,
b = make_runtime_pseudo_reloc (name, fixup_name, addend, rel->howto->bitsize,
link_info.output_bfd);
- add_bfd_to_link (b, b->filename, &link_info);
+ add_bfd_to_link (b, bfd_get_filename (b), &link_info);
if (runtime_pseudo_relocs_created++ == 0)
{
b = pe_create_runtime_relocator_reference (link_info.output_bfd);
- add_bfd_to_link (b, b->filename, &link_info);
+ add_bfd_to_link (b, bfd_get_filename (b), &link_info);
}
}
@@ -2855,7 +2855,7 @@ pe_dll_generate_implib (def_file *def, const char *impfilename, struct bfd_link_
{
if (ex->type != EXCLUDEFORIMPLIB)
continue;
- found = (filename_cmp (ex->string, ibfd->filename) == 0);
+ found = (filename_cmp (ex->string, bfd_get_filename (ibfd)) == 0);
}
/* If it matched, we must open a fresh BFD for it (the original
input BFD is still needed for the DLL's final link) and add
@@ -2863,10 +2863,11 @@ pe_dll_generate_implib (def_file *def, const char *impfilename, struct bfd_link_
if (found)
{
bfd *newbfd = bfd_openr (ibfd->my_archive
- ? ibfd->my_archive->filename : ibfd->filename, NULL);
+ ? bfd_get_filename (ibfd->my_archive)
+ : bfd_get_filename (ibfd), NULL);
if (!newbfd)
{
- einfo (_("%X%P: bfd_openr %s: %E\n"), ibfd->filename);
+ einfo (_("%X%P: bfd_openr %s: %E\n"), bfd_get_filename (ibfd));
return;
}
if (ibfd->my_archive)
@@ -2879,19 +2880,22 @@ pe_dll_generate_implib (def_file *def, const char *impfilename, struct bfd_link_
if (!bfd_check_format_matches (arbfd, bfd_archive, NULL))
{
einfo (_("%X%P: %s(%s): can't find member in non-archive file"),
- ibfd->my_archive->filename, ibfd->filename);
+ bfd_get_filename (ibfd->my_archive),
+ bfd_get_filename (ibfd));
return;
}
newbfd = NULL;
while ((newbfd = bfd_openr_next_archived_file (arbfd, newbfd)) != 0)
{
- if (filename_cmp (newbfd->filename, ibfd->filename) == 0)
+ if (filename_cmp (bfd_get_filename (newbfd),
+ bfd_get_filename (ibfd)) == 0)
break;
}
if (!newbfd)
{
einfo (_("%X%P: %s(%s): can't find member in archive"),
- ibfd->my_archive->filename, ibfd->filename);
+ bfd_get_filename (ibfd->my_archive),
+ bfd_get_filename (ibfd));
return;
}
}
@@ -3248,7 +3252,7 @@ pe_process_import_defs (bfd *output_bfd, struct bfd_link_info *linfo)
if (!do_this_dll)
{
bfd *ar_head = make_head (output_bfd);
- add_bfd_to_link (ar_head, ar_head->filename, linfo);
+ add_bfd_to_link (ar_head, bfd_get_filename (ar_head), linfo);
do_this_dll = 1;
}
exp.internal_name = imp[i].internal_name;
@@ -3261,13 +3265,13 @@ pe_process_import_defs (bfd *output_bfd, struct bfd_link_info *linfo)
exp.flag_data = imp[i].data;
exp.flag_noname = exp.name ? 0 : 1;
one = make_one (&exp, output_bfd, (! exp.flag_data) && include_jmp_stub);
- add_bfd_to_link (one, one->filename, linfo);
+ add_bfd_to_link (one, bfd_get_filename (one), linfo);
}
}
if (do_this_dll)
{
bfd *ar_tail = make_tail (output_bfd);
- add_bfd_to_link (ar_tail, ar_tail->filename, linfo);
+ add_bfd_to_link (ar_tail, bfd_get_filename (ar_tail), linfo);
}
free (dll_symname);