浏览代码

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 年之前
父节点
当前提交
7befbaaea7

+ 4 - 0
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/
 
@@ -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 <nicola.dilieto@gmail.com>
 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_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

+ 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-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 = [