Failed to build arm64 bpf samples with LLVM 3.7 on 4.3 kernel

Shi, Yang yang.shi at linaro.org
Tue Nov 10 16:53:28 PST 2015


On 11/10/2015 4:47 PM, Alexei Starovoitov wrote:
> On Tue, Nov 10, 2015 at 03:10:42PM -0800, Shi, Yang wrote:
>>
>>> Try hacking it by adding #define __ASM_SYSREG_H to prevent inclusion
>>> of that file? all those asms are unused anyway.
>>> tracing samples include kernel headers to have exact struct layout.
>>> and #include skbuff.h can be removed from almost all samples.
>>> In-kernel 'struct sk_buff' only used inside tracex1_kern.c
>>
>> The below change works:
>>
>>          clang $(NOSTDINC_FLAGS) $(LINUXINCLUDE) $(EXTRA_CFLAGS) \
>> -               -D__KERNEL__ -Wno-unused-value -Wno-pointer-sign \
>> +               -D__KERNEL__ -D__ASM_SYSREG_H -Wno-unused-value
>> -Wno-pointer-sign \
>>                  -O2 -emit-llvm -c $< -o -| $(LLC) -march=bpf -filetype=obj
>> -o $@
>>
>> Is it ok for upstream too?
>
> It's fragile and ugly, but I don't see a cleaner way for arm64,
> so yes, please submit it officially.

Yes, but anyway I could add some comment to explain the workaround. If 
anyone else run into such issue in the future, at least they could know 
how to workaround it.

Thanks,
Yang

>
> Thanks!
>




More information about the linux-arm-kernel mailing list