diff mbox series

[v9,01/11] toolchain/toolchain-bare-metal-buildroot: new toolchain

Message ID 20240131112223.2175855-1-neal.frager@amd.com
State Accepted
Headers show
Series [v9,01/11] toolchain/toolchain-bare-metal-buildroot: new toolchain | expand

Commit Message

Neal Frager Jan. 31, 2024, 11:22 a.m. UTC
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 <neal.frager@amd.com>
Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@amd.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 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

Comments

Thomas Petazzoni Feb. 6, 2024, 5:52 p.m. UTC | #1
On Wed, 31 Jan 2024 11:22:13 +0000
Neal Frager via buildroot <buildroot@buildroot.org> wrote:

> 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 <neal.frager@amd.com>
> Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@amd.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  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

Applied to master, thanks.

Thomas
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index cc9bc5b5cc..4b97dcfbd5 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1385,6 +1385,9 @@  F:	package/mrp/
 N:	Ian Haylock <haylocki@yahoo.co.uk>
 F:	package/python-rpi-gpio/
 
+N:	Ibai Erkiaga <ibai.erkiaga-elorza@amd.com>
+F:	toolchain/toolchain-bare-metal-buildroot/
+
 N:	Ignacy Gawędzki <ignacy.gawedzki@green-communications.fr>
 F:	package/angularjs/
 
@@ -2239,6 +2242,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 <nicola.dilieto@gmail.com>
 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 = [