Re: [PATCH 0/7] libbpf: Fix cast away const qualifiers in btf.h

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

> 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(-)
> 





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux