libctf: low-level list manipulation and helper utilities
authorNick Alcock <nick.alcock@oracle.com>
Tue, 23 Apr 2019 20:45:30 +0000 (21:45 +0100)
committerNick Alcock <nick.alcock@oracle.com>
Tue, 28 May 2019 16:07:19 +0000 (17:07 +0100)
commit94585e7f93c9477bcf2835d8245e967053ce2b41
treebe6b9dd49c2463d5a72368ce400f19538f06bc9b
parent60da9d955964759b1f52690bff587ad32a198507
libctf: low-level list manipulation and helper utilities

These utilities are a bit of a ragbag of small things needed by more
than one TU: list manipulation, ELF32->64 translators, routines to look
up strings in string tables, dynamically-allocated string appenders, and
routines to set the specialized errno values previously committed in
<ctf-api.h>.

We do still need to dig around in raw ELF symbol tables in places,
because libctf allows the caller to pass in the contents of string and
symbol sections without telling it where they come from, so we cannot
use BFD to get the symbols (BFD reasonably demands the entire file).  So
extract minimal ELF definitions from glibc into a private header named
libctf/elf.h: later, we use those to get symbols.  (The start-of-
copyright range on elf.h reflects this glibc heritage.)

libctf/
* ctf-util.c: New file.
* elf.h: Likewise.
* ctf-impl.h: Include it, and add declarations.
libctf/ChangeLog
libctf/ctf-impl.h
libctf/ctf-util.c [new file with mode: 0644]
libctf/elf.h [new file with mode: 0644]