Merge branch 'libbpf: support loading/storing any BTF'
authorAlexei Starovoitov <ast@kernel.org>
Tue, 29 Sep 2020 19:21:24 +0000 (12:21 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 29 Sep 2020 19:21:24 +0000 (12:21 -0700)
commit85e3f318506ece12714535821d0b3186f7121b5b
tree0f0195a16c9ea0b1346e560d9a21e9efff2402ce
parentf970cbcdcdb5b3468a6c05332818d226fb60038f
parented9cf248b9498815d4762fe335539210b8a283a9
Merge branch 'libbpf: support loading/storing any BTF'

Andrii Nakryiko says:

====================
Add support for loading and storing BTF in either little- or big-endian
integer encodings, regardless of host endianness. This allows users of libbpf
to not care about endianness when they don't want to and transparently
open/load BTF of any endianness. libbpf will preserve original endianness and
will convert output raw data as necessary back to original endianness, if
necessary. This allows tools like pahole to be ignorant to such issues during
cross-compilation.

While working with BTF data in memory, the endianness is always native to the
host. Convetion can happen only during btf__get_raw_data() call, and only in
a raw data copy.

Additionally, it's possible to force output BTF endianness through new
btf__set_endianness() API. This which allows to create flexible tools doing
arbitrary conversions of BTF endianness, just by relying on libbpf.

Cc: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
Cc: Tony Ambardar <tony.ambardar@gmail.com>
Cc: Ilya Leoshkevich <iii@linux.ibm.com>
Cc: Luka Perkov <luka.perkov@sartura.hr>
====================

Signed-off-by: Alexei Starovoitov <ast@kernel.org>