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); native clang + llc is useful for old school tracing only (before CO-RE).