Browse Source

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 <neal.frager@amd.com>
Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@amd.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Neal Frager 1 year ago
parent
commit
7befbaaea7

+ 4 - 0
DEVELOPERS

@@ -1385,6 +1385,9 @@ F:	package/mrp/
 N:	Ian Haylock <haylocki@yahoo.co.uk>
 N:	Ian Haylock <haylocki@yahoo.co.uk>
 F:	package/python-rpi-gpio/
 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>
 N:	Ignacy Gawędzki <ignacy.gawedzki@green-communications.fr>
 F:	package/angularjs/
 F:	package/angularjs/
 
 
@@ -2268,6 +2271,7 @@ F:	configs/zynqmp_zcu104_defconfig
 F:	configs/zynqmp_zcu106_defconfig
 F:	configs/zynqmp_zcu106_defconfig
 F:	package/bootgen/
 F:	package/bootgen/
 F:	package/versal-firmware/
 F:	package/versal-firmware/
+F:	toolchain/toolchain-bare-metal-buildroot/
 
 
 N:	Nicola Di Lieto <nicola.dilieto@gmail.com>
 N:	Nicola Di Lieto <nicola.dilieto@gmail.com>
 F:	package/uacme/
 F:	package/uacme/

+ 10 - 0
toolchain/Config.in

@@ -923,4 +923,14 @@ config BR2_TOOLCHAIN_HAS_LIBQUADMATH
 	default y if BR2_i386 || BR2_x86_64
 	default y if BR2_i386 || BR2_x86_64
 	default y if BR2_POWERPC_CPU_HAS_VSX
 	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
 endmenu

+ 9 - 0
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

+ 12 - 0
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))

+ 3 - 0
utils/checksymbolslib/br.py

@@ -36,11 +36,14 @@ symbols_defined_only_for_barebox_variant = [
 ]
 ]
 # toolchain/toolchain/toolchain.mk
 # toolchain/toolchain/toolchain.mk
 # toolchain/toolchain-buildroot/toolchain-buildroot.mk
 # toolchain/toolchain-buildroot/toolchain-buildroot.mk
+# toolchain/toolchain-bare-metal-buildroot/toolchain-bare-metal-buildroot.mk
 symbols_not_defined_for_fake_virtual_packages = [
 symbols_not_defined_for_fake_virtual_packages = [
     'BR2_PACKAGE_HAS_TOOLCHAIN',
     'BR2_PACKAGE_HAS_TOOLCHAIN',
     'BR2_PACKAGE_HAS_TOOLCHAIN_BUILDROOT',
     'BR2_PACKAGE_HAS_TOOLCHAIN_BUILDROOT',
+    'BR2_PACKAGE_HAS_TOOLCHAIN_BARE_METAL_BUILDROOT',
     'BR2_PACKAGE_PROVIDES_TOOLCHAIN',
     'BR2_PACKAGE_PROVIDES_TOOLCHAIN',
     'BR2_PACKAGE_PROVIDES_TOOLCHAIN_BUILDROOT',
     'BR2_PACKAGE_PROVIDES_TOOLCHAIN_BUILDROOT',
+    'BR2_PACKAGE_PROVIDES_TOOLCHAIN_BARE_METAL_BUILDROOT',
 ]
 ]
 # fs/common.mk
 # fs/common.mk
 suffixes_not_defined_for_all_rootfs_types = [
 suffixes_not_defined_for_all_rootfs_types = [