diff mbox series

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

Message ID 20211005182443.2954499-1-alex.bennee@linaro.org
State New
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(-)

-- 
2.30.2

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)