Messages in this thread | | | From | Andrii Nakryiko <> | Date | Tue, 6 Feb 2024 09:32:02 -0800 | Subject | Re: [PATCH bpf-next v2 1/2] bpf: Have bpf_rdonly_cast() take a const pointer |
| |
On Tue, Feb 6, 2024 at 7:44 AM Daniel Xu <dxu@dxuuu.xyz> wrote: > > Hi Jiri, > > On Tue, Feb 06, 2024 at 02:42:22PM +0100, Jiri Olsa wrote: > > On Sun, Feb 04, 2024 at 02:06:34PM -0700, Daniel Xu wrote: > > > Since 20d59ee55172 ("libbpf: add bpf_core_cast() macro"), libbpf is now > > > exporting a const arg version of bpf_rdonly_cast(). This causes the > > > following conflicting type error when generating kfunc prototypes from > > > BTF: > > > > > > In file included from skeleton/pid_iter.bpf.c:5: > > > /home/dxu/dev/linux/tools/bpf/bpftool/bootstrap/libbpf/include/bpf/bpf_core_read.h:297:14: error: conflicting types for 'bpf_rdonly_cast' > > > extern void *bpf_rdonly_cast(const void *obj__ign, __u32 btf_id__k) __ksym __weak; > > > ^ > > > ./vmlinux.h:135625:14: note: previous declaration is here > > > extern void *bpf_rdonly_cast(void *obj__ign, u32 btf_id__k) __weak __ksym; > > > > hi, > > I'm hiting more of these when compiling bpf selftests (attached), > > it looks like some kfuncs declarations in bpf_kfuncs.h might be in conflict > > Yep, I was actually going to put that as an office hours topic on how we > want to handle that for selftests. Marking kfuncs in bpf_kfuncs.h and > bpf_experimental.h as __weak is an option. ifdef is another option. > Final option I can think of is bumping required pahole version up and > simply deleting all the kfunc definitions.
I think we should mark all kfuncs in selftests as __weak. And then audit all of them and add consts where it makes sense and make sure that all definitions are compatible between vmlinux.h and manual declarations. I'd rather avoid #ifdef'ing anything, it should work as is.
> > But given that pahole changes come with the feature flag, I don't see > this as a pressing issue. So I was planning on getting to that after > current outstanding patchsets (just so there's less stuff for me to > juggle). > > [...] > > Thanks, > Daniel
| |