BPF List
 help / color / mirror / Atom feed
* [PATCH] bpftool: Allow building statically
@ 2022-02-17 12:04 Nikolay Borisov
  2022-02-18 16:08 ` Quentin Monnet
  0 siblings, 1 reply; 6+ messages in thread
From: Nikolay Borisov @ 2022-02-17 12:04 UTC (permalink / raw)
  To: andrii; +Cc: ast, bpf, Nikolay Borisov

Sometime it can be useful to haul around a statically built version of
bpftool. Simply add support for passing STATIC=1 while building to build
the tool statically.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
---

Currently the bpftool being distributed as part of libbpf-tools under bcc project
is dynamically built on a system using GLIBC 2.28, this makes the tool unusable on
ubuntu 18.04 for example. Perhaps after this patch has landed the bpftool in bcc
can be turned into a static binary.

 tools/bpf/bpftool/Makefile | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile
index 83369f55df61..835621e215e4 100644
--- a/tools/bpf/bpftool/Makefile
+++ b/tools/bpf/bpftool/Makefile
@@ -13,6 +13,10 @@ else
   Q = @
 endif

+ifeq ($(STATIC),1)
+	CFLAGS += --static
+endif
+
 BPF_DIR = $(srctree)/tools/lib/bpf

 ifneq ($(OUTPUT),)
--
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] bpftool: Allow building statically
  2022-02-17 12:04 [PATCH] bpftool: Allow building statically Nikolay Borisov
@ 2022-02-18 16:08 ` Quentin Monnet
  2022-02-18 16:14   ` Nikolay Borisov
  0 siblings, 1 reply; 6+ messages in thread
From: Quentin Monnet @ 2022-02-18 16:08 UTC (permalink / raw)
  To: Nikolay Borisov, andrii; +Cc: ast, bpf

2022-02-17 14:04 UTC+0200 ~ Nikolay Borisov <nborisov@suse.com>
> Sometime it can be useful to haul around a statically built version of
> bpftool. Simply add support for passing STATIC=1 while building to build
> the tool statically.
> 
> Signed-off-by: Nikolay Borisov <nborisov@suse.com>
> ---
> 
> Currently the bpftool being distributed as part of libbpf-tools under bcc project
> is dynamically built on a system using GLIBC 2.28, this makes the tool unusable on
> ubuntu 18.04 for example. Perhaps after this patch has landed the bpftool in bcc
> can be turned into a static binary.
> 
>  tools/bpf/bpftool/Makefile | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile
> index 83369f55df61..835621e215e4 100644
> --- a/tools/bpf/bpftool/Makefile
> +++ b/tools/bpf/bpftool/Makefile
> @@ -13,6 +13,10 @@ else
>    Q = @
>  endif
> 
> +ifeq ($(STATIC),1)
> +	CFLAGS += --static
> +endif
> +
>  BPF_DIR = $(srctree)/tools/lib/bpf
> 
>  ifneq ($(OUTPUT),)
> --
> 2.25.1
> 

Why not just pass the flag on the command line? I don't think the
Makefile overwrites it:

    $ CFLAGS=--static make

Quentin

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] bpftool: Allow building statically
  2022-02-18 16:08 ` Quentin Monnet
@ 2022-02-18 16:14   ` Nikolay Borisov
  2022-02-18 16:33     ` Quentin Monnet
  0 siblings, 1 reply; 6+ messages in thread
From: Nikolay Borisov @ 2022-02-18 16:14 UTC (permalink / raw)
  To: Quentin Monnet, andrii; +Cc: ast, bpf



On 18.02.22 г. 18:08 ч., Quentin Monnet wrote:
> 2022-02-17 14:04 UTC+0200 ~ Nikolay Borisov <nborisov@suse.com>
>> Sometime it can be useful to haul around a statically built version of
>> bpftool. Simply add support for passing STATIC=1 while building to build
>> the tool statically.
>>
>> Signed-off-by: Nikolay Borisov <nborisov@suse.com>
>> ---
>>
>> Currently the bpftool being distributed as part of libbpf-tools under bcc project
>> is dynamically built on a system using GLIBC 2.28, this makes the tool unusable on
>> ubuntu 18.04 for example. Perhaps after this patch has landed the bpftool in bcc
>> can be turned into a static binary.
>>
>>   tools/bpf/bpftool/Makefile | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile
>> index 83369f55df61..835621e215e4 100644
>> --- a/tools/bpf/bpftool/Makefile
>> +++ b/tools/bpf/bpftool/Makefile
>> @@ -13,6 +13,10 @@ else
>>     Q = @
>>   endif
>>
>> +ifeq ($(STATIC),1)
>> +	CFLAGS += --static
>> +endif
>> +
>>   BPF_DIR = $(srctree)/tools/lib/bpf
>>
>>   ifneq ($(OUTPUT),)
>> --
>> 2.25.1
>>
> 
> Why not just pass the flag on the command line? I don't think the
> Makefile overwrites it:
> 
>      $ CFLAGS=--static make

Yeah, this also works, I initially thought that overriding a variable on 
the command line would require having the override directive in the 
makefile but apparently is not the case. I guess this patch can be 
scratched.

> 
> Quentin
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] bpftool: Allow building statically
  2022-02-18 16:14   ` Nikolay Borisov
@ 2022-02-18 16:33     ` Quentin Monnet
  2022-02-18 19:58       ` Daniel Borkmann
  0 siblings, 1 reply; 6+ messages in thread
From: Quentin Monnet @ 2022-02-18 16:33 UTC (permalink / raw)
  To: Nikolay Borisov, andrii; +Cc: ast, bpf

2022-02-18 18:14 UTC+0200 ~ Nikolay Borisov <nborisov@suse.com>
> 
> 
> On 18.02.22 г. 18:08 ч., Quentin Monnet wrote:
>> 2022-02-17 14:04 UTC+0200 ~ Nikolay Borisov <nborisov@suse.com>
>>> Sometime it can be useful to haul around a statically built version of
>>> bpftool. Simply add support for passing STATIC=1 while building to build
>>> the tool statically.
>>>
>>> Signed-off-by: Nikolay Borisov <nborisov@suse.com>
>>> ---
>>>
>>> Currently the bpftool being distributed as part of libbpf-tools under
>>> bcc project
>>> is dynamically built on a system using GLIBC 2.28, this makes the
>>> tool unusable on
>>> ubuntu 18.04 for example. Perhaps after this patch has landed the
>>> bpftool in bcc
>>> can be turned into a static binary.
>>>
>>>   tools/bpf/bpftool/Makefile | 4 ++++
>>>   1 file changed, 4 insertions(+)
>>>
>>> diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile
>>> index 83369f55df61..835621e215e4 100644
>>> --- a/tools/bpf/bpftool/Makefile
>>> +++ b/tools/bpf/bpftool/Makefile
>>> @@ -13,6 +13,10 @@ else
>>>     Q = @
>>>   endif
>>>
>>> +ifeq ($(STATIC),1)
>>> +    CFLAGS += --static
>>> +endif
>>> +
>>>   BPF_DIR = $(srctree)/tools/lib/bpf
>>>
>>>   ifneq ($(OUTPUT),)
>>> -- 
>>> 2.25.1
>>>
>>
>> Why not just pass the flag on the command line? I don't think the
>> Makefile overwrites it:
>>
>>      $ CFLAGS=--static make
> 
> Yeah, this also works, I initially thought that overriding a variable on
> the command line would require having the override directive in the
> makefile but apparently is not the case. I guess this patch can be
> scratched.

You'd need something if the Makefile was initialising the variable, with
something like "CFLAGS = -O2" or "CFLAGS := -O2". But bpftool's Makefile
always uses "CFLAGS += ...", meaning it appends to the current value, so
you can pass whatever you want from the command line, as long as it
doesn't get overwritten by another flag (for example, passing "-O0"
would not work I think, since we add "-O2" in the Makefile).

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] bpftool: Allow building statically
  2022-02-18 16:33     ` Quentin Monnet
@ 2022-02-18 19:58       ` Daniel Borkmann
  2022-02-18 20:00         ` Quentin Monnet
  0 siblings, 1 reply; 6+ messages in thread
From: Daniel Borkmann @ 2022-02-18 19:58 UTC (permalink / raw)
  To: Quentin Monnet, Nikolay Borisov, andrii; +Cc: ast, bpf

On 2/18/22 5:33 PM, Quentin Monnet wrote:
> 2022-02-18 18:14 UTC+0200 ~ Nikolay Borisov <nborisov@suse.com>
>> On 18.02.22 г. 18:08 ч., Quentin Monnet wrote:
>>> 2022-02-17 14:04 UTC+0200 ~ Nikolay Borisov <nborisov@suse.com>
>>>> Sometime it can be useful to haul around a statically built version of
>>>> bpftool. Simply add support for passing STATIC=1 while building to build
>>>> the tool statically.
>>>>
>>>> Signed-off-by: Nikolay Borisov <nborisov@suse.com>
>>>> ---
>>>>
>>>> Currently the bpftool being distributed as part of libbpf-tools under
>>>> bcc project
>>>> is dynamically built on a system using GLIBC 2.28, this makes the
>>>> tool unusable on
>>>> ubuntu 18.04 for example. Perhaps after this patch has landed the
>>>> bpftool in bcc
>>>> can be turned into a static binary.
>>>>
>>>>    tools/bpf/bpftool/Makefile | 4 ++++
>>>>    1 file changed, 4 insertions(+)
>>>>
>>>> diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile
>>>> index 83369f55df61..835621e215e4 100644
>>>> --- a/tools/bpf/bpftool/Makefile
>>>> +++ b/tools/bpf/bpftool/Makefile
>>>> @@ -13,6 +13,10 @@ else
>>>>      Q = @
>>>>    endif
>>>>
>>>> +ifeq ($(STATIC),1)
>>>> +    CFLAGS += --static
>>>> +endif
>>>> +
>>>>    BPF_DIR = $(srctree)/tools/lib/bpf
>>>>
>>>>    ifneq ($(OUTPUT),)
>>>
>>> Why not just pass the flag on the command line? I don't think the
>>> Makefile overwrites it:
>>>
>>>       $ CFLAGS=--static make
>>
>> Yeah, this also works, I initially thought that overriding a variable on
>> the command line would require having the override directive in the
>> makefile but apparently is not the case. I guess this patch can be
>> scratched.
> 
> You'd need something if the Makefile was initialising the variable, with
> something like "CFLAGS = -O2" or "CFLAGS := -O2". But bpftool's Makefile
> always uses "CFLAGS += ...", meaning it appends to the current value, so
> you can pass whatever you want from the command line, as long as it
> doesn't get overwritten by another flag (for example, passing "-O0"
> would not work I think, since we add "-O2" in the Makefile).

We don't have an in-tree readme, but the `CFLAGS=--static make` use case
could probably be documented in [0] at minimum.

Cheers,
Daniel

   [0] https://github.com/libbpf/bpftool

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] bpftool: Allow building statically
  2022-02-18 19:58       ` Daniel Borkmann
@ 2022-02-18 20:00         ` Quentin Monnet
  0 siblings, 0 replies; 6+ messages in thread
From: Quentin Monnet @ 2022-02-18 20:00 UTC (permalink / raw)
  To: Daniel Borkmann, Nikolay Borisov, andrii; +Cc: ast, bpf

2022-02-18 20:58 UTC+0100 ~ Daniel Borkmann <daniel@iogearbox.net>
> On 2/18/22 5:33 PM, Quentin Monnet wrote:
>> 2022-02-18 18:14 UTC+0200 ~ Nikolay Borisov <nborisov@suse.com>
>>> On 18.02.22 г. 18:08 ч., Quentin Monnet wrote:
>>>> 2022-02-17 14:04 UTC+0200 ~ Nikolay Borisov <nborisov@suse.com>
>>>>> Sometime it can be useful to haul around a statically built version of
>>>>> bpftool. Simply add support for passing STATIC=1 while building to
>>>>> build
>>>>> the tool statically.
>>>>>
>>>>> Signed-off-by: Nikolay Borisov <nborisov@suse.com>
>>>>> ---
>>>>>
>>>>> Currently the bpftool being distributed as part of libbpf-tools under
>>>>> bcc project
>>>>> is dynamically built on a system using GLIBC 2.28, this makes the
>>>>> tool unusable on
>>>>> ubuntu 18.04 for example. Perhaps after this patch has landed the
>>>>> bpftool in bcc
>>>>> can be turned into a static binary.
>>>>>
>>>>>    tools/bpf/bpftool/Makefile | 4 ++++
>>>>>    1 file changed, 4 insertions(+)
>>>>>
>>>>> diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile
>>>>> index 83369f55df61..835621e215e4 100644
>>>>> --- a/tools/bpf/bpftool/Makefile
>>>>> +++ b/tools/bpf/bpftool/Makefile
>>>>> @@ -13,6 +13,10 @@ else
>>>>>      Q = @
>>>>>    endif
>>>>>
>>>>> +ifeq ($(STATIC),1)
>>>>> +    CFLAGS += --static
>>>>> +endif
>>>>> +
>>>>>    BPF_DIR = $(srctree)/tools/lib/bpf
>>>>>
>>>>>    ifneq ($(OUTPUT),)
>>>>
>>>> Why not just pass the flag on the command line? I don't think the
>>>> Makefile overwrites it:
>>>>
>>>>       $ CFLAGS=--static make
>>>
>>> Yeah, this also works, I initially thought that overriding a variable on
>>> the command line would require having the override directive in the
>>> makefile but apparently is not the case. I guess this patch can be
>>> scratched.
>>
>> You'd need something if the Makefile was initialising the variable, with
>> something like "CFLAGS = -O2" or "CFLAGS := -O2". But bpftool's Makefile
>> always uses "CFLAGS += ...", meaning it appends to the current value, so
>> you can pass whatever you want from the command line, as long as it
>> doesn't get overwritten by another flag (for example, passing "-O0"
>> would not work I think, since we add "-O2" in the Makefile).
> 
> We don't have an in-tree readme, but the `CFLAGS=--static make` use case
> could probably be documented in [0] at minimum.
> 
> Cheers,
> Daniel
> 
>   [0] https://github.com/libbpf/bpftool

Makes sense, I'll do this. Thanks Daniel!
Quentin

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-02-18 20:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-17 12:04 [PATCH] bpftool: Allow building statically Nikolay Borisov
2022-02-18 16:08 ` Quentin Monnet
2022-02-18 16:14   ` Nikolay Borisov
2022-02-18 16:33     ` Quentin Monnet
2022-02-18 19:58       ` Daniel Borkmann
2022-02-18 20:00         ` Quentin Monnet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox