All of lore.kernel.org
 help / color / mirror / Atom feed
* [yocto-docs][PATCH v2 0/2] migration-5.2: Add entries for virtual provider and multiconfig changes
@ 2025-01-31 11:14 Antonin Godard
  2025-01-31 11:14 ` [yocto-docs][PATCH v2 1/2] migration-5.2: document BB_CURRENT_MC default value change Antonin Godard
  2025-01-31 11:14 ` [yocto-docs][PATCH v2 2/2] migration-5.2: add virtual provider change Antonin Godard
  0 siblings, 2 replies; 7+ messages in thread
From: Antonin Godard @ 2025-01-31 11:14 UTC (permalink / raw)
  To: docs; +Cc: Thomas Petazzoni

Notes:
* original patch by Richard Purdie:
  https://lore.kernel.org/r/20250126111850.2609298-1-richard.purdie@linuxfoundation.org
  This patch is just reformatting/typo fixes.
* The BB_CURRENT_MC should ideally be documented, but that will come at
  a later point with
  https://bugzilla.yoctoproject.org/show_bug.cgi?id=15709.

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
Changes in v2:
- Split BB_CURRENT_MC and virtual changes in two commits
- Review from Quentin (thanks!):
  - virtual changes:
    - Add more examples to instruct how a user should migrate
    - remove spurious "-" in example
  - BB_CURRENT_MC:
    - suggest to update logic based on BB_CURRENT_MC
- Link to v1: https://lore.kernel.org/r/20250129-migration-5-2-updates-v1-1-98416a476828@bootlin.com

---
Antonin Godard (2):
      migration-5.2: document BB_CURRENT_MC default value change
      migration-5.2: add virtual provider change

 documentation/migration-guides/migration-5.2.rst | 40 ++++++++++++++++++++++++
 1 file changed, 40 insertions(+)
---
base-commit: e6745669cc26de8f61d5d1ccdd5a95b552eece97
change-id: 20250129-migration-5-2-updates-cb613b02bd35

Best regards,
-- 
Antonin Godard <antonin.godard@bootlin.com>



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [yocto-docs][PATCH v2 1/2] migration-5.2: document BB_CURRENT_MC default value change
  2025-01-31 11:14 [yocto-docs][PATCH v2 0/2] migration-5.2: Add entries for virtual provider and multiconfig changes Antonin Godard
@ 2025-01-31 11:14 ` Antonin Godard
  2025-01-31 11:14 ` [yocto-docs][PATCH v2 2/2] migration-5.2: add virtual provider change Antonin Godard
  1 sibling, 0 replies; 7+ messages in thread
From: Antonin Godard @ 2025-01-31 11:14 UTC (permalink / raw)
  To: docs; +Cc: Thomas Petazzoni

After commit 0fa0d8d764bb ("cooker/cache: Drop mc 'default' string
value") in Bitbake, the default value of BB_CURRENT_MC was changed from
"default" to an empty string. Document it.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
 documentation/migration-guides/migration-5.2.rst | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/documentation/migration-guides/migration-5.2.rst b/documentation/migration-guides/migration-5.2.rst
index e9de6910e..a60e3e9a8 100644
--- a/documentation/migration-guides/migration-5.2.rst
+++ b/documentation/migration-guides/migration-5.2.rst
@@ -94,6 +94,17 @@ systemd changes
    not for socket files).
    Now all service files must be explicitly added to :term:`FILES`.
 
+Multiconfig changes
+~~~~~~~~~~~~~~~~~~~
+
+The value of ``BB_CURRENT_MC`` was changed from ``default`` to an empty string
+for the default multiconfig configuration to avoid needing to map the values
+within BitBake. This was already not happening in some cases so this fixes
+some obscure bugs.
+
+Any logic based on ``BB_CURRENT_MC`` equalling to ``default`` by default should
+be changed to be equal to an empty string.
+
 Recipe changes
 ~~~~~~~~~~~~~~
 

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [yocto-docs][PATCH v2 2/2] migration-5.2: add virtual provider change
  2025-01-31 11:14 [yocto-docs][PATCH v2 0/2] migration-5.2: Add entries for virtual provider and multiconfig changes Antonin Godard
  2025-01-31 11:14 ` [yocto-docs][PATCH v2 1/2] migration-5.2: document BB_CURRENT_MC default value change Antonin Godard
@ 2025-01-31 11:14 ` Antonin Godard
  2025-01-31 12:18   ` [docs] " Quentin Schulz
  1 sibling, 1 reply; 7+ messages in thread
From: Antonin Godard @ 2025-01-31 11:14 UTC (permalink / raw)
  To: docs; +Cc: Thomas Petazzoni

The commit 4ccc3bc8266c ("classes/recipes: Switch virtual/XXX-gcc to
virtual/cross-cc (and c++/binutils)") in OE-Core changes the
virtual/XXX-gcc to virtual/cross-cc (and c++/binutils) syntax. Add it to
the migration manual.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
 documentation/migration-guides/migration-5.2.rst | 29 ++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/documentation/migration-guides/migration-5.2.rst b/documentation/migration-guides/migration-5.2.rst
index a60e3e9a8..b29cb2052 100644
--- a/documentation/migration-guides/migration-5.2.rst
+++ b/documentation/migration-guides/migration-5.2.rst
@@ -105,6 +105,35 @@ some obscure bugs.
 Any logic based on ``BB_CURRENT_MC`` equalling to ``default`` by default should
 be changed to be equal to an empty string.
 
+Virtual toolchain provider changes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Support was added for virtual providers on a per-recipe basis for specific
+key toolchain providers listed in ``BB_VIRTUAL_RECIPE_PROVIDERS``. As part of
+that support, the ``cross`` providers were simplified to remove the triplet
+prefix (:term:`TARGET_PREFIX`, :term:`SDK_PREFIX` and :term:`HOST_PREFIX`) and
+generalise the naming. Here are example of how references to these variables
+should be changed to use the new ``cross`` syntax::
+
+   virtual/${HOST_PREFIX}binutils -> virtual/cross-binutils
+   virtual/${TARGET_PREFIX}binutils -> virtual/cross-binutils
+
+   virtual/${HOST_PREFIX}gcc -> virtual/cross-cc
+   virtual/${TARGET_PREFIX}gcc -> virtual/cross-cc
+   virtual/${SDK_PREFIX}gcc -> virtual/nativesdk-cross-cc
+
+   virtual/${HOST_PREFIX}compilerlibs -> virtual/compilerlibs
+   virtual/${TARGET_PREFIX}compilerlibs -> virtual/compilerlibs
+   virtual/nativesdk-${SDK_PREFIX}compilerlibs -> virtual/nativesdk-compilerlibs
+
+   virtual/${TARGET_PREFIX}g++ -> virtual/cross-c++
+
+A :term:`PREFERRED_PROVIDER` assignment should be transformed as follows::
+
+   PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils -> PREFERRED_PROVIDER_virtual/cross-binutils
+   PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils -> PREFERRED_PROVIDER_virtual/cross-binutils:class-nativesdk
+   PREFERRED_PROVIDER_virtual/${SDK_PREFIX}g++ -> PREFERRED_PROVIDER_virtual/nativesdk-cross-c++
+
 Recipe changes
 ~~~~~~~~~~~~~~
 

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [docs] [yocto-docs][PATCH v2 2/2] migration-5.2: add virtual provider change
  2025-01-31 11:14 ` [yocto-docs][PATCH v2 2/2] migration-5.2: add virtual provider change Antonin Godard
@ 2025-01-31 12:18   ` Quentin Schulz
  2025-01-31 13:07     ` Antonin Godard
  0 siblings, 1 reply; 7+ messages in thread
From: Quentin Schulz @ 2025-01-31 12:18 UTC (permalink / raw)
  To: antonin.godard, docs; +Cc: Thomas Petazzoni

Hi Antonin,

On 1/31/25 12:14 PM, Antonin Godard via lists.yoctoproject.org wrote:
> The commit 4ccc3bc8266c ("classes/recipes: Switch virtual/XXX-gcc to
> virtual/cross-cc (and c++/binutils)") in OE-Core changes the
> virtual/XXX-gcc to virtual/cross-cc (and c++/binutils) syntax. Add it to
> the migration manual.
> 
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
> ---
>   documentation/migration-guides/migration-5.2.rst | 29 ++++++++++++++++++++++++
>   1 file changed, 29 insertions(+)
> 
> diff --git a/documentation/migration-guides/migration-5.2.rst b/documentation/migration-guides/migration-5.2.rst
> index a60e3e9a8..b29cb2052 100644
> --- a/documentation/migration-guides/migration-5.2.rst
> +++ b/documentation/migration-guides/migration-5.2.rst
> @@ -105,6 +105,35 @@ some obscure bugs.
>   Any logic based on ``BB_CURRENT_MC`` equalling to ``default`` by default should
>   be changed to be equal to an empty string.
>   
> +Virtual toolchain provider changes
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +Support was added for virtual providers on a per-recipe basis for specific
> +key toolchain providers listed in ``BB_VIRTUAL_RECIPE_PROVIDERS``. As part of
> +that support, the ``cross`` providers were simplified to remove the triplet
> +prefix (:term:`TARGET_PREFIX`, :term:`SDK_PREFIX` and :term:`HOST_PREFIX`) and
> +generalise the naming. Here are example of how references to these variables
> +should be changed to use the new ``cross`` syntax::
> +
> +   virtual/${HOST_PREFIX}binutils -> virtual/cross-binutils
> +   virtual/${TARGET_PREFIX}binutils -> virtual/cross-binutils
> +
> +   virtual/${HOST_PREFIX}gcc -> virtual/cross-cc
> +   virtual/${TARGET_PREFIX}gcc -> virtual/cross-cc
> +   virtual/${SDK_PREFIX}gcc -> virtual/nativesdk-cross-cc
> +
> +   virtual/${HOST_PREFIX}compilerlibs -> virtual/compilerlibs
> +   virtual/${TARGET_PREFIX}compilerlibs -> virtual/compilerlibs
> +   virtual/nativesdk-${SDK_PREFIX}compilerlibs -> virtual/nativesdk-compilerlibs
> +
> +   virtual/${TARGET_PREFIX}g++ -> virtual/cross-c++
> +

I am not sure this rule applies everywhere looking at the commit that 
makes the change? (see below for related comment)

> +A :term:`PREFERRED_PROVIDER` assignment should be transformed as follows::
> +
> +   PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils -> PREFERRED_PROVIDER_virtual/cross-binutils
> +   PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils -> PREFERRED_PROVIDER_virtual/cross-binutils:class-nativesdk
> +   PREFERRED_PROVIDER_virtual/${SDK_PREFIX}g++ -> PREFERRED_PROVIDER_virtual/nativesdk-cross-c++
> +

I believe all PREFERRED_PROVIDER would replace TARGET_PREFIX with cross- 
(and rename gcc to cc, g++ to c++).

SDK_PREFIX would be replace following the same pattern as TARGET_PREFIX 
except that an override with :class-nativesdk should be provided. Though 
it seems there's now a second variable for each PREFERRED_PROVIDER which 
had an SDK_PREFIX, it'll also need nativesdk- prefix added to the same 
pattern used for TARGET_PREFIX. Except for compilerlibs which only gets 
the one with the nativesdk- prefix.

c.f. from 90e0a0f7f4536e1aeb311ab2b061be71b4129e4e in poky:

-PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils ?= 
"binutils-crosssdk-${SDK_SYS}"
-PREFERRED_PROVIDER_virtual/${SDK_PREFIX}gcc = "gcc-crosssdk-${SDK_SYS}"
-PREFERRED_PROVIDER_virtual/${SDK_PREFIX}g++ = "gcc-crosssdk-${SDK_SYS}"
-PREFERRED_PROVIDER_virtual/${SDK_PREFIX}compilerlibs = 
"nativesdk-gcc-runtime"
+PREFERRED_PROVIDER_virtual/cross-binutils:class-nativesdk ?= 
"binutils-crosssdk-${SDK_SYS}"
+PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk = 
"gcc-crosssdk-${SDK_SYS}"
+PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = 
"gcc-crosssdk-${SDK_SYS}"
+
+PREFERRED_PROVIDER_virtual/nativesdk-cross-binutils ?= 
"binutils-crosssdk-${SDK_SYS}"
+PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "gcc-crosssdk-${SDK_SYS}"
+PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "gcc-crosssdk-${SDK_SYS}"
+PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime"

Now looking a bit more into the changes made in this commit, there isn't 
a simple search and replace that can be used, sometimes it's replacing a 
variable with one value, sometimes with another. Depends on the recipe 
the change is made in I guess?

Cheers,
Quentin


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [docs] [yocto-docs][PATCH v2 2/2] migration-5.2: add virtual provider change
  2025-01-31 12:18   ` [docs] " Quentin Schulz
@ 2025-01-31 13:07     ` Antonin Godard
  2025-02-06  9:25       ` Quentin Schulz
  0 siblings, 1 reply; 7+ messages in thread
From: Antonin Godard @ 2025-01-31 13:07 UTC (permalink / raw)
  To: Quentin Schulz, docs; +Cc: Thomas Petazzoni

Hi Quentin,

On Fri Jan 31, 2025 at 1:18 PM CET, Quentin Schulz wrote:
> Hi Antonin,
>
> On 1/31/25 12:14 PM, Antonin Godard via lists.yoctoproject.org wrote:
>> The commit 4ccc3bc8266c ("classes/recipes: Switch virtual/XXX-gcc to
>> virtual/cross-cc (and c++/binutils)") in OE-Core changes the
>> virtual/XXX-gcc to virtual/cross-cc (and c++/binutils) syntax. Add it to
>> the migration manual.
>> 
>> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
>> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
>> ---
>>   documentation/migration-guides/migration-5.2.rst | 29 ++++++++++++++++++++++++
>>   1 file changed, 29 insertions(+)
>> 
>> diff --git a/documentation/migration-guides/migration-5.2.rst b/documentation/migration-guides/migration-5.2.rst
>> index a60e3e9a8..b29cb2052 100644
>> --- a/documentation/migration-guides/migration-5.2.rst
>> +++ b/documentation/migration-guides/migration-5.2.rst
>> @@ -105,6 +105,35 @@ some obscure bugs.
>>   Any logic based on ``BB_CURRENT_MC`` equalling to ``default`` by default should
>>   be changed to be equal to an empty string.
>>   
>> +Virtual toolchain provider changes
>> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> +
>> +Support was added for virtual providers on a per-recipe basis for specific
>> +key toolchain providers listed in ``BB_VIRTUAL_RECIPE_PROVIDERS``. As part of
>> +that support, the ``cross`` providers were simplified to remove the triplet
>> +prefix (:term:`TARGET_PREFIX`, :term:`SDK_PREFIX` and :term:`HOST_PREFIX`) and
>> +generalise the naming. Here are example of how references to these variables
>> +should be changed to use the new ``cross`` syntax::
>> +
>> +   virtual/${HOST_PREFIX}binutils -> virtual/cross-binutils
>> +   virtual/${TARGET_PREFIX}binutils -> virtual/cross-binutils
>> +
>> +   virtual/${HOST_PREFIX}gcc -> virtual/cross-cc
>> +   virtual/${TARGET_PREFIX}gcc -> virtual/cross-cc
>> +   virtual/${SDK_PREFIX}gcc -> virtual/nativesdk-cross-cc
>> +
>> +   virtual/${HOST_PREFIX}compilerlibs -> virtual/compilerlibs
>> +   virtual/${TARGET_PREFIX}compilerlibs -> virtual/compilerlibs
>> +   virtual/nativesdk-${SDK_PREFIX}compilerlibs -> virtual/nativesdk-compilerlibs
>> +
>> +   virtual/${TARGET_PREFIX}g++ -> virtual/cross-c++
>> +
>
> I am not sure this rule applies everywhere looking at the commit that 
> makes the change? (see below for related comment)
>
>> +A :term:`PREFERRED_PROVIDER` assignment should be transformed as follows::
>> +
>> +   PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils -> PREFERRED_PROVIDER_virtual/cross-binutils
>> +   PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils -> PREFERRED_PROVIDER_virtual/cross-binutils:class-nativesdk
>> +   PREFERRED_PROVIDER_virtual/${SDK_PREFIX}g++ -> PREFERRED_PROVIDER_virtual/nativesdk-cross-c++
>> +
>
> I believe all PREFERRED_PROVIDER would replace TARGET_PREFIX with cross- 
> (and rename gcc to cc, g++ to c++).
>
> SDK_PREFIX would be replace following the same pattern as TARGET_PREFIX 
> except that an override with :class-nativesdk should be provided. Though 
> it seems there's now a second variable for each PREFERRED_PROVIDER which 
> had an SDK_PREFIX, it'll also need nativesdk- prefix added to the same 
> pattern used for TARGET_PREFIX. Except for compilerlibs which only gets 
> the one with the nativesdk- prefix.
>
> c.f. from 90e0a0f7f4536e1aeb311ab2b061be71b4129e4e in poky:
>
> -PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils ?= 
> "binutils-crosssdk-${SDK_SYS}"
> -PREFERRED_PROVIDER_virtual/${SDK_PREFIX}gcc = "gcc-crosssdk-${SDK_SYS}"
> -PREFERRED_PROVIDER_virtual/${SDK_PREFIX}g++ = "gcc-crosssdk-${SDK_SYS}"
> -PREFERRED_PROVIDER_virtual/${SDK_PREFIX}compilerlibs = 
> "nativesdk-gcc-runtime"
> +PREFERRED_PROVIDER_virtual/cross-binutils:class-nativesdk ?= 
> "binutils-crosssdk-${SDK_SYS}"
> +PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk = 
> "gcc-crosssdk-${SDK_SYS}"
> +PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = 
> "gcc-crosssdk-${SDK_SYS}"
> +
> +PREFERRED_PROVIDER_virtual/nativesdk-cross-binutils ?= 
> "binutils-crosssdk-${SDK_SYS}"
> +PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "gcc-crosssdk-${SDK_SYS}"
> +PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "gcc-crosssdk-${SDK_SYS}"
> +PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime"
>
> Now looking a bit more into the changes made in this commit, there isn't 
> a simple search and replace that can be used, sometimes it's replacing a 
> variable with one value, sometimes with another. Depends on the recipe 
> the change is made in I guess?

I guess so. It's probably going to be different based on the recipe, but I
wouldn't know how to phrase it here. I just gave some more examples to
illustrate the changes. Any idea on a better way to explain this?

Antonin

-- 
Antonin Godard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [docs] [yocto-docs][PATCH v2 2/2] migration-5.2: add virtual provider change
  2025-01-31 13:07     ` Antonin Godard
@ 2025-02-06  9:25       ` Quentin Schulz
  2025-02-07  8:18         ` Antonin Godard
  0 siblings, 1 reply; 7+ messages in thread
From: Quentin Schulz @ 2025-02-06  9:25 UTC (permalink / raw)
  To: Antonin Godard, docs; +Cc: Thomas Petazzoni

Hi Antonin,

On 1/31/25 2:07 PM, Antonin Godard wrote:
> Hi Quentin,
> 
> On Fri Jan 31, 2025 at 1:18 PM CET, Quentin Schulz wrote:
>> Hi Antonin,
>>
>> On 1/31/25 12:14 PM, Antonin Godard via lists.yoctoproject.org wrote:
>>> The commit 4ccc3bc8266c ("classes/recipes: Switch virtual/XXX-gcc to
>>> virtual/cross-cc (and c++/binutils)") in OE-Core changes the
>>> virtual/XXX-gcc to virtual/cross-cc (and c++/binutils) syntax. Add it to
>>> the migration manual.
>>>
>>> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
>>> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
>>> ---
>>>    documentation/migration-guides/migration-5.2.rst | 29 ++++++++++++++++++++++++
>>>    1 file changed, 29 insertions(+)
>>>
>>> diff --git a/documentation/migration-guides/migration-5.2.rst b/documentation/migration-guides/migration-5.2.rst
>>> index a60e3e9a8..b29cb2052 100644
>>> --- a/documentation/migration-guides/migration-5.2.rst
>>> +++ b/documentation/migration-guides/migration-5.2.rst
>>> @@ -105,6 +105,35 @@ some obscure bugs.
>>>    Any logic based on ``BB_CURRENT_MC`` equalling to ``default`` by default should
>>>    be changed to be equal to an empty string.
>>>    
>>> +Virtual toolchain provider changes
>>> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> +
>>> +Support was added for virtual providers on a per-recipe basis for specific
>>> +key toolchain providers listed in ``BB_VIRTUAL_RECIPE_PROVIDERS``. As part of
>>> +that support, the ``cross`` providers were simplified to remove the triplet
>>> +prefix (:term:`TARGET_PREFIX`, :term:`SDK_PREFIX` and :term:`HOST_PREFIX`) and
>>> +generalise the naming. Here are example of how references to these variables
>>> +should be changed to use the new ``cross`` syntax::
>>> +
>>> +   virtual/${HOST_PREFIX}binutils -> virtual/cross-binutils
>>> +   virtual/${TARGET_PREFIX}binutils -> virtual/cross-binutils
>>> +
>>> +   virtual/${HOST_PREFIX}gcc -> virtual/cross-cc
>>> +   virtual/${TARGET_PREFIX}gcc -> virtual/cross-cc
>>> +   virtual/${SDK_PREFIX}gcc -> virtual/nativesdk-cross-cc
>>> +
>>> +   virtual/${HOST_PREFIX}compilerlibs -> virtual/compilerlibs
>>> +   virtual/${TARGET_PREFIX}compilerlibs -> virtual/compilerlibs
>>> +   virtual/nativesdk-${SDK_PREFIX}compilerlibs -> virtual/nativesdk-compilerlibs
>>> +
>>> +   virtual/${TARGET_PREFIX}g++ -> virtual/cross-c++
>>> +
>>
>> I am not sure this rule applies everywhere looking at the commit that
>> makes the change? (see below for related comment)
>>
>>> +A :term:`PREFERRED_PROVIDER` assignment should be transformed as follows::
>>> +
>>> +   PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils -> PREFERRED_PROVIDER_virtual/cross-binutils
>>> +   PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils -> PREFERRED_PROVIDER_virtual/cross-binutils:class-nativesdk
>>> +   PREFERRED_PROVIDER_virtual/${SDK_PREFIX}g++ -> PREFERRED_PROVIDER_virtual/nativesdk-cross-c++
>>> +
>>
>> I believe all PREFERRED_PROVIDER would replace TARGET_PREFIX with cross-
>> (and rename gcc to cc, g++ to c++).
>>
>> SDK_PREFIX would be replace following the same pattern as TARGET_PREFIX
>> except that an override with :class-nativesdk should be provided. Though
>> it seems there's now a second variable for each PREFERRED_PROVIDER which
>> had an SDK_PREFIX, it'll also need nativesdk- prefix added to the same
>> pattern used for TARGET_PREFIX. Except for compilerlibs which only gets
>> the one with the nativesdk- prefix.
>>
>> c.f. from 90e0a0f7f4536e1aeb311ab2b061be71b4129e4e in poky:
>>
>> -PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils ?=
>> "binutils-crosssdk-${SDK_SYS}"
>> -PREFERRED_PROVIDER_virtual/${SDK_PREFIX}gcc = "gcc-crosssdk-${SDK_SYS}"
>> -PREFERRED_PROVIDER_virtual/${SDK_PREFIX}g++ = "gcc-crosssdk-${SDK_SYS}"
>> -PREFERRED_PROVIDER_virtual/${SDK_PREFIX}compilerlibs =
>> "nativesdk-gcc-runtime"
>> +PREFERRED_PROVIDER_virtual/cross-binutils:class-nativesdk ?=
>> "binutils-crosssdk-${SDK_SYS}"
>> +PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk =
>> "gcc-crosssdk-${SDK_SYS}"
>> +PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk =
>> "gcc-crosssdk-${SDK_SYS}"
>> +
>> +PREFERRED_PROVIDER_virtual/nativesdk-cross-binutils ?=
>> "binutils-crosssdk-${SDK_SYS}"
>> +PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "gcc-crosssdk-${SDK_SYS}"
>> +PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "gcc-crosssdk-${SDK_SYS}"
>> +PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime"
>>
>> Now looking a bit more into the changes made in this commit, there isn't
>> a simple search and replace that can be used, sometimes it's replacing a
>> variable with one value, sometimes with another. Depends on the recipe
>> the change is made in I guess?
> 
> I guess so. It's probably going to be different based on the recipe, but I
> wouldn't know how to phrase it here. I just gave some more examples to
> illustrate the changes. Any idea on a better way to explain this?
> 

The issue is that the example implies that the change is simple and 
automatic, it is not I'm afraid. For the variables that we know can be 
changed automatically then it's fine, I believe that's the case for 
PREFERRED_PROVIDER with TARGET_PREFIX. For the others, maybe stating 
that one replacement could be X -> Y but it depends, so rather see <link 
to commit> to check for yourself.

Don't have a better suggestion than that unfortunately.

Cheers,
Quentin


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [docs] [yocto-docs][PATCH v2 2/2] migration-5.2: add virtual provider change
  2025-02-06  9:25       ` Quentin Schulz
@ 2025-02-07  8:18         ` Antonin Godard
  0 siblings, 0 replies; 7+ messages in thread
From: Antonin Godard @ 2025-02-07  8:18 UTC (permalink / raw)
  To: Quentin Schulz, docs; +Cc: Thomas Petazzoni

Hi Quentin,

On Thu Feb 6, 2025 at 10:25 AM CET, Quentin Schulz wrote:
[...]
>>> +
>>> +PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "gcc-crosssdk-${SDK_SYS}"
>>> +PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "gcc-crosssdk-${SDK_SYS}"
>>> +PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime"
>>>
>>> Now looking a bit more into the changes made in this commit, there isn't
>>> a simple search and replace that can be used, sometimes it's replacing a
>>> variable with one value, sometimes with another. Depends on the recipe
>>> the change is made in I guess?
>> 
>> I guess so. It's probably going to be different based on the recipe, but I
>> wouldn't know how to phrase it here. I just gave some more examples to
>> illustrate the changes. Any idea on a better way to explain this?
>> 
>
> The issue is that the example implies that the change is simple and 
> automatic, it is not I'm afraid. For the variables that we know can be 
> changed automatically then it's fine, I believe that's the case for 
> PREFERRED_PROVIDER with TARGET_PREFIX. For the others, maybe stating 
> that one replacement could be X -> Y but it depends, so rather see <link 
> to commit> to check for yourself.
>
> Don't have a better suggestion than that unfortunately.

I get what you mean, thanks. I think I will rephrase this is bit, stating that
those are examples, but should not be taken as a simple grep & replace. I'll
also link to the commit in question.

Antonin

-- 
Antonin Godard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-02-07  8:18 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-31 11:14 [yocto-docs][PATCH v2 0/2] migration-5.2: Add entries for virtual provider and multiconfig changes Antonin Godard
2025-01-31 11:14 ` [yocto-docs][PATCH v2 1/2] migration-5.2: document BB_CURRENT_MC default value change Antonin Godard
2025-01-31 11:14 ` [yocto-docs][PATCH v2 2/2] migration-5.2: add virtual provider change Antonin Godard
2025-01-31 12:18   ` [docs] " Quentin Schulz
2025-01-31 13:07     ` Antonin Godard
2025-02-06  9:25       ` Quentin Schulz
2025-02-07  8:18         ` Antonin Godard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.