diff mbox series

bpftool: Fix version string in recursive builds

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

Commit Message

Ben Hutchings Aug. 13, 2020, 11:58 p.m. UTC
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(-)

Comments

Yonghong Song Aug. 14, 2020, 3:43 p.m. UTC | #1
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))
>
Ben Hutchings Aug. 14, 2020, 10:17 p.m. UTC | #2
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))
> >
Yonghong Song Aug. 14, 2020, 10:55 p.m. UTC | #3
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 mbox series

Patch

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))