[Buildroot] [PATCH v2] package/meson: fix shared build issue due to --static flag always passed to pkg-config

Yann E. MORIN yann.morin.1998 at free.fr
Sun Jun 14 14:15:04 UTC 2020


Romain, All,

On 2020-06-14 14:50 +0200, Romain Naour spake thusly:
> Since cf75d7da98596580eee5a9b5e1a3e156ad832099 we have a build failures when
> building libgbm.so when valgrind package is selected because --static is always
> passed to pkg-config even for shared build.
> 
> Even if -Dvalgrind=false on meson command line to build mesa, the valgrind
> libraries come from pkg-config libdrm...
> 
> output/host/bin/pkg-config libdrm --libs --static
> -L[...]/sysroot/usr/lib -ldrm -lm -L[...]/sysroot/usr/lib/valgrind
> -lcoregrind-arm64-linux -lvex-arm64-linux -lgcc
> 
> ... and break the build.
> 
> See initial discussions:
> http://lists.busybox.net/pipermail/buildroot/2020-June/284543.html
> 
> This is due to a wrong condition test added by the patch
> 0004-mesonbuild-dependencies-base.py-add-pkg_config_stati.patch.
> 
> Use None instead of False when pkg_config_static is not set, indeed
> pkg_config_static is a string not a boolean. But pkg_config_static is
> alsways set to 'true' or 'flase' in our meson package infra.
> 
> Before this patch, the issue can be reproduced using the following defconfig:
> BR2_aarch64=y
> BR2_TOOLCHAIN_EXTERNAL=y
> BR2_PACKAGE_VALGRIND=y
> BR2_PACKAGE_MESA3D=y
> BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST=y
> 
> Fixes:
> http://autobuild.buildroot.net/results/1b5/1b58d73ecbbe1af2c3e140563d696cf32d1c4a5a/build-end.log
> 
> Signed-off-by: Romain Naour <romain.naour at gmail.com>
> Cc: James Hilliard <james.hilliard1 at gmail.com>
> Cc: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
> Cc: Fabrice Fontaine <fontaine.fabrice at gmail.com>

Applied to master, after rewording the commit log slightly. Thanks.

Regards,
Yann E. MORIN.

> ---
> v2: Use None instead of False since pkg_config_static is a string not a boolean (Yann).
> ---
>  ...endencies-base.py-add-pkg_config_stati.patch | 17 ++++++++++-------
>  1 file changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/package/meson/0004-mesonbuild-dependencies-base.py-add-pkg_config_stati.patch b/package/meson/0004-mesonbuild-dependencies-base.py-add-pkg_config_stati.patch
> index 7bb00f3fba..4196545a96 100644
> --- a/package/meson/0004-mesonbuild-dependencies-base.py-add-pkg_config_stati.patch
> +++ b/package/meson/0004-mesonbuild-dependencies-base.py-add-pkg_config_stati.patch
> @@ -1,4 +1,4 @@
> -From 3a4962ede0d12bac66b38e0843f6e2ea75b03d50 Mon Sep 17 00:00:00 2001
> +From 71295eec724f89ef5f5822c17cf44480335225cd Mon Sep 17 00:00:00 2001
>  From: Fabrice Fontaine <fontaine.fabrice at gmail.com>
>  Date: Sat, 15 Feb 2020 15:13:59 +0100
>  Subject: [PATCH] mesonbuild/dependencies/base.py: add pkg_config_static
> @@ -16,23 +16,26 @@ Fixes:
>   - http://autobuild.buildroot.org/results/0d36952def63cb69628697fa6408aeb6ce10cb5b
>  
>  Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> +[Romain: Fix if condition, pkg_config_static is a string not a boolean]
> +Signed-off-by: Romain Naour <romain.naour at gmail.com>
>  ---
> - mesonbuild/dependencies/base.py | 2 +-
> - 1 file changed, 1 insertion(+), 1 deletion(-)
> + mesonbuild/dependencies/base.py | 3 ++-
> + 1 file changed, 2 insertions(+), 1 deletion(-)
>  
>  diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py
> -index a83e3d6c..913bff6b 100644
> +index 5636602e..de4e87bc 100644
>  --- a/mesonbuild/dependencies/base.py
>  +++ b/mesonbuild/dependencies/base.py
> -@@ -840,7 +840,7 @@ class PkgConfigDependency(ExternalDependency):
> +@@ -858,7 +858,8 @@ class PkgConfigDependency(ExternalDependency):
>       def _set_libs(self):
>           env = None
>           libcmd = [self.name, '--libs']
>  -        if self.static:
> -+        if self.static or self.env.properties[self.for_machine].get('pkg_config_static', False):
> ++        if self.static or \
> ++           (self.env.properties[self.for_machine].get('pkg_config_static', None) == 'true'):
>               libcmd.append('--static')
>           # Force pkg-config to output -L fields even if they are system
>           # paths so we can do manual searching with cc.find_library() later.
>  -- 
> -2.24.1
> +2.25.4
>  
> -- 
> 2.25.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list