libbpf: Fix determine_ptr_size() guessing
authorDouglas Raillard <douglas.raillard@arm.com>
Tue, 24 May 2022 09:44:47 +0000 (10:44 +0100)
committerAndrii Nakryiko <andrii@kernel.org>
Thu, 2 Jun 2022 23:26:51 +0000 (16:26 -0700)
commit610cd93b44ce1e7323878ef5f7b23dc10c7d45b7
tree6c372b997f6df709c48ea99bfe1d40662aa43246
parent4c46091ee985ae84c60c5e95055d779fcd291d87
libbpf: Fix determine_ptr_size() guessing

One strategy employed by libbpf to guess the pointer size is by finding
the size of "unsigned long" type. This is achieved by looking for a type
of with the expected name and checking its size.

Unfortunately, the C syntax is friendlier to humans than to computers
as there is some variety in how such a type can be named. Specifically,
gcc and clang do not use the same names for integer types in debug info:

    - clang uses "unsigned long"
    - gcc uses "long unsigned int"

Lookup all the names for such a type so that libbpf can hope to find the
information it wants.

Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20220524094447.332186-1-douglas.raillard@arm.com
tools/lib/bpf/btf.c