[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAEf4BzbahEkKfU_Eys1Tu6SJkZd=RDv=-H01m5KesNGfAuBK6g@mail.gmail.com>
Date: Tue, 15 Oct 2019 16:50:58 -0700
From: Andrii Nakryiko <andrii.nakryiko@...il.com>
To: Alexei Starovoitov <ast@...com>
Cc: Andrii Nakryiko <andriin@...com>,
"bpf@...r.kernel.org" <bpf@...r.kernel.org>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"daniel@...earbox.net" <daniel@...earbox.net>,
Kernel Team <Kernel-team@...com>
Subject: Re: [PATCH bpf-next 5/6] selftests/bpf: replace test_progs and
test_maps w/ general rule
On Tue, Oct 15, 2019 at 4:41 PM Alexei Starovoitov <ast@...com> wrote:
>
> On 10/15/19 3:03 PM, Andrii Nakryiko wrote:
> > Define test runner generation meta-rule that codifies dependencies
> > between test runner, its tests, and its dependent BPF programs. Use that
> > for defining test_progs and test_maps test-runners. Also additionally define
> > 3 flavors of test_progs:
> > - alu32, which builds BPF programs with 32-bit registers codegen;
> > - bpf_gcc, which build BPF programs using GCC, if it supports BPF target;
> > - native, which uses a mix of native Clang target and BPF target for LLC.
>
> Great improvement, but it's taking it too far.
> (clang -I. -I/data/users/ast/net-next/tools/testing/selftests/bpf -g
> -D__TARGET_ARCH_x86 -I. -I./include/uapi
> -I/data/users/ast/net-next/tools/include/uapi
> -I/data/users/ast/net-next/tools/lib/bpf
> -I/data/users/ast/net-next/tools/testing/selftests/usr/include
> -idirafter /usr/local/include -idirafter
> /data/users/ast/llvm/bld/lib/clang/10.0.0/include -idirafter
> /usr/include -Wno-compare-distinct-pointer-types -O2 -emit-llvm -c
> progs/test_core_reloc_existence.c -o - || echo "BPF obj compilation
> failed") | llc -march=bpf -mcpu=probe -filetype=obj -o
> /data/users/ast/net-next/tools/testing/selftests/bpf/native/test_core_reloc_existence.o
> progs/test_core_reloc_existence.c:47:18: error: use of unknown builtin
> '__builtin_preserve_field_info' [-Wimplicit-function-declaration]
> out->a_exists = bpf_core_field_exists(in->a);
Do you use latest clang that supports __builtin_preserve_field_info()?
All the flavors are building just fine for me with latest clang.
>
> native clang + llc is useful for old school tracing only (before CO-RE).
Don't disagree (I actually have little context why we needed this
special case at all), but I had no errors or warnings whatsoever. I
think in this particular case it's not specific to test_progs-native
build, can you please double-check on your side?
Powered by blists - more mailing lists