diff mbox series

[RFC] meson.build: don't include libbpf in the common source set

Message ID 20211005182443.2954499-1-alex.bennee@linaro.org (mailing list archive)
State New, archived
Headers show
Series [RFC] meson.build: don't include libbpf in the common source set | expand

Commit Message

Alex Bennée Oct. 5, 2021, 6:24 p.m. UTC
This library is only needed for the softmmu targets and as such
break static *-user builds where libbpf is detected and it tries to
link it into the user binaries.

Fixes: 46627f41b6 ("ebpf: Added eBPF RSS loader.")
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Richard Henderson Oct. 5, 2021, 6:51 p.m. UTC | #1
On 10/5/21 11:24 AM, Alex Bennée wrote:
> This library is only needed for the softmmu targets and as such
> break static *-user builds where libbpf is detected and it tries to
> link it into the user binaries.
> 
> Fixes: 46627f41b6 ("ebpf: Added eBPF RSS loader.")
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>   meson.build | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meson.build b/meson.build
> index 60f4f45165..d8bcf13b21 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -2307,7 +2307,7 @@ subdir('bsd-user')
>   subdir('linux-user')
>   subdir('ebpf')
>   
> -common_ss.add(libbpf)
> +softmmu_ss.add(libbpf)

Indeed.  I also think it should go into ebpf/meson.build, just to keep everything 
together.  Something like

softmmu_ss.add(when: libbpf,
   if_true: files('ebpf_rss.c', libbpf),
   if_false: files('ebpf_rss-stub.c'))


r~
Philippe Mathieu-Daudé Oct. 5, 2021, 7 p.m. UTC | #2
On 10/5/21 20:24, Alex Bennée wrote:
> This library is only needed for the softmmu targets and as such
> break static *-user builds where libbpf is detected and it tries to
> link it into the user binaries.
> 
> Fixes: 46627f41b6 ("ebpf: Added eBPF RSS loader.")
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  meson.build | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meson.build b/meson.build
> index 60f4f45165..d8bcf13b21 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -2307,7 +2307,7 @@ subdir('bsd-user')
>  subdir('linux-user')
>  subdir('ebpf')
>  
> -common_ss.add(libbpf)
> +softmmu_ss.add(libbpf)
>  
>  bsd_user_ss.add(files('gdbstub.c'))
>  specific_ss.add_all(when: 'CONFIG_BSD_USER', if_true: bsd_user_ss)
> 

Patch already pending on the list:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg834876.html
Paolo Bonzini Oct. 5, 2021, 7:27 p.m. UTC | #3
On 05/10/21 20:24, Alex Bennée wrote:
> This library is only needed for the softmmu targets and as such
> break static *-user builds where libbpf is detected and it tries to
> link it into the user binaries.
> 
> Fixes: 46627f41b6 ("ebpf: Added eBPF RSS loader.")
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>   meson.build | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meson.build b/meson.build
> index 60f4f45165..d8bcf13b21 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -2307,7 +2307,7 @@ subdir('bsd-user')
>   subdir('linux-user')
>   subdir('ebpf')
>   
> -common_ss.add(libbpf)
> +softmmu_ss.add(libbpf)

It should not be needed at all, since ebpf/meson.build has

softmmu_ss.add(when: libbpf, if_true: files('ebpf_rss.c'), if_false: 
files('ebpf_rss-stub.c'))

(which already adds libbpf if needed).

Paolo
Paolo Bonzini Oct. 5, 2021, 7:28 p.m. UTC | #4
On 05/10/21 21:00, Philippe Mathieu-Daudé wrote:
> On 10/5/21 20:24, Alex Bennée wrote:
>> This library is only needed for the softmmu targets and as such
>> break static *-user builds where libbpf is detected and it tries to
>> link it into the user binaries.
>>
>> Fixes: 46627f41b6 ("ebpf: Added eBPF RSS loader.")
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> ---
>>   meson.build | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/meson.build b/meson.build
>> index 60f4f45165..d8bcf13b21 100644
>> --- a/meson.build
>> +++ b/meson.build
>> @@ -2307,7 +2307,7 @@ subdir('bsd-user')
>>   subdir('linux-user')
>>   subdir('ebpf')
>>   
>> -common_ss.add(libbpf)
>> +softmmu_ss.add(libbpf)
>>   
>>   bsd_user_ss.add(files('gdbstub.c'))
>>   specific_ss.add_all(when: 'CONFIG_BSD_USER', if_true: bsd_user_ss)
>>
> 
> Patch already pending on the list:
> https://www.mail-archive.com/qemu-devel@nongnu.org/msg834876.html

Not the same patch, that one is already in.

Paolo
Richard Henderson Oct. 5, 2021, 8:25 p.m. UTC | #5
On 10/5/21 12:27 PM, Paolo Bonzini wrote:
> On 05/10/21 20:24, Alex Bennée wrote:
>> This library is only needed for the softmmu targets and as such
>> break static *-user builds where libbpf is detected and it tries to
>> link it into the user binaries.
>>
>> Fixes: 46627f41b6 ("ebpf: Added eBPF RSS loader.")
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> ---
>>   meson.build | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/meson.build b/meson.build
>> index 60f4f45165..d8bcf13b21 100644
>> --- a/meson.build
>> +++ b/meson.build
>> @@ -2307,7 +2307,7 @@ subdir('bsd-user')
>>   subdir('linux-user')
>>   subdir('ebpf')
>> -common_ss.add(libbpf)
>> +softmmu_ss.add(libbpf)
> 
> It should not be needed at all, since ebpf/meson.build has
> 
> softmmu_ss.add(when: libbpf, if_true: files('ebpf_rss.c'), if_false: 
> files('ebpf_rss-stub.c'))
> 
> (which already adds libbpf if needed).

Ooo, magic side effects.  I'll note that the manual doesn't say that it adds and 
dependencies from varnames_and_deps, only that it checks them.


r~
Paolo Bonzini Oct. 5, 2021, 10:21 p.m. UTC | #6
On 05/10/21 22:25, Richard Henderson wrote:
> On 10/5/21 12:27 PM, Paolo Bonzini wrote:
>> On 05/10/21 20:24, Alex Bennée wrote:
>>> This library is only needed for the softmmu targets and as such
>>> break static *-user builds where libbpf is detected and it tries to
>>> link it into the user binaries.
>>>
>>> Fixes: 46627f41b6 ("ebpf: Added eBPF RSS loader.")
>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>>> ---
>>>   meson.build | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/meson.build b/meson.build
>>> index 60f4f45165..d8bcf13b21 100644
>>> --- a/meson.build
>>> +++ b/meson.build
>>> @@ -2307,7 +2307,7 @@ subdir('bsd-user')
>>>   subdir('linux-user')
>>>   subdir('ebpf')
>>> -common_ss.add(libbpf)
>>> +softmmu_ss.add(libbpf)
>>
>> It should not be needed at all, since ebpf/meson.build has
>>
>> softmmu_ss.add(when: libbpf, if_true: files('ebpf_rss.c'), if_false: 
>> files('ebpf_rss-stub.c'))
>>
>> (which already adds libbpf if needed).
> 
> Ooo, magic side effects.  I'll note that the manual doesn't say that it 
> adds and dependencies from varnames_and_deps, only that it checks them.

Good point, it's in an example above:

# Include zlib.c if the zlib dependency was found, and link zlib
# in the executable
ss.add(when: zlib, if_true: files('zlib.c'))

Paolo
diff mbox series

Patch

diff --git a/meson.build b/meson.build
index 60f4f45165..d8bcf13b21 100644
--- a/meson.build
+++ b/meson.build
@@ -2307,7 +2307,7 @@  subdir('bsd-user')
 subdir('linux-user')
 subdir('ebpf')
 
-common_ss.add(libbpf)
+softmmu_ss.add(libbpf)
 
 bsd_user_ss.add(files('gdbstub.c'))
 specific_ss.add_all(when: 'CONFIG_BSD_USER', if_true: bsd_user_ss)