diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2021-12-24 16:04:03 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2022-01-04 09:51:02 -0800 |
commit | 6395a1021020671dd205d332b2879e3e733e8024 (patch) | |
tree | 157a55dff238a612e95fe3a8d6fe8b4b1ca8724c /bfd/elflink.c | |
parent | 0b1e7ee5b572abb465b8095d7f92d49eed91e215 (diff) | |
download | gdb-6395a1021020671dd205d332b2879e3e733e8024.zip gdb-6395a1021020671dd205d332b2879e3e733e8024.tar.gz gdb-6395a1021020671dd205d332b2879e3e733e8024.tar.bz2 |
ld: Improve thin archive member error message
Improve thin archive member error message with:
ld: libbar.a(bar.o): error opening thin archive member: No such file or directory
instead of
ld: libbar.a: error adding symbols: No such file or directory
PR ld/28722
* archive.c (_bfd_get_elt_at_filepos): Add a pointer argument
for struct bfd_link_info. Call linker callback when failing to
open thin archive member.
(_bfd_generic_get_elt_at_index): Pass NULL to
_bfd_get_elt_at_filepos.
(bfd_generic_openr_next_archived_file): Likewise.
* coff-alpha.c (alpha_ecoff_get_elt_at_filepos): Add a pointer
argument for struct bfd_link_info and pass it to
_bfd_get_elt_at_filepos.
(alpha_ecoff_openr_next_archived_file): Pass NULL to
_bfd_get_elt_at_filepos.
(alpha_ecoff_get_elt_at_index): Likewise.
* coff-rs6000.c (_bfd_xcoff_openr_next_archived_file): Likewise.
* ecoff.c (ecoff_link_add_archive_symbols): Pass info to
backend->get_elt_at_filepos.
* elflink.c (elf_link_is_defined_archive_symbol): info to
_bfd_get_elt_at_filepos.
* libbfd-in.h (_bfd_get_elt_at_filepos): Add a pointer argument
for struct bfd_link_info.
* libbfd.h: Regenerate.
* libecoff.h (ecoff_backend_data): Add a pointer argument for
struct bfd_link_info to get_elt_at_filepos.
* linker.c (_bfd_generic_link_add_archive_symbols): Pass info to
_bfd_get_elt_at_filepos.
Diffstat (limited to 'bfd/elflink.c')
-rw-r--r-- | bfd/elflink.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/bfd/elflink.c b/bfd/elflink.c index 24acb37..553efa2 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -3470,7 +3470,7 @@ elf_link_is_defined_archive_symbol (bfd * abfd, carsym * symdef) Elf_Internal_Sym *isymend; bool result; - abfd = _bfd_get_elt_at_filepos (abfd, symdef->file_offset); + abfd = _bfd_get_elt_at_filepos (abfd, symdef->file_offset, NULL); if (abfd == NULL) return false; @@ -5948,7 +5948,8 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info) } /* We need to include this archive member. */ - element = _bfd_get_elt_at_filepos (abfd, symdef->file_offset); + element = _bfd_get_elt_at_filepos (abfd, symdef->file_offset, + info); if (element == NULL) goto error_return; |