diff mbox series

target/hexagon: don't look for static glib

Message ID 20240805104921.4035256-1-hi@alyssa.is (mailing list archive)
State New, archived
Headers show
Series target/hexagon: don't look for static glib | expand

Commit Message

Alyssa Ross Aug. 5, 2024, 10:49 a.m. UTC
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(-)


base-commit: f9851d2ffef59b3a7f39513469263ab3b019480f

Comments

Paolo Bonzini Aug. 5, 2024, 1:15 p.m. UTC | #1
Queued, thanks.

Paolo
Alex Bennée Aug. 5, 2024, 1:17 p.m. UTC | #2
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>
Brian Cain Aug. 5, 2024, 1:57 p.m. UTC | #3
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
Brian Cain Aug. 5, 2024, 2:31 p.m. UTC | #4
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
>
Anton Johansson Aug. 5, 2024, 3:39 p.m. UTC | #5
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.
Brian Cain Aug. 6, 2024, 4:18 p.m. UTC | #6
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
diff mbox series

Patch

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',