Message ID | 20241202153001.2212785-1-amikan@ilbers.de |
---|---|
State | Accepted, archived |
Headers | show |
Series | [v3] meta: Enable cross-compilation by default | expand |
On Mon, 2024-12-02 at 17:30 +0200, Anton Mikanovich wrote: > Make cross-compilation to be default mode if no ISAR_CROSS_COMPILE > value was set or local.conf.sample from meta-isar was used. > This will speedup the build with default settings. > > Also fix CI and kas logic to address those changes. > > Signed-off-by: Anton Mikanovich <amikan@ilbers.de> > --- > Changes since v2: > - Simplify kas logic. > - Update source headers. > > Changes since v1: > - Fix testsuite cross compile setting logic. > - Fix kas cross compile setting logic. > - Update source headers. > > RECIPE-API-CHANGELOG.md | 9 +++++++++ > kas/opt/Kconfig | 11 +++++++++-- > kas/opt/crosscompile.yaml | 6 ++++-- > meta-isar/conf/local.conf.sample | 9 ++++++--- > meta/classes/crossvars.bbclass | 7 +++++-- > testsuite/cibuilder.py | 10 +++++++++- > 6 files changed, 42 insertions(+), 10 deletions(-) > > diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md > index deb1c4e1..f310553a 100644 > --- a/RECIPE-API-CHANGELOG.md > +++ b/RECIPE-API-CHANGELOG.md > @@ -693,3 +693,12 @@ Previous implementation still can be selected by > setting in local.conf: > > PREFERRED_PROVIDER_bootstrap-host ?= "isar-bootstrap-host" > PREFERRED_PROVIDER_bootstrap-target ?= "isar-bootstrap-target" > + > +### Cross-compilation is enabled by default > + > +Default ISAR_CROSS_COMPILE value was changed to "1". > +There is no more need to set global ISAR_CROSS_COMPILE = "1" in > local.conf to > +enable cross-compilation. Otherwize ISAR_CROSS_COMPILE = "0" now > should be set > +in local.conf to disable cross-compilation for all the recipes. > +Sample local.conf from meta-isar used by isar-init-build-env is also > changed > +to enable cross-compilation by default. > diff --git a/kas/opt/Kconfig b/kas/opt/Kconfig > index b1b1ff16..1ec4b112 100644 > --- a/kas/opt/Kconfig > +++ b/kas/opt/Kconfig > @@ -1,8 +1,11 @@ > # This software is a part of ISAR. > -# Copyright (C) 2023 ilbers GmbH > +# Copyright (C) 2023-2024 ilbers GmbH > +# Copyright (C) 2024 Siemens AG > # > # Authors: > # Uladzimir Bely <ubely@ilbers.de> > +# > +# SPDX-License-Identifier: MIT > > menu "Mirror selection" > depends on DEBIAN_BUSTER || DEBIAN_BULLSEYE || > DEBIAN_BOOKWORM || DEBIAN_TRIXIE || DEBIAN_SID || UBUNTU_FOCAL || > UBUNTU_JAMMY > @@ -149,10 +152,14 @@ config ISAR_CROSS_COMPILE > bool "Enable cross compilation mode" > default y > > +config KAS_ISAR_CROSS_COMPILE > + string > + default "1" if ISAR_CROSS_COMPILE > + default "0" if !ISAR_CROSS_COMPILE > + > config KAS_INCLUDE_ISAR_CROSS_COMPILE > string > default "kas/opt/crosscompile.yaml" > - depends on ISAR_CROSS_COMPILE > > > config USE_CCACHE > diff --git a/kas/opt/crosscompile.yaml b/kas/opt/crosscompile.yaml > index 1b927ebd..4ec26d92 100644 > --- a/kas/opt/crosscompile.yaml > +++ b/kas/opt/crosscompile.yaml > @@ -1,9 +1,11 @@ > # This software is a part of ISAR. > -# Copyright (C) 2023 ilbers GmbH > +# Copyright (C) 2023-2024 ilbers GmbH > +# > +# SPDX-License-Identifier: MIT > > header: > version: 14 > > local_conf_header: > crosscompile: | > - ISAR_CROSS_COMPILE = "1" > + ISAR_CROSS_COMPILE = "${KAS_ISAR_CROSS_COMPILE}" > diff --git a/meta-isar/conf/local.conf.sample b/meta- > isar/conf/local.conf.sample > index 14cac313..b59f310b 100644 > --- a/meta-isar/conf/local.conf.sample > +++ b/meta-isar/conf/local.conf.sample > @@ -1,5 +1,8 @@ > # This software is a part of ISAR. > -# Copyright (C) 2023 ilbers GmbH > +# Copyright (C) 2016-2024 ilbers GmbH > +# Copyright (C) 2017-2024 Siemens AG > +# > +# SPDX-License-Identifier: MIT > > # > # This file is your local configuration file and is where all local > user settings > @@ -157,8 +160,8 @@ IMAGE_INSTALL:remove:qemuamd64-sb = "example- > module-${KERNEL_NAME}" > IMAGE_INSTALL:append:qemuamd64-sb = " example-module-signed- > ${KERNEL_NAME}" > > # > -# Enable cross-compilation support > -ISAR_CROSS_COMPILE ?= "0" > +# Uncomment this to disable cross-compilation support > +#ISAR_CROSS_COMPILE ?= "0" > > # > # Uncomment to enable 32-bit compat architecture support > diff --git a/meta/classes/crossvars.bbclass > b/meta/classes/crossvars.bbclass > index 00326c9a..1a88d457 100644 > --- a/meta/classes/crossvars.bbclass > +++ b/meta/classes/crossvars.bbclass > @@ -1,7 +1,10 @@ > # This software is a part of ISAR. > -# Copyright (C) 2022 ilbers GmbH > +# Copyright (C) 2023-2024 ilbers GmbH > +# Copyright (C) 2023-2024 Siemens AG > +# > +# SPDX-License-Identifier: MIT > > -ISAR_CROSS_COMPILE ??= "0" > +ISAR_CROSS_COMPILE ??= "1" > > inherit compat > > diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py > index 9fa3d86c..b5b6a093 100755 > --- a/testsuite/cibuilder.py > +++ b/testsuite/cibuilder.py > @@ -1,4 +1,10 @@ > #!/usr/bin/env python3 > +# > +# This software is a part of ISAR. > +# Copyright (C) 2022-2024 ilbers GmbH > +# Copyright (C) 2022-2024 Siemens AG > +# > +# SPDX-License-Identifier: MIT > > import logging > import os > @@ -168,7 +174,9 @@ class CIBuilder(Test): > f.write('ISAR_ENABLE_COMPAT_ARCH:arm64 = "1"\n') > f.write('IMAGE_INSTALL:remove:arm64 = "hello- > isar"\n') > f.write('IMAGE_INSTALL:append:arm64 = " hello-isar- > compat"\n') > - if cross: > + if not cross: > + f.write('ISAR_CROSS_COMPILE = "0"\n') > + else: > f.write('ISAR_CROSS_COMPILE = "1"\n') > f.write( > 'IMAGE_INSTALL:append:hikey = ' > -- > 2.34.1 > Applied to next.
diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index deb1c4e1..f310553a 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -693,3 +693,12 @@ Previous implementation still can be selected by setting in local.conf: PREFERRED_PROVIDER_bootstrap-host ?= "isar-bootstrap-host" PREFERRED_PROVIDER_bootstrap-target ?= "isar-bootstrap-target" + +### Cross-compilation is enabled by default + +Default ISAR_CROSS_COMPILE value was changed to "1". +There is no more need to set global ISAR_CROSS_COMPILE = "1" in local.conf to +enable cross-compilation. Otherwize ISAR_CROSS_COMPILE = "0" now should be set +in local.conf to disable cross-compilation for all the recipes. +Sample local.conf from meta-isar used by isar-init-build-env is also changed +to enable cross-compilation by default. diff --git a/kas/opt/Kconfig b/kas/opt/Kconfig index b1b1ff16..1ec4b112 100644 --- a/kas/opt/Kconfig +++ b/kas/opt/Kconfig @@ -1,8 +1,11 @@ # This software is a part of ISAR. -# Copyright (C) 2023 ilbers GmbH +# Copyright (C) 2023-2024 ilbers GmbH +# Copyright (C) 2024 Siemens AG # # Authors: # Uladzimir Bely <ubely@ilbers.de> +# +# SPDX-License-Identifier: MIT menu "Mirror selection" depends on DEBIAN_BUSTER || DEBIAN_BULLSEYE || DEBIAN_BOOKWORM || DEBIAN_TRIXIE || DEBIAN_SID || UBUNTU_FOCAL || UBUNTU_JAMMY @@ -149,10 +152,14 @@ config ISAR_CROSS_COMPILE bool "Enable cross compilation mode" default y +config KAS_ISAR_CROSS_COMPILE + string + default "1" if ISAR_CROSS_COMPILE + default "0" if !ISAR_CROSS_COMPILE + config KAS_INCLUDE_ISAR_CROSS_COMPILE string default "kas/opt/crosscompile.yaml" - depends on ISAR_CROSS_COMPILE config USE_CCACHE diff --git a/kas/opt/crosscompile.yaml b/kas/opt/crosscompile.yaml index 1b927ebd..4ec26d92 100644 --- a/kas/opt/crosscompile.yaml +++ b/kas/opt/crosscompile.yaml @@ -1,9 +1,11 @@ # This software is a part of ISAR. -# Copyright (C) 2023 ilbers GmbH +# Copyright (C) 2023-2024 ilbers GmbH +# +# SPDX-License-Identifier: MIT header: version: 14 local_conf_header: crosscompile: | - ISAR_CROSS_COMPILE = "1" + ISAR_CROSS_COMPILE = "${KAS_ISAR_CROSS_COMPILE}" diff --git a/meta-isar/conf/local.conf.sample b/meta-isar/conf/local.conf.sample index 14cac313..b59f310b 100644 --- a/meta-isar/conf/local.conf.sample +++ b/meta-isar/conf/local.conf.sample @@ -1,5 +1,8 @@ # This software is a part of ISAR. -# Copyright (C) 2023 ilbers GmbH +# Copyright (C) 2016-2024 ilbers GmbH +# Copyright (C) 2017-2024 Siemens AG +# +# SPDX-License-Identifier: MIT # # This file is your local configuration file and is where all local user settings @@ -157,8 +160,8 @@ IMAGE_INSTALL:remove:qemuamd64-sb = "example-module-${KERNEL_NAME}" IMAGE_INSTALL:append:qemuamd64-sb = " example-module-signed-${KERNEL_NAME}" # -# Enable cross-compilation support -ISAR_CROSS_COMPILE ?= "0" +# Uncomment this to disable cross-compilation support +#ISAR_CROSS_COMPILE ?= "0" # # Uncomment to enable 32-bit compat architecture support diff --git a/meta/classes/crossvars.bbclass b/meta/classes/crossvars.bbclass index 00326c9a..1a88d457 100644 --- a/meta/classes/crossvars.bbclass +++ b/meta/classes/crossvars.bbclass @@ -1,7 +1,10 @@ # This software is a part of ISAR. -# Copyright (C) 2022 ilbers GmbH +# Copyright (C) 2023-2024 ilbers GmbH +# Copyright (C) 2023-2024 Siemens AG +# +# SPDX-License-Identifier: MIT -ISAR_CROSS_COMPILE ??= "0" +ISAR_CROSS_COMPILE ??= "1" inherit compat diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py index 9fa3d86c..b5b6a093 100755 --- a/testsuite/cibuilder.py +++ b/testsuite/cibuilder.py @@ -1,4 +1,10 @@ #!/usr/bin/env python3 +# +# This software is a part of ISAR. +# Copyright (C) 2022-2024 ilbers GmbH +# Copyright (C) 2022-2024 Siemens AG +# +# SPDX-License-Identifier: MIT import logging import os @@ -168,7 +174,9 @@ class CIBuilder(Test): f.write('ISAR_ENABLE_COMPAT_ARCH:arm64 = "1"\n') f.write('IMAGE_INSTALL:remove:arm64 = "hello-isar"\n') f.write('IMAGE_INSTALL:append:arm64 = " hello-isar-compat"\n') - if cross: + if not cross: + f.write('ISAR_CROSS_COMPILE = "0"\n') + else: f.write('ISAR_CROSS_COMPILE = "1"\n') f.write( 'IMAGE_INSTALL:append:hikey = '
Make cross-compilation to be default mode if no ISAR_CROSS_COMPILE value was set or local.conf.sample from meta-isar was used. This will speedup the build with default settings. Also fix CI and kas logic to address those changes. Signed-off-by: Anton Mikanovich <amikan@ilbers.de> --- Changes since v2: - Simplify kas logic. - Update source headers. Changes since v1: - Fix testsuite cross compile setting logic. - Fix kas cross compile setting logic. - Update source headers. RECIPE-API-CHANGELOG.md | 9 +++++++++ kas/opt/Kconfig | 11 +++++++++-- kas/opt/crosscompile.yaml | 6 ++++-- meta-isar/conf/local.conf.sample | 9 ++++++--- meta/classes/crossvars.bbclass | 7 +++++-- testsuite/cibuilder.py | 10 +++++++++- 6 files changed, 42 insertions(+), 10 deletions(-)