On Wed, 2021-02-17 at 23:16 -0800, Yonghong Song wrote: > On 2/15/21 5:12 PM, Ilya Leoshkevich wrote: > > The logic follows that of BTF_KIND_INT most of the time. > > Sanitization > > replaces BTF_KIND_FLOATs with equally-sized BTF_KIND_INTs on older > > kernels. > > > > Signed-off-by: Ilya Leoshkevich <iii@xxxxxxxxxxxxx> > > --- > > tools/lib/bpf/btf.c | 44 > > +++++++++++++++++++++++++++++++++ > > tools/lib/bpf/btf.h | 8 ++++++ > > tools/lib/bpf/btf_dump.c | 4 +++ > > tools/lib/bpf/libbpf.c | 29 +++++++++++++++++++++- > > tools/lib/bpf/libbpf.map | 5 ++++ > > tools/lib/bpf/libbpf_internal.h | 2 ++ > > 6 files changed, 91 insertions(+), 1 deletion(-) > > > > diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c > > index d9c10830d749..07a30e98c3de 100644 > > --- a/tools/lib/bpf/btf.c > > +++ b/tools/lib/bpf/btf.c [...] > > @@ -2445,6 +2450,9 @@ static void bpf_object__sanitize_btf(struct > > bpf_object *obj, struct btf *btf) > > } else if (!has_func_global && btf_is_func(t)) { > > /* replace BTF_FUNC_GLOBAL with > > BTF_FUNC_STATIC */ > > t->info = BTF_INFO_ENC(BTF_KIND_FUNC, 0, > > 0); > > + } else if (!has_float && btf_is_float(t)) { > > + /* replace FLOAT with INT */ > > + t->info = BTF_INFO_ENC(BTF_KIND_FLOAT, 0, > > 0); > > You can replace float with a "pointer to void" type. Wouldn't this cause problems with 32-bit floats on 64-bit machines? [...]