X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=libctf%2Fctf-open-bfd.c;h=76b7f9d1629b5871a16c3bc04e372e732f927251;hb=24865428034f44d9fffe6b2d9a318e1bd507c63a;hp=d6d442ea42580b0510d59608447eddd7ed59a8d0;hpb=143dce8481f09f60704ab52b98cf8fe6d8b29fc9;p=deliverable%2Fbinutils-gdb.git diff --git a/libctf/ctf-open-bfd.c b/libctf/ctf-open-bfd.c index d6d442ea42..76b7f9d162 100644 --- a/libctf/ctf-open-bfd.c +++ b/libctf/ctf-open-bfd.c @@ -97,10 +97,7 @@ ctf_bfdopen (struct bfd *abfd, int *errp) } ctfsect.cts_name = _CTF_SECTION; - ctfsect.cts_type = SHT_PROGBITS; - ctfsect.cts_flags = 0; ctfsect.cts_entsize = 1; - ctfsect.cts_offset = 0; ctfsect.cts_size = bfd_section_size (abfd, ctf_asect); ctfsect.cts_data = contents; @@ -119,7 +116,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 +127,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. */ @@ -156,10 +155,8 @@ ctf_bfdopen_ctfsect (struct bfd *abfd, const ctf_sect_t *ctfsect, int *errp) } strsect.cts_data = contents; strsect.cts_name = (char *) strsect.cts_data + strhdr->sh_name; - strsect.cts_type = strhdr->sh_type; - strsect.cts_flags = strhdr->sh_flags; + strsect.cts_size = bfd_section_size (abfd, str_asect); strsect.cts_entsize = strhdr->sh_size; - strsect.cts_offset = strhdr->sh_offset; strsectp = &strsect; if (!bfd_malloc_and_get_section (abfd, sym_asect, &contents)) @@ -170,14 +167,13 @@ ctf_bfdopen_ctfsect (struct bfd *abfd, const ctf_sect_t *ctfsect, int *errp) } symsect.cts_name = (char *) strsect.cts_data + symhdr->sh_name; - symsect.cts_type = symhdr->sh_type; - symsect.cts_flags = symhdr->sh_flags; symsect.cts_entsize = symhdr->sh_size; + symsect.cts_size = bfd_section_size (abfd, sym_asect); symsect.cts_data = contents; - symsect.cts_offset = symhdr->sh_offset; symsectp = &symsect; } } +#endif if (ctfsect->cts_size > sizeof (uint64_t) && ((*(uint64_t *) ctfsect->cts_data) == CTFA_MAGIC)) @@ -203,9 +199,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) {