[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJ+HfNgMrK+r8CLNM84L8SpeGOUFALjbn0MjQpiVCUQByZXk6A@mail.gmail.com>
Date: Tue, 15 May 2018 08:05:09 +0200
From: Björn Töpel <bjorn.topel@...il.com>
To: Jakub Kicinski <jakub.kicinski@...ronome.com>
Cc: Alexei Starovoitov <alexei.starovoitov@...il.com>,
Daniel Borkmann <daniel@...earbox.net>,
oss-drivers@...ronome.com, Netdev <netdev@...r.kernel.org>,
Y Song <ys114321@...il.com>,
Jesper Dangaard Brouer <brouer@...hat.com>
Subject: Re: [PATCH bpf-next v2 3/5] samples: bpf: fix build after move to
compiling full libbpf.a
2018-05-15 7:35 GMT+02:00 Jakub Kicinski <jakub.kicinski@...ronome.com>:
> There are many ways users may compile samples, some of them got
> broken by commit 5f9380572b4b ("samples: bpf: compile and link
> against full libbpf"). Improve path resolution and make libbpf
> building a dependency of source files to force its build.
>
> Samples should now again build with any of:
> cd samples/bpf; make
> make samples/bpf/
> make -C samples/bpf
> cd samples/bpf; make O=builddir
> make samples/bpf/ O=builddir
> make -C samples/bpf O=builddir
> export KBUILD_OUTPUT=builddir
> make samples/bpf/
> make -C samples/bpf
>
> Fixes: 5f9380572b4b ("samples: bpf: compile and link against full libbpf")
> Reported-by: Björn Töpel <bjorn.topel@...il.com>
> Signed-off-by: Jakub Kicinski <jakub.kicinski@...ronome.com>
> ---
> samples/bpf/Makefile | 17 ++++++++++++-----
> 1 file changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
> index 9e255ca4059a..0dae77c88d2e 100644
> --- a/samples/bpf/Makefile
> +++ b/samples/bpf/Makefile
> @@ -1,4 +1,8 @@
> # SPDX-License-Identifier: GPL-2.0
> +
> +BPF_SAMPLES_PATH ?= $(abspath $(srctree)/$(src))
> +TOOLS_PATH := $(BPF_SAMPLES_PATH)/../../tools
> +
> # List of programs to build
> hostprogs-y := test_lru_dist
> hostprogs-y += sock_example
> @@ -49,7 +53,8 @@ hostprogs-y += xdpsock
> hostprogs-y += xdp_fwd
>
> # Libbpf dependencies
> -LIBBPF := ../../tools/lib/bpf/libbpf.a
> +LIBBPF = $(TOOLS_PATH)/lib/bpf/libbpf.a
> +
> CGROUP_HELPERS := ../../tools/testing/selftests/bpf/cgroup_helpers.o
> TRACE_HELPERS := ../../tools/testing/selftests/bpf/trace_helpers.o
>
> @@ -233,15 +238,16 @@ CLANG_ARCH_ARGS = -target $(ARCH)
> endif
>
> # Trick to allow make to be run from this directory
> -all: $(LIBBPF)
> - $(MAKE) -C ../../ $(CURDIR)/
> +all:
> + $(MAKE) -C ../../ $(CURDIR)/ BPF_SAMPLES_PATH=$(CURDIR)
>
> clean:
> $(MAKE) -C ../../ M=$(CURDIR) clean
> @rm -f *~
>
> $(LIBBPF): FORCE
> - $(MAKE) -C $(dir $@)
> +# Fix up variables inherited from Kbuild that tools/ build system won't like
> + $(MAKE) -C $(dir $@) RM='rm -rf' LDFLAGS= srctree=$(BPF_SAMPLES_PATH)/../../ O=
>
> $(obj)/syscall_nrs.s: $(src)/syscall_nrs.c
> $(call if_changed_dep,cc_s_c)
> @@ -272,7 +278,8 @@ verify_target_bpf: verify_cmds
> exit 2; \
> else true; fi
>
> -$(src)/*.c: verify_target_bpf
> +$(BPF_SAMPLES_PATH)/*.c: verify_target_bpf $(LIBBPF)
> +$(src)/*.c: verify_target_bpf $(LIBBPF)
>
> $(obj)/tracex5_kern.o: $(obj)/syscall_nrs.h
>
> --
> 2.17.0
>
Thanks a bunch for this!
Tested-by: Björn Töpel <bjorn.topel@...il.com>
Powered by blists - more mailing lists