include, libctf: header and soname changes for CTFv4

These changes bump the current file format version to CTF_VERSION_4, and
introduce a new VERSION_5 identical with it to get the version integer and
the name identical again.  A great many changes are made to account for
the changes to handle CTFv4 (which is a BTF superset).

libctf will not compile after these changes, which is why it's been diked
out of the build system and forced-off until the series is complete.

Because all the CTF_K constants have changed values, this is necessarily an
ABI break: add a #define to make picking up this break at compile time
obvious.

Note that the ABI has broken by bumping the soname (deriving it now from
libctf/libtool-version) and folding all newer symbols in the symbol version
file into a new LIBCTF_2.0 version, which is now the only exported version.
This commit is contained in:
Nick Alcock
2025-04-24 13:20:53 +01:00
parent 13ce9e17b7
commit de5a31a8ca
6 changed files with 411 additions and 156 deletions

View File

@@ -34,6 +34,10 @@ extern "C"
{
#endif
/* Version of the libctf API. */
#define LIBCTF_API_VERSION 2
/* Clients can open one or more CTF containers and obtain a pointer to an
opaque ctf_dict_t. Types are identified by an opaque ctf_id_t token.
They can also open or create read-only archives of CTF containers in a