Avoid silently ignoring JIT failures. The test cases should all succeed JIT compilation; if not it is a bug in the JIT implementation and should be reported.
Introduce a configuration setting RTE_BPF_JIT_SUPPORTED which is cleaner that adding ARCH specific #ifdef. Signed-off-by: Stephen Hemminger <[email protected]> Acked-by: Marat Khalili <[email protected]> --- app/test/test_bpf.c | 8 ++++++++ lib/bpf/meson.build | 2 ++ 2 files changed, 10 insertions(+) diff --git a/app/test/test_bpf.c b/app/test/test_bpf.c index b54e36910b..9adffcce64 100644 --- a/app/test/test_bpf.c +++ b/app/test/test_bpf.c @@ -3656,6 +3656,14 @@ run_test(const struct bpf_test *tst) rv, strerror(rv)); } } +#ifdef RTE_BPF_JIT_SUPPORTED + else { + /* a JIT backend exists for this arch, so it must compile */ + printf("%s@%d: %s: no JIT code generated;\n", + __func__, __LINE__, tst->name); + ret = -1; + } +#endif rte_bpf_destroy(bpf); return ret; diff --git a/lib/bpf/meson.build b/lib/bpf/meson.build index 7e8a300e3f..04ede96689 100644 --- a/lib/bpf/meson.build +++ b/lib/bpf/meson.build @@ -27,8 +27,10 @@ sources = files( ) if arch_subdir == 'x86' and dpdk_conf.get('RTE_ARCH_64') + dpdk_conf.set('RTE_BPF_JIT_SUPPORTED', 1) sources += files('bpf_jit_x86.c') elif dpdk_conf.has('RTE_ARCH_ARM64') + dpdk_conf.set('RTE_BPF_JIT_SUPPORTED', 1) sources += files('bpf_jit_arm64.c') endif -- 2.53.0

