[kirkstone] gcc: depend on zstd-native

Message ID 20220601205504.3464879-1-jpuhlman@mvista.com
State Accepted, archived
Commit 0efcba381d51a9ab8519c3d50a8b48181a0e38e4
Headers show
Series [kirkstone] gcc: depend on zstd-native | expand

Commit Message

Jeremy Puhlman June 1, 2022, 8:55 p.m. UTC
Sharing sstate cache binaries between two systems, one with libzstd installed
and the other without, leads to various gcc components being linked against
the system libzstd and failing to run on the system with out it installed.

Make zstd-native from our system available.

Signed-off-by: Jeremy A. Puhlman <jpuhlman@mvista.com>
---
 meta/recipes-devtools/gcc/gcc-11.2.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Richard Purdie June 1, 2022, 10:15 p.m. UTC | #1
On Wed, 2022-06-01 at 16:55 -0400, Jeremy Puhlman wrote:
> Sharing sstate cache binaries between two systems, one with libzstd installed
> and the other without, leads to various gcc components being linked against
> the system libzstd and failing to run on the system with out it installed.
> 
> Make zstd-native from our system available.
> 
> Signed-off-by: Jeremy A. Puhlman <jpuhlman@mvista.com>
> ---
>  meta/recipes-devtools/gcc/gcc-11.2.inc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-devtools/gcc/gcc-11.2.inc b/meta/recipes-devtools/gcc/gcc-11.2.inc
> index 68e0d203fc..e2a28468f5 100644
> --- a/meta/recipes-devtools/gcc/gcc-11.2.inc
> +++ b/meta/recipes-devtools/gcc/gcc-11.2.inc
> @@ -11,7 +11,7 @@ BINV = "11.2.0"
>  FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc:${FILE_DIRNAME}/gcc/backport:"
>  
>  DEPENDS =+ "mpfr gmp libmpc zlib flex-native"
> -NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native"
> +NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native zstd-native"
>  
>  LICENSE = "GPL-3.0-with-GCC-exception & GPL-3.0-only"

Does master have that issue?

Cheers,

Richard
Jeremy Puhlman June 1, 2022, 10:27 p.m. UTC | #2
On 6/1/2022 3:15 PM, Richard Purdie wrote:
> On Wed, 2022-06-01 at 16:55 -0400, Jeremy Puhlman wrote:
>> Sharing sstate cache binaries between two systems, one with libzstd installed
>> and the other without, leads to various gcc components being linked against
>> the system libzstd and failing to run on the system with out it installed.
>>
>> Make zstd-native from our system available.
>>
>> Signed-off-by: Jeremy A. Puhlman <jpuhlman@mvista.com>
>> ---
>>   meta/recipes-devtools/gcc/gcc-11.2.inc | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/meta/recipes-devtools/gcc/gcc-11.2.inc b/meta/recipes-devtools/gcc/gcc-11.2.inc
>> index 68e0d203fc..e2a28468f5 100644
>> --- a/meta/recipes-devtools/gcc/gcc-11.2.inc
>> +++ b/meta/recipes-devtools/gcc/gcc-11.2.inc
>> @@ -11,7 +11,7 @@ BINV = "11.2.0"
>>   FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc:${FILE_DIRNAME}/gcc/backport:"
>>   
>>   DEPENDS =+ "mpfr gmp libmpc zlib flex-native"
>> -NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native"
>> +NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native zstd-native"
>>   
>>   LICENSE = "GPL-3.0-with-GCC-exception & GPL-3.0-only"
> Does master have that issue?
>
> Cheers,
>
> Richard

I would would be really surprised if it didn't, since it appears gcc is 
explicilty decidding to use the library if it is there. The patch 
cherry-picks with
name fuzzing so if we want to start it there, I can resubmit on master.
Steve Sakoman June 1, 2022, 10:29 p.m. UTC | #3
On Wed, Jun 1, 2022 at 12:27 PM Jeremy Puhlman <jpuhlman@mvista.com> wrote:
>
>
>
> On 6/1/2022 3:15 PM, Richard Purdie wrote:
> > On Wed, 2022-06-01 at 16:55 -0400, Jeremy Puhlman wrote:
> >> Sharing sstate cache binaries between two systems, one with libzstd installed
> >> and the other without, leads to various gcc components being linked against
> >> the system libzstd and failing to run on the system with out it installed.
> >>
> >> Make zstd-native from our system available.
> >>
> >> Signed-off-by: Jeremy A. Puhlman <jpuhlman@mvista.com>
> >> ---
> >>   meta/recipes-devtools/gcc/gcc-11.2.inc | 2 +-
> >>   1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/meta/recipes-devtools/gcc/gcc-11.2.inc b/meta/recipes-devtools/gcc/gcc-11.2.inc
> >> index 68e0d203fc..e2a28468f5 100644
> >> --- a/meta/recipes-devtools/gcc/gcc-11.2.inc
> >> +++ b/meta/recipes-devtools/gcc/gcc-11.2.inc
> >> @@ -11,7 +11,7 @@ BINV = "11.2.0"
> >>   FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc:${FILE_DIRNAME}/gcc/backport:"
> >>
> >>   DEPENDS =+ "mpfr gmp libmpc zlib flex-native"
> >> -NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native"
> >> +NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native zstd-native"
> >>
> >>   LICENSE = "GPL-3.0-with-GCC-exception & GPL-3.0-only"
> > Does master have that issue?
> >
> > Cheers,
> >
> > Richard
>
> I would would be really surprised if it didn't, since it appears gcc is
> explicilty decidding to use the library if it is there. The patch
> cherry-picks with
> name fuzzing so if we want to start it there, I can resubmit on master.

Yes, please do!  I'll cherry-pick to kirkstone after it hits master.

Steve
Jeremy Puhlman June 1, 2022, 11:04 p.m. UTC | #4
On 6/1/2022 3:29 PM, Steve Sakoman wrote:
> On Wed, Jun 1, 2022 at 12:27 PM Jeremy Puhlman <jpuhlman@mvista.com> wrote:
>>
>>
>> On 6/1/2022 3:15 PM, Richard Purdie wrote:
>>> On Wed, 2022-06-01 at 16:55 -0400, Jeremy Puhlman wrote:
>>>> Sharing sstate cache binaries between two systems, one with libzstd installed
>>>> and the other without, leads to various gcc components being linked against
>>>> the system libzstd and failing to run on the system with out it installed.
>>>>
>>>> Make zstd-native from our system available.
>>>>
>>>> Signed-off-by: Jeremy A. Puhlman <jpuhlman@mvista.com>
>>>> ---
>>>>    meta/recipes-devtools/gcc/gcc-11.2.inc | 2 +-
>>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/meta/recipes-devtools/gcc/gcc-11.2.inc b/meta/recipes-devtools/gcc/gcc-11.2.inc
>>>> index 68e0d203fc..e2a28468f5 100644
>>>> --- a/meta/recipes-devtools/gcc/gcc-11.2.inc
>>>> +++ b/meta/recipes-devtools/gcc/gcc-11.2.inc
>>>> @@ -11,7 +11,7 @@ BINV = "11.2.0"
>>>>    FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc:${FILE_DIRNAME}/gcc/backport:"
>>>>
>>>>    DEPENDS =+ "mpfr gmp libmpc zlib flex-native"
>>>> -NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native"
>>>> +NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native zstd-native"
>>>>
>>>>    LICENSE = "GPL-3.0-with-GCC-exception & GPL-3.0-only"
>>> Does master have that issue?
>>>
>>> Cheers,
>>>
>>> Richard
>> I would would be really surprised if it didn't, since it appears gcc is
>> explicilty decidding to use the library if it is there. The patch
>> cherry-picks with
>> name fuzzing so if we want to start it there, I can resubmit on master.
> Yes, please do!  I'll cherry-pick to kirkstone after it hits master.

Did a quick build on master and yeah, it links against libzstd.so.1.

tmp/work/x86_64-linux/gcc-cross-x86_64/12.1.0-r0/image/home/cluge/builds/centos7/x86-generic-64-5.10-4.0-cgx/build/tmp/work/x86_64-linux/gcc-cross-x86_64/12.1.0-r0/recipe-sysroot-native/usr/libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/12.1.0/cc1
   NEEDED               libmpc.so.3
   NEEDED               libmpfr.so.6
   NEEDED               libgmp.so.10
   NEEDED               libz.so.1
   NEEDED               libzstd.so.1
   NEEDED               libm.so.6
   NEEDED               libc.so.6
   NEEDED               ld-linux-x86-64.so.2

Patch for master submitted.

>
> Steve

Patch

diff --git a/meta/recipes-devtools/gcc/gcc-11.2.inc b/meta/recipes-devtools/gcc/gcc-11.2.inc
index 68e0d203fc..e2a28468f5 100644
--- a/meta/recipes-devtools/gcc/gcc-11.2.inc
+++ b/meta/recipes-devtools/gcc/gcc-11.2.inc
@@ -11,7 +11,7 @@  BINV = "11.2.0"
 FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc:${FILE_DIRNAME}/gcc/backport:"
 
 DEPENDS =+ "mpfr gmp libmpc zlib flex-native"
-NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native"
+NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native zstd-native"
 
 LICENSE = "GPL-3.0-with-GCC-exception & GPL-3.0-only"