From 7befbaaea74ff282b4b8ec5b3c3ad52be0d99937 Mon Sep 17 00:00:00 2001 From: Neal Frager Date: Wed, 31 Jan 2024 11:22:13 +0000 Subject: [PATCH] toolchain/toolchain-bare-metal-buildroot: new toolchain This patch adds a new virtual package for adding a bare-metal toolchain to Buildroot. For now, it depends on nothing, so it will not actually build anything, but it defines some options that will be needed by the various packages that will be part of this toolchain build process. Signed-off-by: Neal Frager Signed-off-by: Ibai Erkiaga Signed-off-by: Thomas Petazzoni --- DEVELOPERS | 4 ++++ toolchain/Config.in | 10 ++++++++++ toolchain/toolchain-bare-metal-buildroot/Config.in | 9 +++++++++ .../toolchain-bare-metal-buildroot.mk | 12 ++++++++++++ utils/checksymbolslib/br.py | 3 +++ 5 files changed, 38 insertions(+) create mode 100644 toolchain/toolchain-bare-metal-buildroot/Config.in create mode 100644 toolchain/toolchain-bare-metal-buildroot/toolchain-bare-metal-buildroot.mk diff --git a/DEVELOPERS b/DEVELOPERS index 94952f72a8..5cc4d37aef 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1385,6 +1385,9 @@ F: package/mrp/ N: Ian Haylock F: package/python-rpi-gpio/ +N: Ibai Erkiaga +F: toolchain/toolchain-bare-metal-buildroot/ + N: Ignacy Gawędzki F: package/angularjs/ @@ -2268,6 +2271,7 @@ F: configs/zynqmp_zcu104_defconfig F: configs/zynqmp_zcu106_defconfig F: package/bootgen/ F: package/versal-firmware/ +F: toolchain/toolchain-bare-metal-buildroot/ N: Nicola Di Lieto F: package/uacme/ diff --git a/toolchain/Config.in b/toolchain/Config.in index 34e0ae2c5f..64a07f91dc 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -923,4 +923,14 @@ config BR2_TOOLCHAIN_HAS_LIBQUADMATH default y if BR2_i386 || BR2_x86_64 default y if BR2_POWERPC_CPU_HAS_VSX +comment "Bare metal toolchain" + +config BR2_TOOLCHAIN_BARE_METAL_BUILDROOT + bool "Build a bare metal toolchain" + help + Select if you need a bare-metal toolchain for building + platform specific firmware images. + +source "toolchain/toolchain-bare-metal-buildroot/Config.in" + endmenu diff --git a/toolchain/toolchain-bare-metal-buildroot/Config.in b/toolchain/toolchain-bare-metal-buildroot/Config.in new file mode 100644 index 0000000000..3c99c7e1b5 --- /dev/null +++ b/toolchain/toolchain-bare-metal-buildroot/Config.in @@ -0,0 +1,9 @@ +if BR2_TOOLCHAIN_BARE_METAL_BUILDROOT + +config BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH + string "architecture tuple" + help + This option allows to define the architecture tuple for the + bare-metal toolchain. + +endif # BR2_TOOLCHAIN_BARE_METAL_BUILDROOT diff --git a/toolchain/toolchain-bare-metal-buildroot/toolchain-bare-metal-buildroot.mk b/toolchain/toolchain-bare-metal-buildroot/toolchain-bare-metal-buildroot.mk new file mode 100644 index 0000000000..4dc36ef3f3 --- /dev/null +++ b/toolchain/toolchain-bare-metal-buildroot/toolchain-bare-metal-buildroot.mk @@ -0,0 +1,12 @@ +################################################################################ +# +# toolchain-bare-metal-buildroot +# +################################################################################ + +TOOLCHAIN_BARE_METAL_BUILDROOT_DEPENDENCIES = +TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE = $(call qstrip,$(BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH)) +TOOLCHAIN_BARE_METAL_BUILDROOT_SYSROOT = $(HOST_DIR)/$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE)/sysroot +TOOLCHAIN_BARE_METAL_BUILDROOT_ADD_TOOLCHAIN_DEPENDENCY = NO + +$(eval $(virtual-package)) diff --git a/utils/checksymbolslib/br.py b/utils/checksymbolslib/br.py index 846a609829..f9dc336e64 100644 --- a/utils/checksymbolslib/br.py +++ b/utils/checksymbolslib/br.py @@ -36,11 +36,14 @@ symbols_defined_only_for_barebox_variant = [ ] # toolchain/toolchain/toolchain.mk # toolchain/toolchain-buildroot/toolchain-buildroot.mk +# toolchain/toolchain-bare-metal-buildroot/toolchain-bare-metal-buildroot.mk symbols_not_defined_for_fake_virtual_packages = [ 'BR2_PACKAGE_HAS_TOOLCHAIN', 'BR2_PACKAGE_HAS_TOOLCHAIN_BUILDROOT', + 'BR2_PACKAGE_HAS_TOOLCHAIN_BARE_METAL_BUILDROOT', 'BR2_PACKAGE_PROVIDES_TOOLCHAIN', 'BR2_PACKAGE_PROVIDES_TOOLCHAIN_BUILDROOT', + 'BR2_PACKAGE_PROVIDES_TOOLCHAIN_BARE_METAL_BUILDROOT', ] # fs/common.mk suffixes_not_defined_for_all_rootfs_types = [