[Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add multiple tuple support
Neal Frager
neal.frager at amd.com
Fri Feb 14 16:53:59 UTC 2025
Add support to binutils-bare-metal to support multiple architecture tuples
with the BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH string.
Signed-off-by: Neal Frager <neal.frager at amd.com>
---
V1->V2:
- no changes
---
.../binutils-bare-metal.mk | 61 ++++++++++++++++---
1 file changed, 52 insertions(+), 9 deletions(-)
diff --git a/package/binutils-bare-metal/binutils-bare-metal.mk b/package/binutils-bare-metal/binutils-bare-metal.mk
index 3525e9fdf2..0a90560471 100644
--- a/package/binutils-bare-metal/binutils-bare-metal.mk
+++ b/package/binutils-bare-metal/binutils-bare-metal.mk
@@ -21,14 +21,57 @@ HOST_BINUTILS_BARE_METAL_CONF_ENV += MAKEINFO=true
HOST_BINUTILS_BARE_METAL_MAKE_OPTS += MAKEINFO=true
HOST_BINUTILS_BARE_METAL_INSTALL_OPTS += MAKEINFO=true install
-HOST_BINUTILS_BARE_METAL_CONF_OPTS = \
- --target=$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE) \
- --disable-gprof \
- --disable-shared \
- --enable-lto \
- --enable-static \
- --disable-initfini-array \
- --disable-multilib \
- --disable-werror
+# to build for multiple arch tuples, it is necesssary to build out of the
+# source tree, so that each arch tuple can have its own build location
+define HOST_BINUTILS_BARE_METAL_CONFIGURE_SYMLINKS
+ $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
+ mkdir -p $(@D)/build-$(arch_tuple) && \
+ ln -sf ../configure $(@D)/build-$(arch_tuple)/configure;)
+endef
+
+HOST_BINUTILS_BARE_METAL_PRE_CONFIGURE_HOOKS += HOST_BINUTILS_BARE_METAL_CONFIGURE_SYMLINKS
+
+define HOST_BINUTILS_BARE_METAL_CONFIGURE_CMDS
+ $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
+ cd $(@D)/build-$(arch_tuple) && \
+ $(HOST_CONFIGURE_OPTS) \
+ $(HOST_BINUTILS_BARE_METAL_CONF_ENV) \
+ ./configure \
+ --prefix=$(HOST_DIR) \
+ --sysconfdir=$(HOST_DIR)/etc \
+ --localstatedir=$(HOST_DIR)/var \
+ --enable-shared --disable-static \
+ --disable-gtk-doc \
+ --disable-gtk-doc-html \
+ --disable-doc \
+ --disable-docs \
+ --disable-documentation \
+ --disable-debug \
+ --with-xmlto=no \
+ --with-fop=no \
+ --disable-nls \
+ --disable-dependency-tracking \
+ --target=$(arch_tuple) \
+ --disable-gprof \
+ --enable-lto \
+ --disable-initfini-array \
+ --disable-multilib \
+ --disable-werror; \
+ )
+endef
+
+define HOST_BINUTILS_BARE_METAL_BUILD_CMDS
+ $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
+ $(HOST_MAKE_ENV) $(MAKE) \
+ $(HOST_BINUTILS_BARE_METAL_MAKE_OPTS) \
+ -C $(@D)/build-$(arch_tuple);)
+endef
+
+define HOST_BINUTILS_BARE_METAL_INSTALL_CMDS
+ $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
+ $(HOST_MAKE_ENV) $(MAKE) \
+ $(HOST_BINUTILS_BARE_METAL_INSTALL_OPTS) \
+ -C $(@D)/build-$(arch_tuple);)
+endef
$(eval $(host-autotools-package))
--
2.25.1
More information about the buildroot
mailing list