On Fri, Sep 06, 2019 at 09:09:17AM +0000, Andrii Nakryiko wrote: > On 9/6/19 8:31 AM, Jiri Olsa wrote: > > hi, > > when including btf.h in bpftrace, I'm getting -Wcast-qual warnings like: > > > > bpf/btf.h: In function ‘btf_var_secinfo* btf_var_secinfos(const btf_type*)’: > > bpf/btf.h:302:41: warning: cast from type ‘const btf_type*’ to type > > ‘btf_var_secinfo*’ casts away qualifiers [-Wcast-qual] > > 302 | return (struct btf_var_secinfo *)(t + 1); > > | ^ > > > > I changed the btf.h header to comply with -Wcast-qual checks > > and used const cast away casting in libbpf objects, where it's > > Hey Jiri, > > We made all those helper funcs return non-const structs intentionally to > improve their usability and avoid all those casts that you added back. > > Also, those helpers are now part of public API, so we can't just change > them to const, as it can break existing users easily. > > If there is a need to run with -Wcast-qual, we should probably disable > those checks where appropriate in libbpf code. > > So this will be a NACK from me, sorry. ok, I'll disable disable it in bpftrace code then thanks, jirka > > > all related to deduplication code, so I believe loosing const > > is fine there. > > > > thanks, > > jirka > > > > > > --- > > Jiri Olsa (7): > > libbpf: Use const cast for btf_int_* functions > > libbpf: Return const btf_array from btf_array inline function > > libbpf: Return const btf_enum from btf_enum inline function > > libbpf: Return const btf_member from btf_members inline function > > libbpf: Return const btf_param from btf_params inline function > > libbpf: Return const btf_var from btf_var inline function > > libbpf: Return const struct btf_var_secinfo from btf_var_secinfos inline function > > > > tools/lib/bpf/btf.c | 21 +++++++++++---------- > > tools/lib/bpf/btf.h | 30 +++++++++++++++--------------- > > tools/lib/bpf/libbpf.c | 2 +- > > 3 files changed, 27 insertions(+), 26 deletions(-) > > >