From 9698cf9b1c485edbbeabc9f65bfd0fdef92e3854 Mon Sep 17 00:00:00 2001 From: Nick Alcock Date: Wed, 29 May 2019 11:11:37 +0200 Subject: 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. --- libctf/ctf-open-bfd.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'libctf/ctf-open-bfd.c') diff --git a/libctf/ctf-open-bfd.c b/libctf/ctf-open-bfd.c index d6d442e..5e34d12 100644 --- a/libctf/ctf-open-bfd.c +++ b/libctf/ctf-open-bfd.c @@ -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) { -- cgit v1.1