mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-16 04:13:50 +08:00
Fix libctf build on non-ELF targets.
All machinery works as on ELF, except for automatic loading of ELF string and symbol tables in the BFD-style open machinery. * Makefile.def (dependencies): configure-libctf depends on all-bfd and all its deps. * Makefile.in: Regenerated. libctf/ * configure.in: Check for bfd_section_from_elf_index. * configure: Regenerate. * config.h.in [HAVE_BFD_ELF]: Likewise. * libctf/ctf_open_bfd (ctf_bfdopen_ctfsect): Use it. abfd is potentially unused now.
This commit is contained in:

committed by
Jose E. Marchesi

parent
90f879191c
commit
9698cf9b1c
@ -119,7 +119,8 @@ ctf_bfdopen (struct bfd *abfd, int *errp)
|
||||
later. */
|
||||
|
||||
ctf_archive_t *
|
||||
ctf_bfdopen_ctfsect (struct bfd *abfd, const ctf_sect_t *ctfsect, int *errp)
|
||||
ctf_bfdopen_ctfsect (struct bfd *abfd _libctf_unused_,
|
||||
const ctf_sect_t *ctfsect, int *errp)
|
||||
{
|
||||
struct ctf_archive *arc = NULL;
|
||||
ctf_archive_t *arci;
|
||||
@ -129,6 +130,7 @@ ctf_bfdopen_ctfsect (struct bfd *abfd, const ctf_sect_t *ctfsect, int *errp)
|
||||
const char *bfderrstr = NULL;
|
||||
int is_archive;
|
||||
|
||||
#ifdef HAVE_BFD_ELF
|
||||
asection *sym_asect;
|
||||
ctf_sect_t symsect, strsect;
|
||||
/* TODO: handle SYMTAB_SHNDX. */
|
||||
@ -178,6 +180,7 @@ ctf_bfdopen_ctfsect (struct bfd *abfd, const ctf_sect_t *ctfsect, int *errp)
|
||||
symsectp = &symsect;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (ctfsect->cts_size > sizeof (uint64_t) &&
|
||||
((*(uint64_t *) ctfsect->cts_data) == CTFA_MAGIC))
|
||||
@ -203,9 +206,11 @@ ctf_bfdopen_ctfsect (struct bfd *abfd, const ctf_sect_t *ctfsect, int *errp)
|
||||
if (arci)
|
||||
return arci;
|
||||
err_free_sym:
|
||||
#ifdef HAVE_BFD_ELF
|
||||
free ((void *) symsect.cts_data);
|
||||
err_free_str:
|
||||
free ((void *) strsect.cts_data);
|
||||
#endif
|
||||
err: _libctf_unused_;
|
||||
if (bfderrstr)
|
||||
{
|
||||
|
Reference in New Issue
Block a user