When cross compiling QEMU configured with --static, I've been getting
configure errors like the following:
Build-time dependency glib-2.0 found: NO
../target/hexagon/meson.build:303:15: ERROR: Dependency lookup for glib-2.0 with method 'pkgconfig' failed: Could not generate libs for glib-2.0:
Package libpcre2-8 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libpcre2-8.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libpcre2-8', required by 'glib-2.0', not found
This happens because --static sets the prefer_static Meson option, but
my build machine doesn't have a static libpcre2. I don't think it
makes sense to insist that native dependencies are static, just
because I want the non-native QEMU binaries to be static.
Signed-off-by: Alyssa Ross <hi@alyssa.is>
---
target/hexagon/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build
index b0b253aa6b..9ea1f4fc59 100644
--- a/target/hexagon/meson.build
+++ b/target/hexagon/meson.build
@@ -300,7 +300,7 @@ if idef_parser_enabled and 'hexagon-linux-user' in target_dirs
arguments: ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@']
)
- glib_dep = dependency('glib-2.0', native: true)
+ glib_dep = dependency('glib-2.0', native: true, static: false)
idef_parser = executable(
'idef-parser',
base-commit: f9851d2ffef59b3a7f39513469263ab3b019480f
--
2.45.2
On 8/5/2024 5:49 AM, Alyssa Ross wrote:
> When cross compiling QEMU configured with --static, I've been getting
> configure errors like the following:
>
> Build-time dependency glib-2.0 found: NO
>
> ../target/hexagon/meson.build:303:15: ERROR: Dependency lookup for glib-2.0 with method 'pkgconfig' failed: Could not generate libs for glib-2.0:
> Package libpcre2-8 was not found in the pkg-config search path.
> Perhaps you should add the directory containing `libpcre2-8.pc'
> to the PKG_CONFIG_PATH environment variable
> Package 'libpcre2-8', required by 'glib-2.0', not found
>
> This happens because --static sets the prefer_static Meson option, but
> my build machine doesn't have a static libpcre2. I don't think it
> makes sense to insist that native dependencies are static, just
> because I want the non-native QEMU binaries to be static.
>
> Signed-off-by: Alyssa Ross <hi@alyssa.is>
> ---
Reviewed-by: Brian Cain <bcain@quicinc.com>
> target/hexagon/meson.build | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build
> index b0b253aa6b..9ea1f4fc59 100644
> --- a/target/hexagon/meson.build
> +++ b/target/hexagon/meson.build
> @@ -300,7 +300,7 @@ if idef_parser_enabled and 'hexagon-linux-user' in target_dirs
> arguments: ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@']
> )
>
> - glib_dep = dependency('glib-2.0', native: true)
> + glib_dep = dependency('glib-2.0', native: true, static: false)
>
> idef_parser = executable(
> 'idef-parser',
>
> base-commit: f9851d2ffef59b3a7f39513469263ab3b019480f
On 8/5/2024 5:49 AM, Alyssa Ross wrote:
> When cross compiling QEMU configured with --static, I've been getting
> configure errors like the following:
>
> Build-time dependency glib-2.0 found: NO
>
> ../target/hexagon/meson.build:303:15: ERROR: Dependency lookup for glib-2.0 with method 'pkgconfig' failed: Could not generate libs for glib-2.0:
> Package libpcre2-8 was not found in the pkg-config search path.
> Perhaps you should add the directory containing `libpcre2-8.pc'
> to the PKG_CONFIG_PATH environment variable
> Package 'libpcre2-8', required by 'glib-2.0', not found
>
> This happens because --static sets the prefer_static Meson option, but
> my build machine doesn't have a static libpcre2. I don't think it
> makes sense to insist that native dependencies are static, just
> because I want the non-native QEMU binaries to be static.
>
> Signed-off-by: Alyssa Ross <hi@alyssa.is>
> ---
Thanks for the patch, Alyssa - I'll give it a try.
> target/hexagon/meson.build | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build
> index b0b253aa6b..9ea1f4fc59 100644
> --- a/target/hexagon/meson.build
> +++ b/target/hexagon/meson.build
> @@ -300,7 +300,7 @@ if idef_parser_enabled and 'hexagon-linux-user' in target_dirs
> arguments: ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@']
> )
>
> - glib_dep = dependency('glib-2.0', native: true)
> + glib_dep = dependency('glib-2.0', native: true, static: false)
>
> idef_parser = executable(
> 'idef-parser',
>
> base-commit: f9851d2ffef59b3a7f39513469263ab3b019480f
On 8/5/2024 8:57 AM, Brian Cain wrote:
>
> On 8/5/2024 5:49 AM, Alyssa Ross wrote:
>> When cross compiling QEMU configured with --static, I've been getting
>> configure errors like the following:
>>
>> Build-time dependency glib-2.0 found: NO
>>
>> ../target/hexagon/meson.build:303:15: ERROR: Dependency lookup
>> for glib-2.0 with method 'pkgconfig' failed: Could not generate libs
>> for glib-2.0:
>> Package libpcre2-8 was not found in the pkg-config search path.
>> Perhaps you should add the directory containing `libpcre2-8.pc'
>> to the PKG_CONFIG_PATH environment variable
>> Package 'libpcre2-8', required by 'glib-2.0', not found
>>
>> This happens because --static sets the prefer_static Meson option, but
>> my build machine doesn't have a static libpcre2. I don't think it
>> makes sense to insist that native dependencies are static, just
>> because I want the non-native QEMU binaries to be static.
>>
>> Signed-off-by: Alyssa Ross <hi@alyssa.is>
>> ---
>
> Thanks for the patch, Alyssa - I'll give it a try.
>
Hmm - ok, I misunderstood the intent of the change because I didn't read
the commit message too carefully. I understand the goal now.
This seems appropriate in most situations, and I guess configure doesn't
have a way to distinguish between whether host tools should be static or
not. So it LGTM.
Anton, Alessandro -- thoughts?
>
>> target/hexagon/meson.build | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build
>> index b0b253aa6b..9ea1f4fc59 100644
>> --- a/target/hexagon/meson.build
>> +++ b/target/hexagon/meson.build
>> @@ -300,7 +300,7 @@ if idef_parser_enabled and 'hexagon-linux-user'
>> in target_dirs
>> arguments: ['@INPUT@', '--defines=@OUTPUT1@',
>> '--output=@OUTPUT0@']
>> )
>> - glib_dep = dependency('glib-2.0', native: true)
>> + glib_dep = dependency('glib-2.0', native: true, static: false)
>> idef_parser = executable(
>> 'idef-parser',
>>
>> base-commit: f9851d2ffef59b3a7f39513469263ab3b019480f
>
On 05/08/24, Brian Cain wrote: > > On 8/5/2024 8:57 AM, Brian Cain wrote: > > > > On 8/5/2024 5:49 AM, Alyssa Ross wrote: > > > When cross compiling QEMU configured with --static, I've been getting > > > configure errors like the following: > > > > > > Build-time dependency glib-2.0 found: NO > > > > > > ../target/hexagon/meson.build:303:15: ERROR: Dependency lookup > > > for glib-2.0 with method 'pkgconfig' failed: Could not generate libs > > > for glib-2.0: > > > Package libpcre2-8 was not found in the pkg-config search path. > > > Perhaps you should add the directory containing `libpcre2-8.pc' > > > to the PKG_CONFIG_PATH environment variable > > > Package 'libpcre2-8', required by 'glib-2.0', not found > > > > > > This happens because --static sets the prefer_static Meson option, but > > > my build machine doesn't have a static libpcre2. I don't think it > > > makes sense to insist that native dependencies are static, just > > > because I want the non-native QEMU binaries to be static. > > > > > > Signed-off-by: Alyssa Ross <hi@alyssa.is> > > > --- > > > > Thanks for the patch, Alyssa - I'll give it a try. > > > Hmm - ok, I misunderstood the intent of the change because I didn't read the > commit message too carefully. I understand the goal now. > > This seems appropriate in most situations, and I guess configure doesn't > have a way to distinguish between whether host tools should be static or > not. So it LGTM. > > Anton, Alessandro -- thoughts? This makes sense, and assuming glib2 is shared seems more sensible. We might get the inverse problem where a static glib2 would not be found. I'm a bit surprised meson wouldn't fallback on trying to find a shared version of glib2 when prefer_static is set, hmm. -- Anton Johansson rev.ng Labs Srl.
Alyssa Ross <hi@alyssa.is> writes: > When cross compiling QEMU configured with --static, I've been getting > configure errors like the following: > > Build-time dependency glib-2.0 found: NO > > ../target/hexagon/meson.build:303:15: ERROR: Dependency lookup for glib-2.0 with method 'pkgconfig' failed: Could not generate libs for glib-2.0: > Package libpcre2-8 was not found in the pkg-config search path. > Perhaps you should add the directory containing `libpcre2-8.pc' > to the PKG_CONFIG_PATH environment variable > Package 'libpcre2-8', required by 'glib-2.0', not found > > This happens because --static sets the prefer_static Meson option, but > my build machine doesn't have a static libpcre2. I don't think it > makes sense to insist that native dependencies are static, just > because I want the non-native QEMU binaries to be static. Makes sense: Reviewed-by: Alex Bennée <alex.bennee@linaro.org> -- Alex Bennée Virtualisation Tech Lead @ Linaro
© 2016 - 2026 Red Hat, Inc.