On 10/22/19 6:35 PM, Prabhakar Kushwaha wrote:
Adding other mailing list, folks...
Hi All,
I am trying to build kselftest on Linux-5.4 on ubuntu 18.04. I installed LLVM-9.0.0 and Clang-9.0.0 from below links after following steps from [1] because of discussion [2]
Could you try latest llvm trunk (pre-release 10.0.0)? LLVM 9.0.0 has some codes for CORE, but it is not fully supported and has some bugs which are only fixed in LLVM 10.0.0. We intend to make llvm 10 as the one we claim we have support. Indeed CORE related changes are mostly added during 10.0.0 development period.
https://urldefense.proofpoint.com/v2/url?u=https-3A__releases.llvm.org_9.0.0... https://urldefense.proofpoint.com/v2/url?u=https-3A__releases.llvm.org_9.0.0... https://urldefense.proofpoint.com/v2/url?u=https-3A__releases.llvm.org_9.0.0...
Now, i am trying with llc -march=bpf, with this segmentation fault is coming as below:
gcc -g -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -DHAVE_GENHDR -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_flow_dissector.c /usr/src/tovards/linux/tools/testing/selftests/bpf/test_stub.o /usr/src/tovards/linux/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/tovards/linux/tools/testing/selftests/bpf/test_flow_dissector gcc -g -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -DHAVE_GENHDR -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_tcp_check_syncookie_user.c /usr/src/tovards/linux/tools/testing/selftests/bpf/test_stub.o /usr/src/tovards/linux/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/tovards/linux/tools/testing/selftests/bpf/test_tcp_check_syncookie_user gcc -g -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -DHAVE_GENHDR -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_lirc_mode2_user.c /usr/src/tovards/linux/tools/testing/selftests/bpf/test_stub.o /usr/src/tovards/linux/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/tovards/linux/tools/testing/selftests/bpf/test_lirc_mode2_user (clang -I. -I./include/uapi -I../../../include/uapi -I/usr/src/tovards/linux/tools/testing/selftests/bpf/../usr/include -D__TARGET_ARCH_arm64 -g -idirafter /usr/local/include -idirafter /usr/local/lib/clang/9.0.0/include -idirafter /usr/include/aarch64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types -O2 -target bpf -emit-llvm \ -c progs/test_core_reloc_arrays.c -o - || echo "clang failed") | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/tovards/linux/tools/testing/selftests/bpf/test_core_reloc_arrays.o Stack dump: 0. Program arguments: llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/tovards/linux/tools/testing/selftests/bpf/test_core_reloc_arrays.o
- Running pass 'Function Pass Manager' on module '<stdin>'.
- Running pass 'BPF Assembly Printer' on function '@test_core_arrays'
#0 0x0000aaaac618db08 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/usr/local/bin/llc+0x152eb08) Segmentation fault Makefile:260: recipe for target '/usr/src/tovards/linux/tools/testing/selftests/bpf/test_core_reloc_arrays.o' failed make[1]: *** [/usr/src/tovards/linux/tools/testing/selftests/bpf/test_core_reloc_arrays.o] Error 139
To add more details, Commenting following lines in bpf/progs/test_core_reloc_arrays.c removes the segmentation fault.
--- a/tools/testing/selftests/bpf/progs/test_core_reloc_arrays.c +++ b/tools/testing/selftests/bpf/progs/test_core_reloc_arrays.c @@ -41,15 +41,14 @@ int test_core_arrays(void *ctx) if (BPF_CORE_READ(&out->a2, &in->a[2])) return 1; /* in->b[1][2][3] */
if (BPF_CORE_READ(&out->b123, &in->b[1][2][3]))
return 1;
+// if (BPF_CORE_READ(&out->b123, &in->b[1][2][3])) +// return 1; /* in->c[1].c */ if (BPF_CORE_READ(&out->c1c, &in->c[1].c)) return 1; /* in->d[0][0].d */
if (BPF_CORE_READ(&out->d00d, &in->d[0][0].d))
return 1;
+// if (BPF_CORE_READ(&out->d00d, &in->d[0][0].d)) +// return 1; return 0; }
It looks to be something related llc and more than 1 dimension array. has anyone faced such error.
Please suggest!!
--prabhakar(pk)
[1] https://urldefense.proofpoint.com/v2/url?u=https-3A__stackoverflow.com_quest...
[2] https://urldefense.proofpoint.com/v2/url?u=https-3A__www.mail-2Darchive.com_...
Linux top-commit
commit bc88f85c6c09306bd21917e1ae28205e9cd775a7 (HEAD -> master, origin/master, origin/HEAD) Author: Ben Dooks ben.dooks@codethink.co.uk Date: Wed Oct 16 12:24:58 2019 +0100
kthread: make __kthread_queue_delayed_work static The __kthread_queue_delayed_work is not exported so make it static, to avoid the following sparse warning: kernel/kthread.c:869:6: warning: symbol
'__kthread_queue_delayed_work' was not declared. Should it be static?
Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>