lkml.org 
[lkml]   [2018]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 4/4] selftests/bpf: fix compiling errors
    On Tue, Mar 27, 2018 at 11:52:27AM +0200, Daniel Borkmann wrote:
    > On 03/27/2018 11:00 AM, Du, Changbin wrote:
    > > On Tue, Mar 27, 2018 at 10:52:57AM +0200, Daniel Borkmann wrote:
    > >> On 03/27/2018 05:06 AM, Du, Changbin wrote:
    > >>> On Mon, Mar 26, 2018 at 08:02:30PM -0700, Alexei Starovoitov wrote:
    > >>>> On Tue, Mar 27, 2018 at 10:20:10AM +0800, Du, Changbin wrote:
    > >>>>> On Mon, Mar 26, 2018 at 07:55:13AM -0700, Alexei Starovoitov wrote:
    > >>>>>> On Mon, Mar 26, 2018 at 05:23:28PM +0800, changbin.du@intel.com wrote:
    > >>>>>>> Signed-off-by: Changbin Du <changbin.du@intel.com>
    > >>>>>>> ---
    > >>>>>>> tools/testing/selftests/bpf/Makefile | 5 +++--
    > >>>>>>> 1 file changed, 3 insertions(+), 2 deletions(-)
    > >>>>>>>
    > >>>>>>> diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
    > >>>>>>> index 5c43c18..dc0fdc8 100644
    > >>>>>>> --- a/tools/testing/selftests/bpf/Makefile
    > >>>>>>> +++ b/tools/testing/selftests/bpf/Makefile
    > >>>>>>> @@ -10,7 +10,8 @@ ifneq ($(wildcard $(GENHDR)),)
    > >>>>>>> GENFLAGS := -DHAVE_GENHDR
    > >>>>>>> endif
    > >>>>>>>
    > >>>>>>> -CFLAGS += -Wall -O2 -I$(APIDIR) -I$(LIBDIR) -I$(GENDIR) $(GENFLAGS) -I../../../include
    > >>>>>>> +CFLAGS += -Wall -O2 -I$(APIDIR) -I$(LIBDIR) -I$(GENDIR) $(GENFLAGS) \
    > >>>>>>> + -I../../../include -I../../../../usr/include
    > >>>>>>> LDLIBS += -lcap -lelf -lrt -lpthread
    > >>>>>>>
    > >>>>>>> # Order correspond to 'make run_tests' order
    > >>>>>>> @@ -62,7 +63,7 @@ else
    > >>>>>>> CPU ?= generic
    > >>>>>>> endif
    > >>>>>>>
    > >>>>>>> -CLANG_FLAGS = -I. -I./include/uapi -I../../../include/uapi \
    > >>>>>>> +CLANG_FLAGS = -I. -I./include/uapi -I../../../include/uapi -I../../../../usr/include \
    > >>>>>>> -Wno-compare-distinct-pointer-types
    > >>>>>>
    > >>>>>> Nack.
    > >>>>>> I suspect that will break the build for everyone else who's doing it in the directory
    > >>>>>> itself instead of the outer one.
    > >>>>>
    > >>>>> This one? But I didn't see any problem.
    > >>>>
    > >>>> because the build was lucky and additional path ../../../../usr/include didn't point
    > >>>> to a valid dir?
    > >>
    > >> Agree.
    > >>
    > >>> I am sorry but I don't understand why you mean *lucky*. Of cause, the path is valid.
    > >>
    > >> The problem is that this suddenly requires users to do a 'make headers_install' in
    > >> order to populate usr/include/ directory in the first place. While it's annoying
    > >> enough for BPF samples where this is needed, I absolutely don't want to introduce
    > >> this for BPF kselftests. It's the wrong approach. Besides, in tools infra, there is
    > >> a tools/arch/*/include/uapi/asm/bitsperlong.h header copy already, so we really need
    > >> to use that instead. Please adapt your patch accordingly and respin. Please also Cc
    > >> us and netdev@vger.kernel.org for BPF kselftests changes.
    > >>
    > > Thanks for the explanation. So we expect that tools/arch/*/include is in the searching list, right?
    > > The corrent makefile seems not. How do you get this built?
    >
    > E.g. take a look at tools/include/asm/barrier.h or tools/include/uapi/asm/bpf_perf_event.h
    > just to name two examples. We'd need something similar to this which then points to the
    > arch specific includes.
    >
    > Thanks,
    > Daniel
    >
    ok, I see. But I am going to skip this fix this time. Because one get fixed, another appears.
    IMHO, It doesn't sound like a good idea to sync all these files manually. We should have
    better solution I think.

    clang -I. -I./include/uapi -I../../../include/uapi -Wno-compare-distinct-pointer-types \
    -O2 -target bpf -emit-llvm -c test_pkt_access.c -o - | \
    llc -march=bpf -mcpu=generic -filetype=obj -o /home/changbin/work/linux/tools/testing/selftests/bpf/test_pkt_access.o
    In file included from test_pkt_access.c:12:
    /usr/include/linux/ip.h:20:10: fatal error: 'asm/byteorder.h' file not found
    #include <asm/byteorder.h>


    > > changbin@gvt-dell-host:~/work/linux/tools/testing/selftests/bpf$ make -p
    > > [...]
    > > clang -I. -I./include/uapi -I../../../include/uapi -Wno-compare-distinct-pointer-types \
    > > -O2 -target bpf -emit-llvm -c test_pkt_access.c -o - | \
    > > llc -march=bpf -mcpu=generic -filetype=obj -o /home/changbin/work/linux/tools/testing/selftests/bpf/test_pkt_access.o
    > > In file included from test_pkt_access.c:9:
    > > In file included from ../../../include/uapi/linux/bpf.h:11:
    > > In file included from ./include/uapi/linux/types.h:5:
    > > /usr/include/asm-generic/int-ll64.h:11:10: fatal error: 'asm/bitsperlong.h' file not found
    > > #include <asm/bitsperlong.h>
    > >
    > >
    >

    --
    Thanks,
    Changbin Du

    \
     
     \ /
      Last update: 2018-03-27 12:29    [W:5.329 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site