Re: make samples/bpf/ using gcc instead of clang/llvm

From: Joel Fernandes
Date: Wed Jan 27 2016 - 01:23:57 EST


Hi Alexei,

Ok, I take that back. I see how it works now. Thanks for sharing that.

On Tue, Jan 26, 2016 at 10:18 PM, Joel Fernandes <agnel.joel@xxxxxxxxx> wrote:
> Alexei,
>
> Thanks for the quick reply.
>
> But, the bpf sample programs like tracex1_kern.c are marked with
> hostprogs-y in the Makefile as well, just like test_verifier.c. How
> does Kbuild/Make know when to use gcc and when to use clang?
>
> Best,
>
> On Tue, Jan 26, 2016 at 10:08 PM, Alexei Starovoitov
> <alexei.starovoitov@xxxxxxxxx> wrote:
>> On Tue, Jan 26, 2016 at 09:51:54PM -0800, Joel Fernandes wrote:
>>> Hi Brendan, Alexei,
>>>
>>> I noticed your patch fixing the $subject issue.
>>>
>>> https://patchwork.ozlabs.org/patch/471118/
>>>
>>> However, I still see make samples/bpf/ using gcc instead of clang.
>>>
>>> Here's a verbose kbuild output of make samples/bpf/. My kernel version
>>> is 4.4. It looks to me like Kbuild is ignoring the Makefile in
>>> samples/bpf/. Let me know if you spot anything of the ordinary?
>>> Thanks.
>>>
>>> make KBUILD_VERBOSE=1 samples/bpf/
>>> [..]
>>> make KBUILD_MODULES=1 \
>>> -f /home/joel/data/repo/linux-4.4/scripts/Makefile.build obj=samples/bpf
>>> (cat /dev/null; ) > samples/bpf/modules.order
>>> gcc -Wp,-MD,samples/bpf/.test_verifier.o.d -Isamples/bpf -Wall
>>> -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer
>>> -std=gnu89 -I/home/joel/data/repo/linux-4.4/./usr/include
>>> -I./usr/include -c -o samples/bpf/test_verifier.o
>>> /home/joel/data/repo/linux-4.4/samples/bpf/test_verifier.c
>>> /home/joel/data/repo/linux-4.4/samples/bpf/test_verifier.c:12:23:
>>> fatal error: linux/bpf.h: No such file or directory
>>> #include <linux/bpf.h>
>>> ^
>>> compilation terminated.
>>
>> test_verifier.c should be built with gcc.
>> *_kern.c are built with clang.
>> In this case likely 'make headers_install' is missing.
>>