From mboxrd@z Thu Jan 1 00:00:00 1970 From: yang.shi@linaro.org (Shi, Yang) Date: Tue, 10 Nov 2015 16:53:28 -0800 Subject: Failed to build arm64 bpf samples with LLVM 3.7 on 4.3 kernel In-Reply-To: <20151111004716.GB47378@ast-mbp.thefacebook.com> References: <564244B6.9050202@linaro.org> <56427972.5000004@linaro.org> <20151111004716.GB47378@ast-mbp.thefacebook.com> Message-ID: <56429188.5040602@linaro.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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! >