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.
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 | 10 +++++++++-
kas/opt/nocrosscompile.yaml | 11 +++++++++++
meta-isar/conf/local.conf.sample | 4 ++--
meta/classes/crossvars.bbclass | 2 +-
testsuite/cibuilder.py | 10 +++++++++-
6 files changed, 41 insertions(+), 5 deletions(-)
create mode 100644 kas/opt/nocrosscompile.yaml
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..3ae921bd 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 <
ub...@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
@@ -154,6 +157,11 @@ config KAS_INCLUDE_ISAR_CROSS_COMPILE
default "kas/opt/crosscompile.yaml"
depends on ISAR_CROSS_COMPILE
+config KAS_INCLUDE_NO_ISAR_CROSS_COMPILE
+ string
+ default "kas/opt/nocrosscompile.yaml"
+ depends on !ISAR_CROSS_COMPILE
+
config USE_CCACHE
bool "Use ccache during build"
diff --git a/kas/opt/nocrosscompile.yaml b/kas/opt/nocrosscompile.yaml
new file mode 100644
index 00000000..99713e1e
--- /dev/null
+++ b/kas/opt/nocrosscompile.yaml
@@ -0,0 +1,11 @@
+# This software is a part of ISAR.
+# Copyright (C) 2024 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+header:
+ version: 14
+
+local_conf_header:
+ nocrosscompile: |
+ ISAR_CROSS_COMPILE = "0"
diff --git a/meta-isar/conf/local.conf.sample b/meta-isar/conf/local.conf.sample
index 14cac313..fffe5e6a 100644
--- a/meta-isar/conf/local.conf.sample
+++ b/meta-isar/conf/local.conf.sample
@@ -157,8 +157,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..7bd7ab94 100644
--- a/meta/classes/crossvars.bbclass
+++ b/meta/classes/crossvars.bbclass
@@ -1,7 +1,7 @@
# This software is a part of ISAR.
# Copyright (C) 2022 ilbers GmbH
-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