* [V2][oe][master][PATCH] packagegroup-cross-canadian: repackage when multilibs gcc gdb binutils changes
@ 2020-12-08 1:58 Jiping Ma
2020-12-24 7:03 ` [OE-core] " Chen Qi
0 siblings, 1 reply; 4+ messages in thread
From: Jiping Ma @ 2020-12-08 1:58 UTC (permalink / raw)
To: openembedded-core, yue.tao, jiping.ma2
1. Build SDK without "MULTILIBS = """ in local.conf.
2. Build SDK again with "MULTILIBS = """ in local.conf, build will fail with the error info.
Error:
Problem: conflicting requests
- nothing provides binutils-cross-canadian-arm needed by packagegroup-cross-canadian-nxp-ls1028-1.0-r0.x86_64_nativesdk
- ......
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
.../packagegroups/packagegroup-cross-canadian.bb | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb b/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb
index 3b430c0814..b6b3e5235f 100644
--- a/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb
@@ -17,8 +17,13 @@ RDEPENDS_${PN} = "\
meta-environment-${MACHINE} \
"
-# When TUNE_ARCH changes but MACHINE does not (for example when a machine definition is updated),
-# cross-canadian.bbclass prevents variable dependency propagation to TRANSLATED_TARGET_ARCH
-# This will result in erroneous reuse of previous sstate packages. The following line
-# establishes a direct dependency instead.
-do_package[vardeps] += "TUNE_ARCH"
+# When TUNE_ARCH, GCC, GDB, BINUTILS changes but MACHINE does not (for example when a machine
+# definition is updated), cross-canadian.bbclass prevents variable dependency propagation to
+# TRANSLATED_TARGET_ARCH This will result in erroneous reuse of previous sstate packages. The
+# following line establishes a direct dependency instead.
+do_package[vardeps] += "\
+ ${@all_multilib_tune_values(d, 'BINUTILS')} \
+ ${@all_multilib_tune_values(d, 'GDB')} \
+ ${@all_multilib_tune_values(d, 'GCC')} \
+ TUNE_ARCH \
+ "
--
2.23.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [OE-core] [V2][oe][master][PATCH] packagegroup-cross-canadian: repackage when multilibs gcc gdb binutils changes
2020-12-08 1:58 [V2][oe][master][PATCH] packagegroup-cross-canadian: repackage when multilibs gcc gdb binutils changes Jiping Ma
@ 2020-12-24 7:03 ` Chen Qi
2021-01-04 21:00 ` Randy MacLeod
0 siblings, 1 reply; 4+ messages in thread
From: Chen Qi @ 2020-12-24 7:03 UTC (permalink / raw)
To: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 1967 bytes --]
ping
On 12/08/2020 09:58 AM, Jiping Ma wrote:
> 1. Build SDK without "MULTILIBS = """ in local.conf.
> 2. Build SDK again with "MULTILIBS = """ in local.conf, build will fail with the error info.
> Error:
> Problem: conflicting requests
> - nothing provides binutils-cross-canadian-arm needed by packagegroup-cross-canadian-nxp-ls1028-1.0-r0.x86_64_nativesdk
> - ......
>
> Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
> ---
> .../packagegroups/packagegroup-cross-canadian.bb | 15 ++++++++++-----
> 1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb b/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb
> index 3b430c0814..b6b3e5235f 100644
> --- a/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb
> +++ b/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb
> @@ -17,8 +17,13 @@ RDEPENDS_${PN} = "\
> meta-environment-${MACHINE} \
> "
>
> -# When TUNE_ARCH changes but MACHINE does not (for example when a machine definition is updated),
> -# cross-canadian.bbclass prevents variable dependency propagation to TRANSLATED_TARGET_ARCH
> -# This will result in erroneous reuse of previous sstate packages. The following line
> -# establishes a direct dependency instead.
> -do_package[vardeps] += "TUNE_ARCH"
> +# When TUNE_ARCH, GCC, GDB, BINUTILS changes but MACHINE does not (for example when a machine
> +# definition is updated), cross-canadian.bbclass prevents variable dependency propagation to
> +# TRANSLATED_TARGET_ARCH This will result in erroneous reuse of previous sstate packages. The
> +# following line establishes a direct dependency instead.
> +do_package[vardeps] += "\
> + ${@all_multilib_tune_values(d, 'BINUTILS')} \
> + ${@all_multilib_tune_values(d, 'GDB')} \
> + ${@all_multilib_tune_values(d, 'GCC')} \
> + TUNE_ARCH \
> + "
>
>
>
>
[-- Attachment #2: Type: text/html, Size: 2531 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [OE-core] [V2][oe][master][PATCH] packagegroup-cross-canadian: repackage when multilibs gcc gdb binutils changes
2020-12-24 7:03 ` [OE-core] " Chen Qi
@ 2021-01-04 21:00 ` Randy MacLeod
2021-01-04 21:17 ` Richard Purdie
0 siblings, 1 reply; 4+ messages in thread
From: Randy MacLeod @ 2021-01-04 21:00 UTC (permalink / raw)
To: Chen Qi, openembedded-core, Richard Purdie
On 2020-12-24 2:03 a.m., Chen Qi wrote:
> ping
Ping v2.
Is there a problem with this solution or
do you think we shouldn't handle the use case for some reason?
../Randy
>
> On 12/08/2020 09:58 AM, Jiping Ma wrote:
>> 1. Build SDK without "MULTILIBS = """ in local.conf.
>> 2. Build SDK again with "MULTILIBS = """ in local.conf, build will fail with the error info.
>> Error:
>> Problem: conflicting requests
>> - nothing provides binutils-cross-canadian-arm needed by packagegroup-cross-canadian-nxp-ls1028-1.0-r0.x86_64_nativesdk
>> - ......
>>
>> Signed-off-by: Jiping Ma<jiping.ma2@windriver.com>
>> ---
>> .../packagegroups/packagegroup-cross-canadian.bb | 15 ++++++++++-----
>> 1 file changed, 10 insertions(+), 5 deletions(-)
>>
>> diff --git a/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb b/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb
>> index 3b430c0814..b6b3e5235f 100644
>> --- a/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb
>> +++ b/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb
>> @@ -17,8 +17,13 @@ RDEPENDS_${PN} = "\
>> meta-environment-${MACHINE} \
>> "
>>
>> -# When TUNE_ARCH changes but MACHINE does not (for example when a machine definition is updated),
>> -# cross-canadian.bbclass prevents variable dependency propagation to TRANSLATED_TARGET_ARCH
>> -# This will result in erroneous reuse of previous sstate packages. The following line
>> -# establishes a direct dependency instead.
>> -do_package[vardeps] += "TUNE_ARCH"
>> +# When TUNE_ARCH, GCC, GDB, BINUTILS changes but MACHINE does not (for example when a machine
>> +# definition is updated), cross-canadian.bbclass prevents variable dependency propagation to
>> +# TRANSLATED_TARGET_ARCH This will result in erroneous reuse of previous sstate packages. The
>> +# following line establishes a direct dependency instead.
>> +do_package[vardeps] += "\
>> + ${@all_multilib_tune_values(d, 'BINUTILS')} \
>> + ${@all_multilib_tune_values(d, 'GDB')} \
>> + ${@all_multilib_tune_values(d, 'GCC')} \
>> + TUNE_ARCH \
>> + "
>>
>>
>
>
>
>
>
--
# Randy MacLeod
# Wind River Linux
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [OE-core] [V2][oe][master][PATCH] packagegroup-cross-canadian: repackage when multilibs gcc gdb binutils changes
2021-01-04 21:00 ` Randy MacLeod
@ 2021-01-04 21:17 ` Richard Purdie
0 siblings, 0 replies; 4+ messages in thread
From: Richard Purdie @ 2021-01-04 21:17 UTC (permalink / raw)
To: Randy MacLeod, Chen Qi, openembedded-core
On Mon, 2021-01-04 at 16:00 -0500, Randy MacLeod wrote:
> On 2020-12-24 2:03 a.m., Chen Qi wrote:
> > ping
>
> Ping v2.
>
> Is there a problem with this solution or
> do you think we shouldn't handle the use case for some reason?
>
> ../Randy
> >
> > On 12/08/2020 09:58 AM, Jiping Ma wrote:
> > > 1. Build SDK without "MULTILIBS = """ in local.conf.
> > > 2. Build SDK again with "MULTILIBS = """ in local.conf, build
> > > will fail with the error info.
> > > Error:
> > > Problem: conflicting requests
> > > - nothing provides binutils-cross-canadian-arm needed by
> > > packagegroup-cross-canadian-nxp-ls1028-1.0-r0.x86_64_nativesdk
> > > - ......
> > > diff --git a/meta/recipes-core/packagegroups/packagegroup-cross-
> > > canadian.bb b/meta/recipes-core/packagegroups/packagegroup-cross-
> > > canadian.bb
> > > index 3b430c0814..b6b3e5235f 100644
> > > --- a/meta/recipes-core/packagegroups/packagegroup-cross-
> > > canadian.bb
> > > +++ b/meta/recipes-core/packagegroups/packagegroup-cross-
> > > canadian.bb
> > > @@ -17,8 +17,13 @@ RDEPENDS_${PN} = "\
> > > meta-environment-${MACHINE} \
> > > "
> > >
> > > -# When TUNE_ARCH changes but MACHINE does not (for example when
> > > a machine definition is updated),
> > > -# cross-canadian.bbclass prevents variable dependency
> > > propagation to TRANSLATED_TARGET_ARCH
> > > -# This will result in erroneous reuse of previous sstate
> > > packages. The following line
> > > -# establishes a direct dependency instead.
> > > -do_package[vardeps] += "TUNE_ARCH"
> > > +# When TUNE_ARCH, GCC, GDB, BINUTILS changes but MACHINE does
> > > not (for example when a machine
> > > +# definition is updated), cross-canadian.bbclass prevents
> > > variable dependency propagation to
> > > +# TRANSLATED_TARGET_ARCH This will result in erroneous reuse of
> > > previous sstate packages. The
> > > +# following line establishes a direct dependency instead.
> > > +do_package[vardeps] += "\
> > > + ${@all_multilib_tune_values(d, 'BINUTILS')} \
> > > + ${@all_multilib_tune_values(d, 'GDB')} \
> > > + ${@all_multilib_tune_values(d, 'GCC')} \
> > > + TUNE_ARCH \
> > > + "
I keep putting off reviewing this as its wrong in several different
ways and its hard to explain. In particular:
a) vardeps takes names of variables yet all_multilib_tune_values()
returns values, not variable names. This alone makes it incorrect.
b) BINUTILS, GCC and GDB are artificial constructs which change with
TRANSLATED_TARGET_ARCH only so listing three values here is
suboptimal, we just need to worry about TRANSLATED_TARGET_ARCH.
So really you want a way to say "depend on all the multilib versions of
TUNE_ARCH" but there is no way to express such a thing as a list of
variables.
You could put ${@all_multilib_tune_values(d, 'TRANSLATED_TARGET_ARCH')}
replacing TUNE_ARCH and it would probably work just as well as the
above but is also technically incorrect due to a).
I don't know how to fix this properly, except perhaps constructing an
artifical variable which does contain the expanded values of
TRANSLATED_TARGET_ARCH as vardepvalues?
Cheers,
Richard
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-01-04 21:17 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-08 1:58 [V2][oe][master][PATCH] packagegroup-cross-canadian: repackage when multilibs gcc gdb binutils changes Jiping Ma
2020-12-24 7:03 ` [OE-core] " Chen Qi
2021-01-04 21:00 ` Randy MacLeod
2021-01-04 21:17 ` Richard Purdie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox