diff mbox series

[master/kirkstone] conf: switch k3r5 multiconfig to baremetal

Message ID 20230706193122.1891075-1-denis@denix.org
State Accepted
Delegated to: Ryan Eatmon
Headers show
Series [master/kirkstone] conf: switch k3r5 multiconfig to baremetal | expand

Commit Message

Denys Dmytriyenko July 6, 2023, 7:31 p.m. UTC
From: Denys Dmytriyenko <denys@konsulko.com>

There are couple of k3r5 components that need to be built for the target
and they are self-contained and don't use glibc. Moreover, when building
a cross-compile toolchain for k3r5, there's no need to build glibc and
all its dependencies. While build-time speed up is nice, the main benefit
comes when packaging a nativesdk toolchain for distribution, reducing the
number of packages and the resulting size of the toolchain installer.

To avoid potential namespace conflict in package feeds between nativesdk
binary packages of Linux glibc and k3r5 baremetal toolchains, adjust the
package suffix accordingly.

This also requires a rather impactful change in the deployment structure,
which affects CIs and user experience. By default different TCLIBC builds
(e.g. glibc and baremetal in this case) are built in separate TMPDIRs to
avoid conflicts, especially on the nativesdk side. Also the default config
has DEPLOY_DIR residing under corresponding TMPDIR. Of course, this can be
changed by local.conf or <distro>.conf, which meta-ti-bsp has no control
over. Unlike multiconfig-image-packager example that can access deployed
artifacts across multiconfigs to package in an image, we use wic and its
IMAGE_BOOT_FILES list to package a final image. Unfortunately, wic cannot
access deployed artifacts across multiconfigs in separate TMPDIRs, as it
uses DEPLOY_DIR_IMAGE to collect the artifacts. To overcome this, we need
to set up a "common" deploy directory for images and sdks produced by
multiconfigs, which is located outside of TMPDIRs, set by TI_COMMON_DEPLOY
variable that can be changed or adjusted by distros as needed.

Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
---
 meta-ti-bsp/conf/layer.conf            | 4 ++++
 meta-ti-bsp/conf/multiconfig/k3r5.conf | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

Comments

Jose Quaresma July 7, 2023, 4:02 p.m. UTC | #1
Foreword to the mailing list.

---------- Forwarded message ---------
De: Jose Quaresma <quaresma.jose@gmail.com>
Date: sexta, 7/07/2023 à(s) 10:51
Subject: Re: [meta-ti] [master/kirkstone][PATCH] conf: switch k3r5
multiconfig to baremetal
To: Denys Dmytriyenko <denis@denix.org>


Hi Denys,

Thanks for doing that, I will do some tests with this on kirstone.

Denys Dmytriyenko <denis@denix.org> escreveu no dia quinta, 6/07/2023 à(s)
20:31:

> From: Denys Dmytriyenko <denys@konsulko.com>
>
> There are couple of k3r5 components that need to be built for the target
> and they are self-contained and don't use glibc. Moreover, when building
> a cross-compile toolchain for k3r5, there's no need to build glibc and
> all its dependencies. While build-time speed up is nice, the main benefit
> comes when packaging a nativesdk toolchain for distribution, reducing the
> number of packages and the resulting size of the toolchain installer.
>
> To avoid potential namespace conflict in package feeds between nativesdk
> binary packages of Linux glibc and k3r5 baremetal toolchains, adjust the
> package suffix accordingly.
>
> This also requires a rather impactful change in the deployment structure,
> which affects CIs and user experience. By default different TCLIBC builds
> (e.g. glibc and baremetal in this case) are built in separate TMPDIRs to
> avoid conflicts, especially on the nativesdk side. Also the default config
> has DEPLOY_DIR residing under corresponding TMPDIR. Of course, this can be
> changed by local.conf or <distro>.conf, which meta-ti-bsp has no control
> over. Unlike multiconfig-image-packager example that can access deployed
> artifacts across multiconfigs to package in an image, we use wic and its
> IMAGE_BOOT_FILES list to package a final image. Unfortunately, wic cannot
> access deployed artifacts across multiconfigs in separate TMPDIRs, as it
> uses DEPLOY_DIR_IMAGE to collect the artifacts. To overcome this, we need
> to set up a "common" deploy directory for images and sdks produced by
> multiconfigs, which is located outside of TMPDIRs, set by TI_COMMON_DEPLOY
> variable that can be changed or adjusted by distros as needed.
>
> Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> ---
>  meta-ti-bsp/conf/layer.conf            | 4 ++++
>  meta-ti-bsp/conf/multiconfig/k3r5.conf | 4 +++-
>  2 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/meta-ti-bsp/conf/layer.conf b/meta-ti-bsp/conf/layer.conf
> index bb286c2b..db6f9de9 100644
> --- a/meta-ti-bsp/conf/layer.conf
> +++ b/meta-ti-bsp/conf/layer.conf
> @@ -23,3 +23,7 @@ SIGGEN_EXCLUDERECIPES_ABISAFE += " \
>  "
>
>  HOSTTOOLS_NONFATAL += "truncate xxd comm"
> +
> +TI_COMMON_DEPLOY ?= "${TOPDIR}/deploy-ti"
> +DEPLOY_DIR_IMAGE:ti-soc = "${TI_COMMON_DEPLOY}/images/${MACHINE}"
> +SDK_DEPLOY:ti-soc = "${TI_COMMON_DEPLOY}/sdk"
> diff --git a/meta-ti-bsp/conf/multiconfig/k3r5.conf
> b/meta-ti-bsp/conf/multiconfig/k3r5.conf
> index deb07210..04b9a746 100644
> --- a/meta-ti-bsp/conf/multiconfig/k3r5.conf
> +++ b/meta-ti-bsp/conf/multiconfig/k3r5.conf
> @@ -1,5 +1,7 @@
>  MAINMACHINE := "${MACHINE}"
>
> -DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MAINMACHINE}"
> +DEPLOY_DIR_IMAGE:k3r5 = "${TI_COMMON_DEPLOY}/images/${MAINMACHINE}"
>

What is the reason to use a machine override here as this conf is already
used only on k3r5 machines?


>
>  MACHINE:append = "-k3r5"
> +TCLIBC = "baremetal"
> +SDKPKGSUFFIX = "k3r5-nativesdk"
> --
> 2.25.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#16821):
> https://lists.yoctoproject.org/g/meta-ti/message/16821
> Mute This Topic: https://lists.yoctoproject.org/mt/99992786/5052612
> Group Owner: meta-ti+owner@lists.yoctoproject.org
> Unsubscribe:
> https://lists.yoctoproject.org/g/meta-ti/leave/11369865/5052612/926574700/xyzzy
> [quaresma.jose@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Jose Quaresma July 7, 2023, 4:05 p.m. UTC | #2
Jose Quaresma <quaresma.jose@gmail.com> escreveu no dia sexta, 7/07/2023
à(s) 17:02:

> Foreword to the mailing list.
>
> ---------- Forwarded message ---------
> De: Jose Quaresma <quaresma.jose@gmail.com>
> Date: sexta, 7/07/2023 à(s) 10:51
> Subject: Re: [meta-ti] [master/kirkstone][PATCH] conf: switch k3r5
> multiconfig to baremetal
> To: Denys Dmytriyenko <denis@denix.org>
>
>
> Hi Denys,
>
> Thanks for doing that, I will do some tests with this on kirstone.
>

Have tested this on kirkstone and have some issues when using the spdx
bbclass,
maybe the spdx deploy folder also needs to be adjusted.
Can have another look next week.

Jose


>
> Denys Dmytriyenko <denis@denix.org> escreveu no dia quinta, 6/07/2023
> à(s) 20:31:
>
>> From: Denys Dmytriyenko <denys@konsulko.com>
>>
>> There are couple of k3r5 components that need to be built for the target
>> and they are self-contained and don't use glibc. Moreover, when building
>> a cross-compile toolchain for k3r5, there's no need to build glibc and
>> all its dependencies. While build-time speed up is nice, the main benefit
>> comes when packaging a nativesdk toolchain for distribution, reducing the
>> number of packages and the resulting size of the toolchain installer.
>>
>> To avoid potential namespace conflict in package feeds between nativesdk
>> binary packages of Linux glibc and k3r5 baremetal toolchains, adjust the
>> package suffix accordingly.
>>
>> This also requires a rather impactful change in the deployment structure,
>> which affects CIs and user experience. By default different TCLIBC builds
>> (e.g. glibc and baremetal in this case) are built in separate TMPDIRs to
>> avoid conflicts, especially on the nativesdk side. Also the default config
>> has DEPLOY_DIR residing under corresponding TMPDIR. Of course, this can be
>> changed by local.conf or <distro>.conf, which meta-ti-bsp has no control
>> over. Unlike multiconfig-image-packager example that can access deployed
>> artifacts across multiconfigs to package in an image, we use wic and its
>> IMAGE_BOOT_FILES list to package a final image. Unfortunately, wic cannot
>> access deployed artifacts across multiconfigs in separate TMPDIRs, as it
>> uses DEPLOY_DIR_IMAGE to collect the artifacts. To overcome this, we need
>> to set up a "common" deploy directory for images and sdks produced by
>> multiconfigs, which is located outside of TMPDIRs, set by TI_COMMON_DEPLOY
>> variable that can be changed or adjusted by distros as needed.
>>
>> Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
>> ---
>>  meta-ti-bsp/conf/layer.conf            | 4 ++++
>>  meta-ti-bsp/conf/multiconfig/k3r5.conf | 4 +++-
>>  2 files changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/meta-ti-bsp/conf/layer.conf b/meta-ti-bsp/conf/layer.conf
>> index bb286c2b..db6f9de9 100644
>> --- a/meta-ti-bsp/conf/layer.conf
>> +++ b/meta-ti-bsp/conf/layer.conf
>> @@ -23,3 +23,7 @@ SIGGEN_EXCLUDERECIPES_ABISAFE += " \
>>  "
>>
>>  HOSTTOOLS_NONFATAL += "truncate xxd comm"
>> +
>> +TI_COMMON_DEPLOY ?= "${TOPDIR}/deploy-ti"
>> +DEPLOY_DIR_IMAGE:ti-soc = "${TI_COMMON_DEPLOY}/images/${MACHINE}"
>> +SDK_DEPLOY:ti-soc = "${TI_COMMON_DEPLOY}/sdk"
>> diff --git a/meta-ti-bsp/conf/multiconfig/k3r5.conf
>> b/meta-ti-bsp/conf/multiconfig/k3r5.conf
>> index deb07210..04b9a746 100644
>> --- a/meta-ti-bsp/conf/multiconfig/k3r5.conf
>> +++ b/meta-ti-bsp/conf/multiconfig/k3r5.conf
>> @@ -1,5 +1,7 @@
>>  MAINMACHINE := "${MACHINE}"
>>
>> -DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MAINMACHINE}"
>> +DEPLOY_DIR_IMAGE:k3r5 = "${TI_COMMON_DEPLOY}/images/${MAINMACHINE}"
>>
>
> What is the reason to use a machine override here as this conf is already
> used only on k3r5 machines?
>
>
>>
>>  MACHINE:append = "-k3r5"
>> +TCLIBC = "baremetal"
>> +SDKPKGSUFFIX = "k3r5-nativesdk"
>> --
>> 2.25.1
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#16821):
>> https://lists.yoctoproject.org/g/meta-ti/message/16821
>> Mute This Topic: https://lists.yoctoproject.org/mt/99992786/5052612
>> Group Owner: meta-ti+owner@lists.yoctoproject.org
>> Unsubscribe:
>> https://lists.yoctoproject.org/g/meta-ti/leave/11369865/5052612/926574700/xyzzy
>> [quaresma.jose@gmail.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
>>
>
> --
> Best regards,
>
> José Quaresma
>
>
> --
> Best regards,
>
> José Quaresma
>
Ryan Eatmon July 7, 2023, 4:33 p.m. UTC | #3
On 7/6/2023 2:31 PM, Denys Dmytriyenko wrote:
> From: Denys Dmytriyenko <denys@konsulko.com>
> 
> There are couple of k3r5 components that need to be built for the target
> and they are self-contained and don't use glibc. Moreover, when building
> a cross-compile toolchain for k3r5, there's no need to build glibc and
> all its dependencies. While build-time speed up is nice, the main benefit
> comes when packaging a nativesdk toolchain for distribution, reducing the
> number of packages and the resulting size of the toolchain installer.
> 
> To avoid potential namespace conflict in package feeds between nativesdk
> binary packages of Linux glibc and k3r5 baremetal toolchains, adjust the
> package suffix accordingly.
> 
> This also requires a rather impactful change in the deployment structure,
> which affects CIs and user experience. By default different TCLIBC builds
> (e.g. glibc and baremetal in this case) are built in separate TMPDIRs to
> avoid conflicts, especially on the nativesdk side. Also the default config
> has DEPLOY_DIR residing under corresponding TMPDIR. Of course, this can be
> changed by local.conf or <distro>.conf, which meta-ti-bsp has no control
> over. Unlike multiconfig-image-packager example that can access deployed
> artifacts across multiconfigs to package in an image, we use wic and its
> IMAGE_BOOT_FILES list to package a final image. Unfortunately, wic cannot
> access deployed artifacts across multiconfigs in separate TMPDIRs, as it
> uses DEPLOY_DIR_IMAGE to collect the artifacts. To overcome this, we need
> to set up a "common" deploy directory for images and sdks produced by
> multiconfigs, which is located outside of TMPDIRs, set by TI_COMMON_DEPLOY
> variable that can be changed or adjusted by distros as needed.
> 
> Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> ---
>   meta-ti-bsp/conf/layer.conf            | 4 ++++
>   meta-ti-bsp/conf/multiconfig/k3r5.conf | 4 +++-
>   2 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/meta-ti-bsp/conf/layer.conf b/meta-ti-bsp/conf/layer.conf
> index bb286c2b..db6f9de9 100644
> --- a/meta-ti-bsp/conf/layer.conf
> +++ b/meta-ti-bsp/conf/layer.conf
> @@ -23,3 +23,7 @@ SIGGEN_EXCLUDERECIPES_ABISAFE += " \
>   "
>   
>   HOSTTOOLS_NONFATAL += "truncate xxd comm"
> +
> +TI_COMMON_DEPLOY ?= "${TOPDIR}/deploy-ti"

During testing, this one threw me for a bit.  None of the build scripts 
were copying anything...  I can deal with that.  But, we pull a few 
things out of the deploy dir.  Images, sdk, ipk...  should we also have 
something that uses this new TI_COMMON_DEPLOY for the ipk and licenses?


> +DEPLOY_DIR_IMAGE:ti-soc = "${TI_COMMON_DEPLOY}/images/${MACHINE}"
> +SDK_DEPLOY:ti-soc = "${TI_COMMON_DEPLOY}/sdk"
> diff --git a/meta-ti-bsp/conf/multiconfig/k3r5.conf b/meta-ti-bsp/conf/multiconfig/k3r5.conf
> index deb07210..04b9a746 100644
> --- a/meta-ti-bsp/conf/multiconfig/k3r5.conf
> +++ b/meta-ti-bsp/conf/multiconfig/k3r5.conf
> @@ -1,5 +1,7 @@
>   MAINMACHINE := "${MACHINE}"
>   
> -DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MAINMACHINE}"
> +DEPLOY_DIR_IMAGE:k3r5 = "${TI_COMMON_DEPLOY}/images/${MAINMACHINE}"
>   
>   MACHINE:append = "-k3r5"
> +TCLIBC = "baremetal"
> +SDKPKGSUFFIX = "k3r5-nativesdk"
> 
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#16821): https://lists.yoctoproject.org/g/meta-ti/message/16821
> Mute This Topic: https://lists.yoctoproject.org/mt/99992786/6551054
> Group Owner: meta-ti+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/leave/10828724/6551054/1815494134/xyzzy [reatmon@ti.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Denys Dmytriyenko July 7, 2023, 8:51 p.m. UTC | #4
On Fri, Jul 07, 2023 at 11:33:33AM -0500, Ryan Eatmon wrote:
> 
> 
> On 7/6/2023 2:31 PM, Denys Dmytriyenko wrote:
> >From: Denys Dmytriyenko <denys@konsulko.com>
> >
> >There are couple of k3r5 components that need to be built for the target
> >and they are self-contained and don't use glibc. Moreover, when building
> >a cross-compile toolchain for k3r5, there's no need to build glibc and
> >all its dependencies. While build-time speed up is nice, the main benefit
> >comes when packaging a nativesdk toolchain for distribution, reducing the
> >number of packages and the resulting size of the toolchain installer.
> >
> >To avoid potential namespace conflict in package feeds between nativesdk
> >binary packages of Linux glibc and k3r5 baremetal toolchains, adjust the
> >package suffix accordingly.
> >
> >This also requires a rather impactful change in the deployment structure,

Should have said disruptive here instead of impactful - may have caught more 
attention...


> >which affects CIs and user experience. By default different TCLIBC builds
> >(e.g. glibc and baremetal in this case) are built in separate TMPDIRs to
> >avoid conflicts, especially on the nativesdk side. Also the default config
> >has DEPLOY_DIR residing under corresponding TMPDIR. Of course, this can be
> >changed by local.conf or <distro>.conf, which meta-ti-bsp has no control
> >over. Unlike multiconfig-image-packager example that can access deployed
> >artifacts across multiconfigs to package in an image, we use wic and its
> >IMAGE_BOOT_FILES list to package a final image. Unfortunately, wic cannot
> >access deployed artifacts across multiconfigs in separate TMPDIRs, as it
> >uses DEPLOY_DIR_IMAGE to collect the artifacts. To overcome this, we need
> >to set up a "common" deploy directory for images and sdks produced by
> >multiconfigs, which is located outside of TMPDIRs, set by TI_COMMON_DEPLOY
> >variable that can be changed or adjusted by distros as needed.
> >
> >Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> >---
> >  meta-ti-bsp/conf/layer.conf            | 4 ++++
> >  meta-ti-bsp/conf/multiconfig/k3r5.conf | 4 +++-
> >  2 files changed, 7 insertions(+), 1 deletion(-)
> >
> >diff --git a/meta-ti-bsp/conf/layer.conf b/meta-ti-bsp/conf/layer.conf
> >index bb286c2b..db6f9de9 100644
> >--- a/meta-ti-bsp/conf/layer.conf
> >+++ b/meta-ti-bsp/conf/layer.conf
> >@@ -23,3 +23,7 @@ SIGGEN_EXCLUDERECIPES_ABISAFE += " \
> >  "
> >  HOSTTOOLS_NONFATAL += "truncate xxd comm"
> >+
> >+TI_COMMON_DEPLOY ?= "${TOPDIR}/deploy-ti"
> 
> During testing, this one threw me for a bit.  None of the build
> scripts were copying anything... 

Heh, that's the lengthy explanation in the commit log above... I guess nobody 
reads that anyway :)


> I can deal with that.  But, we
> pull a few things out of the deploy dir.  Images, sdk, ipk...
> should we also have something that uses this new TI_COMMON_DEPLOY
> for the ipk and licenses?

I only wanted to do the bare minimum here in meta-ti for all distros to work 
out of the box w/o breaking. As mentioned in the description above the correct 
place for this stuff is either in the distro configuration or local.conf. And 
I didn't want to get in the way of that. That said, it should be perfectly 
fine to completely switch over to this "combined" deploy dir for all the 
remaining pieces, but should be done in the distro, not here.


> >+DEPLOY_DIR_IMAGE:ti-soc = "${TI_COMMON_DEPLOY}/images/${MACHINE}"
> >+SDK_DEPLOY:ti-soc = "${TI_COMMON_DEPLOY}/sdk"
> >diff --git a/meta-ti-bsp/conf/multiconfig/k3r5.conf b/meta-ti-bsp/conf/multiconfig/k3r5.conf
> >index deb07210..04b9a746 100644
> >--- a/meta-ti-bsp/conf/multiconfig/k3r5.conf
> >+++ b/meta-ti-bsp/conf/multiconfig/k3r5.conf
> >@@ -1,5 +1,7 @@
> >  MAINMACHINE := "${MACHINE}"
> >-DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MAINMACHINE}"
> >+DEPLOY_DIR_IMAGE:k3r5 = "${TI_COMMON_DEPLOY}/images/${MAINMACHINE}"
> >  MACHINE:append = "-k3r5"
> >+TCLIBC = "baremetal"
> >+SDKPKGSUFFIX = "k3r5-nativesdk"
Denys Dmytriyenko July 7, 2023, 9:19 p.m. UTC | #5
On Fri, Jul 07, 2023 at 05:02:37PM +0100, Jose Quaresma wrote:
> Foreword to the mailing list.
> 
> ---------- Forwarded message ---------
> De: Jose Quaresma <quaresma.jose@gmail.com>
> Date: sexta, 7/07/2023 à(s) 10:51
> Subject: Re: [meta-ti] [master/kirkstone][PATCH] conf: switch k3r5
> multiconfig to baremetal
> To: Denys Dmytriyenko <denis@denix.org>
> 
> 
> Hi Denys,
> 
> Thanks for doing that, I will do some tests with this on kirstone.
> 
> Denys Dmytriyenko <denis@denix.org> escreveu no dia quinta, 6/07/2023 à(s)
> 20:31:
> 
> > From: Denys Dmytriyenko <denys@konsulko.com>
> >
> > There are couple of k3r5 components that need to be built for the target
> > and they are self-contained and don't use glibc. Moreover, when building
> > a cross-compile toolchain for k3r5, there's no need to build glibc and
> > all its dependencies. While build-time speed up is nice, the main benefit
> > comes when packaging a nativesdk toolchain for distribution, reducing the
> > number of packages and the resulting size of the toolchain installer.
> >
> > To avoid potential namespace conflict in package feeds between nativesdk
> > binary packages of Linux glibc and k3r5 baremetal toolchains, adjust the
> > package suffix accordingly.
> >
> > This also requires a rather impactful change in the deployment structure,
> > which affects CIs and user experience. By default different TCLIBC builds
> > (e.g. glibc and baremetal in this case) are built in separate TMPDIRs to
> > avoid conflicts, especially on the nativesdk side. Also the default config
> > has DEPLOY_DIR residing under corresponding TMPDIR. Of course, this can be
> > changed by local.conf or <distro>.conf, which meta-ti-bsp has no control
> > over. Unlike multiconfig-image-packager example that can access deployed
> > artifacts across multiconfigs to package in an image, we use wic and its
> > IMAGE_BOOT_FILES list to package a final image. Unfortunately, wic cannot
> > access deployed artifacts across multiconfigs in separate TMPDIRs, as it
> > uses DEPLOY_DIR_IMAGE to collect the artifacts. To overcome this, we need
> > to set up a "common" deploy directory for images and sdks produced by
> > multiconfigs, which is located outside of TMPDIRs, set by TI_COMMON_DEPLOY
> > variable that can be changed or adjusted by distros as needed.
> >
> > Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> > ---
> >  meta-ti-bsp/conf/layer.conf            | 4 ++++
> >  meta-ti-bsp/conf/multiconfig/k3r5.conf | 4 +++-
> >  2 files changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/meta-ti-bsp/conf/layer.conf b/meta-ti-bsp/conf/layer.conf
> > index bb286c2b..db6f9de9 100644
> > --- a/meta-ti-bsp/conf/layer.conf
> > +++ b/meta-ti-bsp/conf/layer.conf
> > @@ -23,3 +23,7 @@ SIGGEN_EXCLUDERECIPES_ABISAFE += " \
> >  "
> >
> >  HOSTTOOLS_NONFATAL += "truncate xxd comm"
> > +
> > +TI_COMMON_DEPLOY ?= "${TOPDIR}/deploy-ti"
> > +DEPLOY_DIR_IMAGE:ti-soc = "${TI_COMMON_DEPLOY}/images/${MACHINE}"
> > +SDK_DEPLOY:ti-soc = "${TI_COMMON_DEPLOY}/sdk"
> > diff --git a/meta-ti-bsp/conf/multiconfig/k3r5.conf
> > b/meta-ti-bsp/conf/multiconfig/k3r5.conf
> > index deb07210..04b9a746 100644
> > --- a/meta-ti-bsp/conf/multiconfig/k3r5.conf
> > +++ b/meta-ti-bsp/conf/multiconfig/k3r5.conf
> > @@ -1,5 +1,7 @@
> >  MAINMACHINE := "${MACHINE}"
> >
> > -DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MAINMACHINE}"
> > +DEPLOY_DIR_IMAGE:k3r5 = "${TI_COMMON_DEPLOY}/images/${MAINMACHINE}"
> 
> What is the reason to use a machine override here as this conf is already
> used only on k3r5 machines?

To override the value set in the layer.conf above.


> >  MACHINE:append = "-k3r5"
> > +TCLIBC = "baremetal"
> > +SDKPKGSUFFIX = "k3r5-nativesdk"
> > --
> > 2.25.1
Denys Dmytriyenko July 7, 2023, 9:27 p.m. UTC | #6
On Fri, Jul 07, 2023 at 05:05:27PM +0100, Jose Quaresma wrote:
> Jose Quaresma <quaresma.jose@gmail.com> escreveu no dia sexta, 7/07/2023
> à(s) 17:02:
> 
> > Foreword to the mailing list.
> >
> > ---------- Forwarded message ---------
> > De: Jose Quaresma <quaresma.jose@gmail.com>
> > Date: sexta, 7/07/2023 à(s) 10:51
> > Subject: Re: [meta-ti] [master/kirkstone][PATCH] conf: switch k3r5
> > multiconfig to baremetal
> > To: Denys Dmytriyenko <denis@denix.org>
> >
> >
> > Hi Denys,
> >
> > Thanks for doing that, I will do some tests with this on kirstone.
> >
> 
> Have tested this on kirkstone and have some issues when using the spdx
> bbclass,
> maybe the spdx deploy folder also needs to be adjusted.
> Can have another look next week.

Thanks for testing. Please keep us posted. As I just replied to Ryan, any 
additional customizations outside of meta-ti may require adjustments in the 
distro or local.conf.
Ryan Eatmon July 7, 2023, 10:16 p.m. UTC | #7
On 7/7/2023 3:51 PM, Denys Dmytriyenko wrote:
> On Fri, Jul 07, 2023 at 11:33:33AM -0500, Ryan Eatmon wrote:
>>
>>
>> On 7/6/2023 2:31 PM, Denys Dmytriyenko wrote:
>>> From: Denys Dmytriyenko <denys@konsulko.com>
>>>
>>> There are couple of k3r5 components that need to be built for the target
>>> and they are self-contained and don't use glibc. Moreover, when building
>>> a cross-compile toolchain for k3r5, there's no need to build glibc and
>>> all its dependencies. While build-time speed up is nice, the main benefit
>>> comes when packaging a nativesdk toolchain for distribution, reducing the
>>> number of packages and the resulting size of the toolchain installer.
>>>
>>> To avoid potential namespace conflict in package feeds between nativesdk
>>> binary packages of Linux glibc and k3r5 baremetal toolchains, adjust the
>>> package suffix accordingly.
>>>
>>> This also requires a rather impactful change in the deployment structure,
> 
> Should have said disruptive here instead of impactful - may have caught more
> attention...
> 
> 
>>> which affects CIs and user experience. By default different TCLIBC builds
>>> (e.g. glibc and baremetal in this case) are built in separate TMPDIRs to
>>> avoid conflicts, especially on the nativesdk side. Also the default config
>>> has DEPLOY_DIR residing under corresponding TMPDIR. Of course, this can be
>>> changed by local.conf or <distro>.conf, which meta-ti-bsp has no control
>>> over. Unlike multiconfig-image-packager example that can access deployed
>>> artifacts across multiconfigs to package in an image, we use wic and its
>>> IMAGE_BOOT_FILES list to package a final image. Unfortunately, wic cannot
>>> access deployed artifacts across multiconfigs in separate TMPDIRs, as it
>>> uses DEPLOY_DIR_IMAGE to collect the artifacts. To overcome this, we need
>>> to set up a "common" deploy directory for images and sdks produced by
>>> multiconfigs, which is located outside of TMPDIRs, set by TI_COMMON_DEPLOY
>>> variable that can be changed or adjusted by distros as needed.
>>>
>>> Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
>>> ---
>>>   meta-ti-bsp/conf/layer.conf            | 4 ++++
>>>   meta-ti-bsp/conf/multiconfig/k3r5.conf | 4 +++-
>>>   2 files changed, 7 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/meta-ti-bsp/conf/layer.conf b/meta-ti-bsp/conf/layer.conf
>>> index bb286c2b..db6f9de9 100644
>>> --- a/meta-ti-bsp/conf/layer.conf
>>> +++ b/meta-ti-bsp/conf/layer.conf
>>> @@ -23,3 +23,7 @@ SIGGEN_EXCLUDERECIPES_ABISAFE += " \
>>>   "
>>>   HOSTTOOLS_NONFATAL += "truncate xxd comm"
>>> +
>>> +TI_COMMON_DEPLOY ?= "${TOPDIR}/deploy-ti"
>>
>> During testing, this one threw me for a bit.  None of the build
>> scripts were copying anything...
> 
> Heh, that's the lengthy explanation in the commit log above... I guess nobody
> reads that anyway :)

I read the comment.  But knowing a wave is coming and experiencing the 
wave wash over you are two different things. =)

> 
>> I can deal with that.  But, we
>> pull a few things out of the deploy dir.  Images, sdk, ipk...
>> should we also have something that uses this new TI_COMMON_DEPLOY
>> for the ipk and licenses?
> 
> I only wanted to do the bare minimum here in meta-ti for all distros to work
> out of the box w/o breaking. As mentioned in the description above the correct
> place for this stuff is either in the distro configuration or local.conf. And
> I didn't want to get in the way of that. That said, it should be perfectly
> fine to completely switch over to this "combined" deploy dir for all the
> remaining pieces, but should be done in the distro, not here.

Agreed.  I was more asking from the stand point of should we pursue 
moving everything into deploy-ti.  Which is sounds like you are in 
support of it.  And I agree, that change belongs in meta-arago.


> 
>>> +DEPLOY_DIR_IMAGE:ti-soc = "${TI_COMMON_DEPLOY}/images/${MACHINE}"
>>> +SDK_DEPLOY:ti-soc = "${TI_COMMON_DEPLOY}/sdk"
>>> diff --git a/meta-ti-bsp/conf/multiconfig/k3r5.conf b/meta-ti-bsp/conf/multiconfig/k3r5.conf
>>> index deb07210..04b9a746 100644
>>> --- a/meta-ti-bsp/conf/multiconfig/k3r5.conf
>>> +++ b/meta-ti-bsp/conf/multiconfig/k3r5.conf
>>> @@ -1,5 +1,7 @@
>>>   MAINMACHINE := "${MACHINE}"
>>> -DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MAINMACHINE}"
>>> +DEPLOY_DIR_IMAGE:k3r5 = "${TI_COMMON_DEPLOY}/images/${MAINMACHINE}"
>>>   MACHINE:append = "-k3r5"
>>> +TCLIBC = "baremetal"
>>> +SDKPKGSUFFIX = "k3r5-nativesdk"
diff mbox series

Patch

diff --git a/meta-ti-bsp/conf/layer.conf b/meta-ti-bsp/conf/layer.conf
index bb286c2b..db6f9de9 100644
--- a/meta-ti-bsp/conf/layer.conf
+++ b/meta-ti-bsp/conf/layer.conf
@@ -23,3 +23,7 @@  SIGGEN_EXCLUDERECIPES_ABISAFE += " \
 "
 
 HOSTTOOLS_NONFATAL += "truncate xxd comm"
+
+TI_COMMON_DEPLOY ?= "${TOPDIR}/deploy-ti"
+DEPLOY_DIR_IMAGE:ti-soc = "${TI_COMMON_DEPLOY}/images/${MACHINE}"
+SDK_DEPLOY:ti-soc = "${TI_COMMON_DEPLOY}/sdk"
diff --git a/meta-ti-bsp/conf/multiconfig/k3r5.conf b/meta-ti-bsp/conf/multiconfig/k3r5.conf
index deb07210..04b9a746 100644
--- a/meta-ti-bsp/conf/multiconfig/k3r5.conf
+++ b/meta-ti-bsp/conf/multiconfig/k3r5.conf
@@ -1,5 +1,7 @@ 
 MAINMACHINE := "${MACHINE}"
 
-DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MAINMACHINE}"
+DEPLOY_DIR_IMAGE:k3r5 = "${TI_COMMON_DEPLOY}/images/${MAINMACHINE}"
 
 MACHINE:append = "-k3r5"
+TCLIBC = "baremetal"
+SDKPKGSUFFIX = "k3r5-nativesdk"