Message ID | 20200813235837.GA497088@decadent.org.uk |
---|---|
State | Changes Requested |
Delegated to: | BPF Maintainers |
Headers | show |
Series | bpftool: Fix version string in recursive builds | expand |
On 8/13/20 4:58 PM, Ben Hutchings wrote: > When bpftool is built as part of a Debian package build, which itself > uses make, "bpftool version" shows: > > bpftool vmake[4]: Entering directory /build/linux-5.8/tools/bpf/bpftool 5.8.8.0 make[4]: Leaving directory /build/linux-5.8 > > Although we pass the "--no-print-directory" option, this is overridden > by the environment variable "MAKEFLAGS=w". Clear MAKEFLAGS for the > "make kernelversion" command. > > I have no explanation for the doubled ".8" in the version string, but > this seems to fix that as well. > > Signed-off-by: Ben Hutchings <benh@debian.org> > --- > tools/bpf/bpftool/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile > index 9e85f101be85..7fbad8cbd171 100644 > --- a/tools/bpf/bpftool/Makefile > +++ b/tools/bpf/bpftool/Makefile > @@ -25,7 +25,7 @@ endif > > LIBBPF = $(LIBBPF_PATH)libbpf.a > > -BPFTOOL_VERSION := $(shell make -rR --no-print-directory -sC ../../.. kernelversion) > +BPFTOOL_VERSION := $(shell MAKEFLAGS= make -rR --no-print-directory -sC ../../.. kernelversion) I tried the following --- a/tools/bpf/bpftool/Makefile +++ b/tools/bpf/bpftool/Makefile @@ -25,7 +25,7 @@ endif LIBBPF = $(LIBBPF_PATH)libbpf.a -BPFTOOL_VERSION := $(shell make -rR --no-print-directory -sC ../../.. kernelversion) +BPFTOOL_VERSION := $(shell MAKEFLAGS=w make -rR --no-print-directory -sC ../../.. kernelversion) -bash-4.4$ ./bpftool version ./bpftool v5.8.0 I set env variable MAKEFLAGS=w, and build bpftool it works fine too. Maybe I miss something or debian changed top level Makefile? I am testing against latest bpf tree. > > $(LIBBPF): FORCE > $(if $(LIBBPF_OUTPUT),@mkdir -p $(LIBBPF_OUTPUT)) >
On Fri, 2020-08-14 at 08:43 -0700, Yonghong Song wrote: [...] > I tried the following > > --- a/tools/bpf/bpftool/Makefile > +++ b/tools/bpf/bpftool/Makefile > @@ -25,7 +25,7 @@ endif > > LIBBPF = $(LIBBPF_PATH)libbpf.a > > -BPFTOOL_VERSION := $(shell make -rR --no-print-directory -sC ../../.. > kernelversion) > +BPFTOOL_VERSION := $(shell MAKEFLAGS=w make -rR --no-print-directory > -sC ../../.. kernelversion) > > -bash-4.4$ ./bpftool version > ./bpftool v5.8.0 > > I set env variable MAKEFLAGS=w, and build bpftool it works fine too. > Maybe I miss something or debian changed top level Makefile? Yes, but we don't change MAKEFLAGS or any of the logic around quietness or verbosity. I assume there are other factors involved, as I've also been unable to construct a simple reproducer. Ben. > I am testing against latest bpf tree. > > > > > $(LIBBPF): FORCE > > $(if $(LIBBPF_OUTPUT),@mkdir -p $(LIBBPF_OUTPUT)) > >
On 8/14/20 3:17 PM, Ben Hutchings wrote: > On Fri, 2020-08-14 at 08:43 -0700, Yonghong Song wrote: > [...] >> I tried the following >> >> --- a/tools/bpf/bpftool/Makefile >> +++ b/tools/bpf/bpftool/Makefile >> @@ -25,7 +25,7 @@ endif >> >> LIBBPF = $(LIBBPF_PATH)libbpf.a >> >> -BPFTOOL_VERSION := $(shell make -rR --no-print-directory -sC ../../.. >> kernelversion) >> +BPFTOOL_VERSION := $(shell MAKEFLAGS=w make -rR --no-print-directory >> -sC ../../.. kernelversion) >> >> -bash-4.4$ ./bpftool version >> ./bpftool v5.8.0 >> >> I set env variable MAKEFLAGS=w, and build bpftool it works fine too. >> Maybe I miss something or debian changed top level Makefile? > > Yes, but we don't change MAKEFLAGS or any of the logic around quietness > or verbosity. > > I assume there are other factors involved, as I've also been unable to > construct a simple reproducer. It would be good to know what is the exact problem, and then we can decide whether this patch is the most appropriate fix or not. > > Ben. > >> I am testing against latest bpf tree. >> >>> >>> $(LIBBPF): FORCE >>> $(if $(LIBBPF_OUTPUT),@mkdir -p $(LIBBPF_OUTPUT)) >>>
diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile index 9e85f101be85..7fbad8cbd171 100644 --- a/tools/bpf/bpftool/Makefile +++ b/tools/bpf/bpftool/Makefile @@ -25,7 +25,7 @@ endif LIBBPF = $(LIBBPF_PATH)libbpf.a -BPFTOOL_VERSION := $(shell make -rR --no-print-directory -sC ../../.. kernelversion) +BPFTOOL_VERSION := $(shell MAKEFLAGS= make -rR --no-print-directory -sC ../../.. kernelversion) $(LIBBPF): FORCE $(if $(LIBBPF_OUTPUT),@mkdir -p $(LIBBPF_OUTPUT))
When bpftool is built as part of a Debian package build, which itself uses make, "bpftool version" shows: bpftool vmake[4]: Entering directory /build/linux-5.8/tools/bpf/bpftool 5.8.8.0 make[4]: Leaving directory /build/linux-5.8 Although we pass the "--no-print-directory" option, this is overridden by the environment variable "MAKEFLAGS=w". Clear MAKEFLAGS for the "make kernelversion" command. I have no explanation for the doubled ".8" in the version string, but this seems to fix that as well. Signed-off-by: Ben Hutchings <benh@debian.org> --- tools/bpf/bpftool/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)