[prev in list] [next in list] [prev in thread] [next in thread]
List: buildroot
Subject: [Buildroot] [PATCH v2 3/6] package/newlib-bare-metal: new package
From: Neal Frager via buildroot <buildroot () buildroot ! org>
Date: 2023-08-31 14:51:37
Message-ID: 20230831145140.2537382-3-neal.frager () amd ! com
[Download RAW message or body]
This patch adds a new package for building newlib for a bare-metal toolchain.
The cpu architecture is defined by a toolchain-bare-metal virtual package.
While any cpu architecture could be used, the default configuration will be a
Xilinx microblaze little endian architecture, so that buildroot will be able
to build the microblaze firmware applications for zynqmp and versal.
Signed-off-by: Ibai Erkiaga-Elorza <ibai.erkiaga-elorza@amd.com>
Signed-off-by: Neal Frager <neal.frager@amd.com>
---
V1->V2:
- removed default enable to be replaced with toolchain select config
---
DEVELOPERS | 2 ++
package/newlib-bare-metal/Config.in.host | 18 ++++++++++++
.../newlib-bare-metal/newlib-bare-metal.hash | 8 +++++
.../newlib-bare-metal/newlib-bare-metal.mk | 29 +++++++++++++++++++
4 files changed, 57 insertions(+)
create mode 100644 package/newlib-bare-metal/Config.in.host
create mode 100644 package/newlib-bare-metal/newlib-bare-metal.hash
create mode 100644 package/newlib-bare-metal/newlib-bare-metal.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index a0b2ccfe4b..49980fe443 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1329,6 +1329,7 @@ F: package/python-rpi-gpio/
N: Ibai Erkiaga-Elorza <ibai.erkiaga-elorza@amd.com>
F: package/binutils-bare-metal/
F: package/gcc-bare-metal/
+F: package/newlib-bare-metal/
N: Ignacy Gawędzki <ignacy.gawedzki@green-communications.fr>
F: package/angularjs/
@@ -2197,6 +2198,7 @@ F: configs/zynqmp_zcu106_defconfig
F: package/binutils-bare-metal/
F: package/bootgen/
F: package/gcc-bare-metal/
+F: package/newlib-bare-metal/
F: package/versal-firmware/
N: Nicola Di Lieto <nicola.dilieto@gmail.com>
diff --git a/package/newlib-bare-metal/Config.in.host \
b/package/newlib-bare-metal/Config.in.host new file mode 100644
index 0000000000..3bbf62e3fc
--- /dev/null
+++ b/package/newlib-bare-metal/Config.in.host
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_HOST_NEWLIB_BARE_METAL
+ bool "host newlib-bare-metal"
+ help
+ newlib-bare-metal is a host utility for a bare-metal toolchain
+
+if BR2_PACKAGE_HOST_NEWLIB_BARE_METAL
+
+config BR2_PACKAGE_HOST_NEWLIB_BARE_METAL_VERSION
+ string
+ default "4.1.0"
+
+config BR2_PACKAGE_HOST_NEWLIB_BARE_METAL_EXTRA_CONFIG_OPTIONS
+ string "Additional newlib options"
+ default ""
+ help
+ Any additional newlib options you may want to include.
+
+endif #BR2_PACKAGE_HOST_NEWLIB_BARE_METAL
diff --git a/package/newlib-bare-metal/newlib-bare-metal.hash \
b/package/newlib-bare-metal/newlib-bare-metal.hash new file mode 100644
index 0000000000..b1966c3055
--- /dev/null
+++ b/package/newlib-bare-metal/newlib-bare-metal.hash
@@ -0,0 +1,8 @@
+# Locally calculated (fetched from Github)
+sha256 f296e372f51324224d387cc116dc37a6bd397198756746f93a2b02e9a5d40154 \
newlib-4.1.0.tar.gz +
+# Hashes for license files
+sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING
+sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 \
COPYING.LIB +sha256 f3b7f3e4426b1fa6f60198dae7adfedd94b77b28db2d108adc0253575011e0ff \
COPYING.LIBGLOSS +sha256 \
422aa40293093fb54fc66e692a0d68fd0b24ed5602e5d1d33ad05ba3909057e9 \
COPYING.NEWLIB
diff --git a/package/newlib-bare-metal/newlib-bare-metal.mk \
b/package/newlib-bare-metal/newlib-bare-metal.mk new file mode 100644
index 0000000000..a0a22bd6d9
--- /dev/null
+++ b/package/newlib-bare-metal/newlib-bare-metal.mk
@@ -0,0 +1,29 @@
+################################################################################
+#
+# newlib-bare-metal
+#
+################################################################################
+
+HOST_NEWLIB_BARE_METAL_VERSION = $(call \
qstrip,$(BR2_PACKAGE_HOST_NEWLIB_BARE_METAL_VERSION)) +ifeq \
($(HOST_NEWLIB_BARE_METAL_VERSION),) +HOST_NEWLIB_BARE_METAL_VERSION = 4.1.0
+endif
+
+HOST_NEWLIB_BARE_METAL_SITE ?= ftp://sourceware.org/pub/newlib
+HOST_NEWLIB_BARE_METAL_SOURCE ?= newlib-$(HOST_NEWLIB_BARE_METAL_VERSION).tar.gz
+HOST_NEWLIB_BARE_METAL_EXTRA_CONFIG_OPTIONS = $(call \
qstrip,$(BR2_PACKAGE_HOST_NEWLIB_BARE_METAL_EXTRA_CONFIG_OPTIONS)) \
+HOST_NEWLIB_BARE_METAL_DEPENDENCIES = host-gcc-bare-metal +
+HOST_NEWLIB_BARE_METAL_CONF_OPTS = \
+ --target=$(BR2_PACKAGE_HOST_TOOLCHAIN_BARE_METAL_ARCH)-elf \
+ CC_FOR_TARGET=$(HOST_DIR)/bin/$(BR2_PACKAGE_HOST_TOOLCHAIN_BARE_METAL_ARCH)-elf-gcc \
\ + AR_FOR_TARGET=$(HOST_DIR)/bin/$(BR2_PACKAGE_HOST_TOOLCHAIN_BARE_METAL_ARCH)-elf-ar \
\ + RANLIB_FOR_TARGET=$(HOST_DIR)/bin/$(BR2_PACKAGE_HOST_TOOLCHAIN_BARE_METAL_ARCH)-elf-ranlib \
\ + --enable-newlib-io-c99-formats \
+ --enable-newlib-io-long-long \
+ --enable-newlib-io-float \
+ --enable-newlib-io-long-double \
+ --disable-multilib \
+ $(NEWLIB_BARE_METAL_EXTRA_CONFIG_OPTIONS)
+
+$(eval $(host-autotools-package))
--
2.25.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic