Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add multiple tuple support
@ 2025-02-14 16:53 Neal Frager via buildroot
  2025-02-14 16:54 ` [Buildroot] [PATCH v2 2/4] package/gcc-bare-metal: " Neal Frager via buildroot
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Neal Frager via buildroot @ 2025-02-14 16:53 UTC (permalink / raw)
  To: buildroot
  Cc: ibai.erkiaga-elorza, luca.ceresoli, brandon.maier, ju.o,
	thomas.petazzoni, Neal Frager, romain.naour, michal.simek

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@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

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH v2 2/4] package/gcc-bare-metal: add multiple tuple support
  2025-02-14 16:53 [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add multiple tuple support Neal Frager via buildroot
@ 2025-02-14 16:54 ` Neal Frager via buildroot
  2025-02-14 21:59   ` Thomas Petazzoni via buildroot
  2025-02-14 16:54 ` [Buildroot] [PATCH v2 3/4] package/newlib-bare-metal: " Neal Frager via buildroot
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 14+ messages in thread
From: Neal Frager via buildroot @ 2025-02-14 16:54 UTC (permalink / raw)
  To: buildroot
  Cc: ibai.erkiaga-elorza, luca.ceresoli, brandon.maier, ju.o,
	thomas.petazzoni, Neal Frager, romain.naour, michal.simek

Add support to gcc-bare-metal to support multiple architecture tuples
with the BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH string.

Signed-off-by: Neal Frager <neal.frager@amd.com>
---
V1->V2:
- corrected sysroot configuration
---
 package/gcc-bare-metal/gcc-bare-metal.mk | 90 ++++++++++++++++--------
 1 file changed, 62 insertions(+), 28 deletions(-)

diff --git a/package/gcc-bare-metal/gcc-bare-metal.mk b/package/gcc-bare-metal/gcc-bare-metal.mk
index adaae6c307..66cebcf730 100644
--- a/package/gcc-bare-metal/gcc-bare-metal.mk
+++ b/package/gcc-bare-metal/gcc-bare-metal.mk
@@ -20,15 +20,15 @@ HOST_GCC_BARE_METAL_DEPENDENCIES = \
 	host-mpfr \
 	host-isl
 
-# gcc doesn't support in-tree build, so we create a 'build'
-# subdirectory in the gcc sources, and build from there.
-define HOST_GCC_BARE_METAL_CONFIGURE_SYMLINK
-	mkdir -p $(@D)/build
-	ln -sf ../configure $(@D)/build/configure
+# 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_GCC_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_GCC_BARE_METAL_PRE_CONFIGURE_HOOKS += HOST_GCC_BARE_METAL_CONFIGURE_SYMLINK
-HOST_GCC_BARE_METAL_SUBDIR = build
+HOST_GCC_BARE_METAL_PRE_CONFIGURE_HOOKS += HOST_GCC_BARE_METAL_CONFIGURE_SYMLINKS
 
 HOST_GCC_BARE_METAL_MAKE_OPTS = \
 	$(HOST_GCC_COMMON_MAKE_OPTS) \
@@ -37,26 +37,60 @@ HOST_GCC_BARE_METAL_MAKE_OPTS = \
 
 HOST_GCC_BARE_METAL_INSTALL_OPTS = install-gcc install-target-libgcc
 
-HOST_GCC_BARE_METAL_CONF_OPTS = \
-	--target=$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE) \
-	--disable-initfini_array \
-	--disable-__cxa_atexit \
-	--disable-libstdcxx-pch \
-	--with-newlib \
-	--disable-threads \
-	--enable-plugins \
-	--with-gnu-as \
-	--disable-libitm \
-	--without-long-double-128 \
-	--without-headers \
-	--enable-languages=c \
-	--disable-multilib \
-	--with-gmp=$(HOST_DIR) \
-	--with-mpc=$(HOST_DIR) \
-	--with-mpfr=$(HOST_DIR) \
-	--with-isl=$(HOST_DIR) \
-	--with-sysroot=$(TOOLCHAIN_BARE_METAL_BUILDROOT_SYSROOT) \
-	AR_FOR_TARGET=$(HOST_DIR)/bin/$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE)-ar \
-	RANLIB_FOR_TARGET=$(HOST_DIR)/bin/$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE)-ranlib
+define HOST_GCC_BARE_METAL_CONFIGURE_CMDS
+	$(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
+		cd $(@D)/build-$(arch_tuple) && \
+		$(HOST_CONFIGURE_OPTS) \
+		./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-initfini_array \
+			--disable-__cxa_atexit \
+			--disable-libstdcxx-pch \
+			--with-newlib \
+			--disable-threads \
+			--enable-plugins \
+			--with-gnu-as \
+			--disable-libitm \
+			--without-long-double-128 \
+			--without-headers \
+			--enable-languages=c \
+			--disable-multilib \
+			--with-gmp=$(HOST_DIR) \
+			--with-mpc=$(HOST_DIR) \
+			--with-mpfr=$(HOST_DIR) \
+			--with-isl=$(HOST_DIR) \
+			--with-sysroot=$(HOST_DIR)/$(arch_tuple)/sysroot \
+			AR_FOR_TARGET=$(HOST_DIR)/bin/$(arch_tuple)-ar \
+			RANLIB_FOR_TARGET=$(HOST_DIR)/bin/$(arch_tuple)-ranlib; \
+	)
+endef
+
+define HOST_GCC_BARE_METAL_BUILD_CMDS
+	$(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
+		$(HOST_MAKE_ENV) $(MAKE) \
+			$(HOST_GCC_BARE_METAL_MAKE_OPTS) \
+			-C $(@D)/build-$(arch_tuple);)
+endef
+
+define HOST_GCC_BARE_METAL_INSTALL_CMDS
+	$(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
+		$(HOST_MAKE_ENV) $(MAKE) \
+			$(HOST_GCC_BARE_METAL_INSTALL_OPTS) \
+			-C $(@D)/build-$(arch_tuple);)
+endef
 
 $(eval $(host-autotools-package))
-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH v2 3/4] package/newlib-bare-metal: add multiple tuple support
  2025-02-14 16:53 [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add multiple tuple support Neal Frager via buildroot
  2025-02-14 16:54 ` [Buildroot] [PATCH v2 2/4] package/gcc-bare-metal: " Neal Frager via buildroot
@ 2025-02-14 16:54 ` Neal Frager via buildroot
  2025-02-14 22:00   ` Thomas Petazzoni
  2025-02-14 16:54 ` [Buildroot] [PATCH v2 4/4] toolchain/toolchain-bare-metal-buildroot: update help text for " Neal Frager via buildroot
  2025-02-14 21:58 ` [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add " Thomas Petazzoni via buildroot
  3 siblings, 1 reply; 14+ messages in thread
From: Neal Frager via buildroot @ 2025-02-14 16:54 UTC (permalink / raw)
  To: buildroot
  Cc: ibai.erkiaga-elorza, luca.ceresoli, brandon.maier, ju.o,
	thomas.petazzoni, Neal Frager, romain.naour, michal.simek

Add support to newlib-bare-metal to support multiple architecture tuples
with the BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH string.

Signed-off-by: Neal Frager <neal.frager@amd.com>
---
V1->V2:
- no changes
---
 .../newlib-bare-metal/newlib-bare-metal.mk    | 29 +++++++++++++++----
 1 file changed, 23 insertions(+), 6 deletions(-)

diff --git a/package/newlib-bare-metal/newlib-bare-metal.mk b/package/newlib-bare-metal/newlib-bare-metal.mk
index e28e7a717c..4acc11deb2 100644
--- a/package/newlib-bare-metal/newlib-bare-metal.mk
+++ b/package/newlib-bare-metal/newlib-bare-metal.mk
@@ -22,28 +22,45 @@ NEWLIB_BARE_METAL_INSTALL_STAGING = YES
 NEWLIB_BARE_METAL_INSTALL_TARGET = NO
 NEWLIB_BARE_METAL_MAKE_OPTS = MAKEINFO=true
 
+# 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 NEWLIB_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
+
+NEWLIB_BARE_METAL_PRE_CONFIGURE_HOOKS += NEWLIB_BARE_METAL_CONFIGURE_SYMLINKS
+
 define NEWLIB_BARE_METAL_CONFIGURE_CMDS
-	(cd $(@D) && \
+	$(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
+	cd $(@D)/build-$(arch_tuple) && \
 		PATH=$(BR_PATH) \
 		./configure \
-			--target=$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE) \
+			--target=$(arch_tuple) \
 			--prefix=/usr \
 			--enable-newlib-io-c99-formats \
 			--enable-newlib-io-long-long \
 			--enable-newlib-io-float \
 			--enable-newlib-io-long-double \
 			--disable-multilib \
-			--with-tooldir=/usr \
+			--with-tooldir=/usr; \
 	)
 endef
 
 define NEWLIB_BARE_METAL_BUILD_CMDS
-	PATH=$(BR_PATH) $(MAKE1) $(NEWLIB_BARE_METAL_MAKE_OPTS) -C $(@D)
+	$(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
+		PATH=$(BR_PATH) $(MAKE1) \
+			$(NEWLIB_BARE_METAL_MAKE_OPTS) \
+			-C $(@D)/build-$(arch_tuple);)
 endef
 
 define NEWLIB_BARE_METAL_INSTALL_STAGING_CMDS
-	PATH=$(BR_PATH) $(MAKE1) -C $(@D) $(NEWLIB_BARE_METAL_MAKE_OPTS) \
-		DESTDIR=$(TOOLCHAIN_BARE_METAL_BUILDROOT_SYSROOT) install
+	$(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
+		PATH=$(BR_PATH) $(MAKE1) \
+			$(NEWLIB_BARE_METAL_MAKE_OPTS) \
+			-C $(@D)/build-$(arch_tuple) \
+			DESTDIR=$(HOST_DIR)/$(arch_tuple)/sysroot install;)
 endef
 
 $(eval $(generic-package))
-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH v2 4/4] toolchain/toolchain-bare-metal-buildroot: update help text for multiple tuple support
  2025-02-14 16:53 [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add multiple tuple support Neal Frager via buildroot
  2025-02-14 16:54 ` [Buildroot] [PATCH v2 2/4] package/gcc-bare-metal: " Neal Frager via buildroot
  2025-02-14 16:54 ` [Buildroot] [PATCH v2 3/4] package/newlib-bare-metal: " Neal Frager via buildroot
@ 2025-02-14 16:54 ` Neal Frager via buildroot
  2025-02-14 22:03   ` Thomas Petazzoni
  2025-02-14 21:58 ` [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add " Thomas Petazzoni via buildroot
  3 siblings, 1 reply; 14+ messages in thread
From: Neal Frager via buildroot @ 2025-02-14 16:54 UTC (permalink / raw)
  To: buildroot
  Cc: ibai.erkiaga-elorza, luca.ceresoli, brandon.maier, ju.o,
	thomas.petazzoni, Neal Frager, romain.naour, michal.simek

Now that binutils-bare-metal, gcc-bare-metal and newlib-bare-metal packages
have been upgraded to support a list of architecture tuples, this patch
updates the toolchain-bare-metal-buildroot help text to describe the new
capability.

BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH is still backwards compatible with
its prior definition as defining a single tuple with this new definition
works exactly the same as before.

Signed-off-by: Neal Frager <neal.frager@amd.com>
---
V1->V2:
no changes
---
 toolchain/Config.in                                   |  2 +-
 toolchain/toolchain-bare-metal-buildroot/Config.in    | 11 ++++++++---
 .../toolchain-bare-metal-buildroot.mk                 |  1 -
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/toolchain/Config.in b/toolchain/Config.in
index d6ed25ff96..94723da141 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -941,7 +941,7 @@ config BR2_TOOLCHAIN_HAS_LIBQUADMATH
 comment "Bare metal toolchain"
 
 config BR2_TOOLCHAIN_BARE_METAL_BUILDROOT
-	bool "Build a bare metal toolchain"
+	bool "Build bare metal toolchains"
 	select BR2_PACKAGE_NEWLIB_BARE_METAL
 	help
 	  Select if you need a bare-metal toolchain for building
diff --git a/toolchain/toolchain-bare-metal-buildroot/Config.in b/toolchain/toolchain-bare-metal-buildroot/Config.in
index 6fe969357f..ca3129444f 100644
--- a/toolchain/toolchain-bare-metal-buildroot/Config.in
+++ b/toolchain/toolchain-bare-metal-buildroot/Config.in
@@ -1,10 +1,15 @@
 if BR2_TOOLCHAIN_BARE_METAL_BUILDROOT
 
 config BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH
-	string "architecture tuple"
+	string "list of architecture tuples"
 	help
-	  This option allows to define the architecture tuple for the
-	  bare-metal toolchain.
+	  This option defines a list of architecture tuples for
+	  building bare metal toolchains.
+
+	  For example, to build both a microblaze and a riscv bare
+	  metal toolchain for Xilinx platforms, use the following
+	  definition:
+	  "microblazeel-xilinx-elf riscv32-xilinx-elf"
 
 source "package/newlib-bare-metal/Config.in"
 
diff --git a/toolchain/toolchain-bare-metal-buildroot/toolchain-bare-metal-buildroot.mk b/toolchain/toolchain-bare-metal-buildroot/toolchain-bare-metal-buildroot.mk
index dbfe30a910..71063fcee4 100644
--- a/toolchain/toolchain-bare-metal-buildroot/toolchain-bare-metal-buildroot.mk
+++ b/toolchain/toolchain-bare-metal-buildroot/toolchain-bare-metal-buildroot.mk
@@ -6,7 +6,6 @@
 
 TOOLCHAIN_BARE_METAL_BUILDROOT_DEPENDENCIES = newlib-bare-metal
 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))
-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add multiple tuple support
  2025-02-14 16:53 [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add multiple tuple support Neal Frager via buildroot
                   ` (2 preceding siblings ...)
  2025-02-14 16:54 ` [Buildroot] [PATCH v2 4/4] toolchain/toolchain-bare-metal-buildroot: update help text for " Neal Frager via buildroot
@ 2025-02-14 21:58 ` Thomas Petazzoni via buildroot
  2025-02-15 11:02   ` Frager, Neal via buildroot
  3 siblings, 1 reply; 14+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-02-14 21:58 UTC (permalink / raw)
  To: Neal Frager via buildroot
  Cc: Neal Frager, ibai.erkiaga-elorza, luca.ceresoli, brandon.maier,
	ju.o, romain.naour, michal.simek

Hello Neal,

Thanks for your work on this topic. Overall, the approach you have
taken is exactly what I had in mind, so that's very good. I only have
some implementation details to comment on below.

On Fri, 14 Feb 2025 16:53:59 +0000
Neal Frager via buildroot <buildroot@buildroot.org> wrote:

> +# 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

You don't need to create a symlink. We do that in gcc because we're
using <pkg>_SUBDIR, with which the default CONFIGURE_CMDS from
autotools-package assumes the configure script will be in the
<pkg>_SUBDIR. But here, since we are anyway implementing our custom
CONFIGURE_CMDS, creating this symlink is not needed. So I would drop
this HOST_BINUTILS_BARE_METAL_CONFIGURE_SYMLINKS entirely.

See below how things would work.

> +
> +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), \

Add here:

		mkdir -p $(@D)/build-$(arch_tuple) && \

> +		cd $(@D)/build-$(arch_tuple) && \
> +		$(HOST_CONFIGURE_OPTS) \
> +		$(HOST_BINUTILS_BARE_METAL_CONF_ENV) \
> +		./configure \

Replace with:

		../configure

or:

		$(@D)/configure

whichever you prefer.

> +			--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; \

I think the final semi-colon here is not needed.

> +	)
> +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);)

Instead of this final semi-colon, put the closing parenthesis on the
next line, so that the loop looks like this:

	$(foreach bla,$(list),
		something
	)

> +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);)

Ditto here.

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Buildroot] [PATCH v2 2/4] package/gcc-bare-metal: add multiple tuple support
  2025-02-14 16:54 ` [Buildroot] [PATCH v2 2/4] package/gcc-bare-metal: " Neal Frager via buildroot
@ 2025-02-14 21:59   ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 14+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-02-14 21:59 UTC (permalink / raw)
  To: Neal Frager via buildroot
  Cc: Neal Frager, ibai.erkiaga-elorza, luca.ceresoli, brandon.maier,
	ju.o, romain.naour, michal.simek

Hello Neal,

On Fri, 14 Feb 2025 16:54:00 +0000
Neal Frager via buildroot <buildroot@buildroot.org> wrote:

> Add support to gcc-bare-metal to support multiple architecture tuples
> with the BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH string.
> 
> Signed-off-by: Neal Frager <neal.frager@amd.com>

I have the same comments as for the binutils-bare-metal patch, they are
also applicable to this gcc-bare-metal patch.

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Buildroot] [PATCH v2 3/4] package/newlib-bare-metal: add multiple tuple support
  2025-02-14 16:54 ` [Buildroot] [PATCH v2 3/4] package/newlib-bare-metal: " Neal Frager via buildroot
@ 2025-02-14 22:00   ` Thomas Petazzoni
  0 siblings, 0 replies; 14+ messages in thread
From: Thomas Petazzoni @ 2025-02-14 22:00 UTC (permalink / raw)
  To: Neal Frager via buildroot
  Cc: Neal Frager, ibai.erkiaga-elorza, luca.ceresoli, brandon.maier,
	ju.o, romain.naour, michal.simek

On Fri, 14 Feb 2025 16:54:01 +0000
Neal Frager via buildroot <buildroot@buildroot.org> wrote:

> Add support to newlib-bare-metal to support multiple architecture tuples
> with the BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH string.
> 
> Signed-off-by: Neal Frager <neal.frager@amd.com>

And same as binutils-bare-metal for this patch as well, for consistency
reasons.

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Buildroot] [PATCH v2 4/4] toolchain/toolchain-bare-metal-buildroot: update help text for multiple tuple support
  2025-02-14 16:54 ` [Buildroot] [PATCH v2 4/4] toolchain/toolchain-bare-metal-buildroot: update help text for " Neal Frager via buildroot
@ 2025-02-14 22:03   ` Thomas Petazzoni
  2025-02-15 12:35     ` Frager, Neal via buildroot
  0 siblings, 1 reply; 14+ messages in thread
From: Thomas Petazzoni @ 2025-02-14 22:03 UTC (permalink / raw)
  To: Neal Frager via buildroot
  Cc: Neal Frager, ibai.erkiaga-elorza, luca.ceresoli, brandon.maier,
	ju.o, romain.naour, michal.simek

Hello Neal,

On Fri, 14 Feb 2025 16:54:02 +0000
Neal Frager via buildroot <buildroot@buildroot.org> wrote:

> Now that binutils-bare-metal, gcc-bare-metal and newlib-bare-metal packages
> have been upgraded to support a list of architecture tuples, this patch
> updates the toolchain-bare-metal-buildroot help text to describe the new
> capability.
> 
> BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH is still backwards compatible with
> its prior definition as defining a single tuple with this new definition
> works exactly the same as before.
> 
> Signed-off-by: Neal Frager <neal.frager@amd.com>

Overall looks good. Maybe one minor wording comment.

>  config BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH
> -	string "architecture tuple"
> +	string "list of architecture tuples"
>  	help
> -	  This option allows to define the architecture tuple for the
> -	  bare-metal toolchain.
> +	  This option defines a list of architecture tuples for
> +	  building bare metal toolchains.

This option allows to define the list of architecture tuples for which
bare-metal toolchains will be created. One toolchain will be built for
each of the architecture tuples specified in this option.

> +
> +	  For example, to build both a microblaze and a riscv bare

microblaze -> Microblaze

riscv -> RISC-V

> +	  metal toolchain for Xilinx platforms, use the following

I'm not sure the "Xilinx platforms" here is very relevant.

> +	  definition:
> +	  "microblazeel-xilinx-elf riscv32-xilinx-elf"

In fact, I'm not sure the "xilinx" parts of the tuples here are very
relevant/useful. It's the vendor part of the tuple, so it has basically
no effect. It would probably be even more logical to use
microblazel-none-elf, or even microblazeel-buildroot-elf.

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add multiple tuple support
  2025-02-14 21:58 ` [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add " Thomas Petazzoni via buildroot
@ 2025-02-15 11:02   ` Frager, Neal via buildroot
  2025-02-16 12:10     ` Arnout Vandecappelle via buildroot
  0 siblings, 1 reply; 14+ messages in thread
From: Frager, Neal via buildroot @ 2025-02-15 11:02 UTC (permalink / raw)
  To: Thomas Petazzoni, Neal Frager via buildroot
  Cc: Erkiaga Elorza, Ibai, luca.ceresoli@bootlin.com,
	brandon.maier@collins.com, ju.o@free.fr, romain.naour@smile.fr,
	Simek, Michal

Hello Thomas,

> Hello Neal,

> Thanks for your work on this topic. Overall, the approach you have
> taken is exactly what I had in mind, so that's very good. I only have
> some implementation details to comment on below.

> On Fri, 14 Feb 2025 16:53:59 +0000
> Neal Frager via buildroot <buildroot@buildroot.org> wrote:

> +# 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

> You don't need to create a symlink. We do that in gcc because we're
> using <pkg>_SUBDIR, with which the default CONFIGURE_CMDS from
> autotools-package assumes the configure script will be in the
> <pkg>_SUBDIR. But here, since we are anyway implementing our custom
> CONFIGURE_CMDS, creating this symlink is not needed. So I would drop
> this HOST_BINUTILS_BARE_METAL_CONFIGURE_SYMLINKS entirely.

Lovely!

> See below how things would work.

> +
> +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), \

> Add here:

>		mkdir -p $(@D)/build-$(arch_tuple) && \

> +		cd $(@D)/build-$(arch_tuple) && \
> +		$(HOST_CONFIGURE_OPTS) \
> +		$(HOST_BINUTILS_BARE_METAL_CONF_ENV) \
> +		./configure \

> Replace with:

> 		../configure

> or:

> 		$(@D)/configure

> whichever you prefer.

I confirm this works.  Thank you!

> +			--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; \

> I think the final semi-colon here is not needed.

Without the semi-colon, I get the following configure error:

configure: WARNING: you should use --build, --host, --target
configure: error: unrecognized option: `-p'

It seems that the loop wraps around the next mkdir instruction with the
configure unless the instructions are separated with a semi-colon.

However, you are correct that the semi-colon is not needed for the
build and install steps since these are single instruction loops.

> +	)
> +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);)

> Instead of this final semi-colon, put the closing parenthesis on the
> next line, so that the loop looks like this:

>	$(foreach bla,$(list),
>		something
>	)

Done.  Thanks!

> +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);)

> Ditto here.

Done. Thanks!

> Thanks!

> Thomas
> -- 
> Thomas Petazzoni, co-owner and CEO, Bootlin
> Embedded Linux and Kernel engineering and training
> https://bootlin.com

Best regards,
Neal Frager
AMD
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Buildroot] [PATCH v2 4/4] toolchain/toolchain-bare-metal-buildroot: update help text for multiple tuple support
  2025-02-14 22:03   ` Thomas Petazzoni
@ 2025-02-15 12:35     ` Frager, Neal via buildroot
  0 siblings, 0 replies; 14+ messages in thread
From: Frager, Neal via buildroot @ 2025-02-15 12:35 UTC (permalink / raw)
  To: Thomas Petazzoni, Neal Frager via buildroot
  Cc: Erkiaga Elorza, Ibai, luca.ceresoli@bootlin.com,
	brandon.maier@collins.com, ju.o@free.fr, romain.naour@smile.fr,
	Simek, Michal

Hi Thomas,

> Now that binutils-bare-metal, gcc-bare-metal and newlib-bare-metal packages
> have been upgraded to support a list of architecture tuples, this patch
> updates the toolchain-bare-metal-buildroot help text to describe the new
> capability.
> 
> BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH is still backwards compatible with
> its prior definition as defining a single tuple with this new definition
> works exactly the same as before.
> 
> Signed-off-by: Neal Frager <neal.frager@amd.com>

> Overall looks good. Maybe one minor wording comment.

Thanks for the review.

>  config BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH
> -	string "architecture tuple"
> +	string "list of architecture tuples"
>  	help
> -	  This option allows to define the architecture tuple for the
> -	  bare-metal toolchain.
> +	  This option defines a list of architecture tuples for
> +	  building bare metal toolchains.

> This option allows to define the list of architecture tuples for which
> bare-metal toolchains will be created. One toolchain will be built for
> each of the architecture tuples specified in this option.

Ok for me.

> +
> +	  For example, to build both a microblaze and a riscv bare

> microblaze -> Microblaze

> riscv -> RISC-V

I will change this.

> +	  metal toolchain for Xilinx platforms, use the following

> I'm not sure the "Xilinx platforms" here is very relevant.

Yes, you are right.

> +	  definition:
> +	  "microblazeel-xilinx-elf riscv32-xilinx-elf"

> In fact, I'm not sure the "xilinx" parts of the tuples here are very
> relevant/useful. It's the vendor part of the tuple, so it has basically
> no effect. It would probably be even more logical to use
> microblazel-none-elf, or even microblazeel-buildroot-elf.

Since we are using Buildroot to build these toolchains, I will use Buildroot
as the vendor.  I will probably update the xilinx-embeddedsw package to use
Buildroot as the toolchain vendor as well.

> Thanks!

> Thomas
> -- 
> Thomas Petazzoni, co-owner and CEO, Bootlin
> Embedded Linux and Kernel engineering and training
> https://bootlin.com

Thanks again!

Best regards,
Neal Frager
AMD
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add multiple tuple support
  2025-02-15 11:02   ` Frager, Neal via buildroot
@ 2025-02-16 12:10     ` Arnout Vandecappelle via buildroot
  2025-02-16 12:22       ` Frager, Neal
  0 siblings, 1 reply; 14+ messages in thread
From: Arnout Vandecappelle via buildroot @ 2025-02-16 12:10 UTC (permalink / raw)
  To: Frager, Neal, Thomas Petazzoni, Neal Frager via buildroot
  Cc: Erkiaga Elorza, Ibai, luca.ceresoli@bootlin.com,
	brandon.maier@collins.com, ju.o@free.fr, romain.naour@smile.fr,
	Simek, Michal



On 15/02/2025 12:02, Frager, Neal via buildroot wrote:
> Hello Thomas,
> 
>> Hello Neal,
> 
>> Thanks for your work on this topic. Overall, the approach you have
>> taken is exactly what I had in mind, so that's very good. I only have
>> some implementation details to comment on below.
> 
>> On Fri, 14 Feb 2025 16:53:59 +0000
>> Neal Frager via buildroot <buildroot@buildroot.org> wrote:
[snip]
>> +			--disable-initfini-array \
>> +			--disable-multilib \
>> +			--disable-werror; \
> 
>> I think the final semi-colon here is not needed.
> 
> Without the semi-colon, I get the following configure error:
> 
> configure: WARNING: you should use --build, --host, --target
> configure: error: unrecognized option: `-p'
> 
> It seems that the loop wraps around the next mkdir instruction with the
> configure unless the instructions are separated with a semi-colon.
> 
> However, you are correct that the semi-colon is not needed for the
> build and install steps since these are single instruction loops.

  That shouldn't make any difference though - the newline and the leading tab 
tell make that this is a new command. It shouldn't make a difference to 'make' 
if there are one or more commands on the line.

  Also, where does that '-p' even come from? I don't see it anywhere in the 
configure commands...



  Regards,
  Arnout

[snip]

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add multiple tuple support
  2025-02-16 12:10     ` Arnout Vandecappelle via buildroot
@ 2025-02-16 12:22       ` Frager, Neal
  2025-02-16 12:39         ` Arnout Vandecappelle via buildroot
  0 siblings, 1 reply; 14+ messages in thread
From: Frager, Neal @ 2025-02-16 12:22 UTC (permalink / raw)
  To: Arnout Vandecappelle, Thomas Petazzoni, Neal Frager via buildroot
  Cc: Erkiaga Elorza, Ibai, luca.ceresoli@bootlin.com,
	brandon.maier@collins.com, ju.o@free.fr, romain.naour@smile.fr,
	Simek, Michal


[-- Attachment #1.1: Type: text/plain, Size: 1692 bytes --]

Hello Arnout,

> Hello Thomas,
>
>> Hello Neal,
>
>> Thanks for your work on this topic. Overall, the approach you have
>> taken is exactly what I had in mind, so that's very good. I only have
>> some implementation details to comment on below.
>
>> On Fri, 14 Feb 2025 16:53:59 +0000
>> Neal Frager via buildroot <buildroot@buildroot.org> wrote:
[snip]
>> +                    --disable-initfini-array \
>> +                    --disable-multilib \
>> +                    --disable-werror; \
>
>> I think the final semi-colon here is not needed.
>
> Without the semi-colon, I get the following configure error:
>
> configure: WARNING: you should use --build, --host, --target
> configure: error: unrecognized option: `-p'
>
> It seems that the loop wraps around the next mkdir instruction with the
> configure unless the instructions are separated with a semi-colon.
>
> However, you are correct that the semi-colon is not needed for the
> build and install steps since these are single instruction loops.

>  That shouldn't make any difference though - the newline and the leading tab
> tell make that this is a new command. It shouldn't make a difference to 'make'
> if there are one or more commands on the line.

> Also, where does that '-p' even come from? I don't see it anywhere in the
> configure commands...

I agree it should not be needed.

But if you look at v3 of this series and remove
the semi-colon from the end of the configure
command, you will see this error with the -p
seeming to come from the mkdir command
which is the first command to run in the next
iteration of the loop.

Best regards,
Neal Frager
AMD

[snip]


[-- Attachment #1.2: Type: text/html, Size: 3618 bytes --]

[-- Attachment #2: Type: text/plain, Size: 150 bytes --]

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add multiple tuple support
  2025-02-16 12:22       ` Frager, Neal
@ 2025-02-16 12:39         ` Arnout Vandecappelle via buildroot
  2025-02-16 14:47           ` Frager, Neal via buildroot
  0 siblings, 1 reply; 14+ messages in thread
From: Arnout Vandecappelle via buildroot @ 2025-02-16 12:39 UTC (permalink / raw)
  To: Frager, Neal, Thomas Petazzoni, Neal Frager via buildroot
  Cc: Erkiaga Elorza, Ibai, luca.ceresoli@bootlin.com,
	brandon.maier@collins.com, ju.o@free.fr, romain.naour@smile.fr,
	Simek, Michal



On 16/02/2025 13:22, Frager, Neal wrote:
> Hello Arnout,
> 
>> Hello Thomas,
>> 
>>> Hello Neal,
>> 
>>> Thanks for your work on this topic. Overall, the approach you have
>>> taken is exactly what I had in mind, so that's very good. I only have
>>> some implementation details to comment on below.
>> 
>>> On Fri, 14 Feb 2025 16:53:59 +0000
>>> Neal Frager via buildroot <buildroot@buildroot.org> wrote:
> [snip]
>>> +                    --disable-initfini-array \
>>> +                    --disable-multilib \
>>> +                    --disable-werror; \
>> 
>>> I think the final semi-colon here is not needed.
>> 
>> Without the semi-colon, I get the following configure error:
>> 
>> configure: WARNING: you should use --build, --host, --target
>> configure: error: unrecognized option: `-p'
>> 
>> It seems that the loop wraps around the next mkdir instruction with the
>> configure unless the instructions are separated with a semi-colon.
>> 
>> However, you are correct that the semi-colon is not needed for the
>> build and install steps since these are single instruction loops.
> 
>>  That shouldn't make any difference though - the newline and the leading tab 
>> tell make that this is a new command. It shouldn't make a difference to 'make'
>> if there are one or more commands on the line.
> 
>> Also, where does that '-p' even come from? I don't see it anywhere in the
>> configure commands...
> 
> I agree it should not be needed.
> 
> But if you look at v3 of this series and remove
> the semi-colon from the end of the configure
> command, you will see this error with the -p
> seeming to come from the mkdir command
> which is the first command to run in the next
> iteration of the loop.

  The trailing \ puts the two commands on the same line. For the other two you 
didn't add a trailing backslash so it's different lines...

  Can be fixed while applying.

  Regards,
  Arnout

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add multiple tuple support
  2025-02-16 12:39         ` Arnout Vandecappelle via buildroot
@ 2025-02-16 14:47           ` Frager, Neal via buildroot
  0 siblings, 0 replies; 14+ messages in thread
From: Frager, Neal via buildroot @ 2025-02-16 14:47 UTC (permalink / raw)
  To: Arnout Vandecappelle, Thomas Petazzoni, Neal Frager via buildroot
  Cc: Erkiaga Elorza, Ibai, luca.ceresoli@bootlin.com,
	brandon.maier@collins.com, ju.o@free.fr, romain.naour@smile.fr,
	Simek, Michal

Hello Arnout,

> Hello Arnout,
> 
>> Hello Thomas,
>> 
>>> Hello Neal,
>> 
>>> Thanks for your work on this topic. Overall, the approach you have
>>> taken is exactly what I had in mind, so that's very good. I only have
>>> some implementation details to comment on below.
>> 
>>> On Fri, 14 Feb 2025 16:53:59 +0000
>>> Neal Frager via buildroot <buildroot@buildroot.org> wrote:
> [snip]
>>> +                    --disable-initfini-array \
>>> +                    --disable-multilib \
>>> +                    --disable-werror; \
>> 
>>> I think the final semi-colon here is not needed.
>> 
>> Without the semi-colon, I get the following configure error:
>> 
>> configure: WARNING: you should use --build, --host, --target
>> configure: error: unrecognized option: `-p'
>> 
>> It seems that the loop wraps around the next mkdir instruction with the
>> configure unless the instructions are separated with a semi-colon.
>> 
>> However, you are correct that the semi-colon is not needed for the
>> build and install steps since these are single instruction loops.
> 
>>  That shouldn't make any difference though - the newline and the leading tab 
>> tell make that this is a new command. It shouldn't make a difference to 'make'
>> if there are one or more commands on the line.
> 
>> Also, where does that '-p' even come from? I don't see it anywhere in the
>> configure commands...
> 
> I agree it should not be needed.
> 
> But if you look at v3 of this series and remove
> the semi-colon from the end of the configure
> command, you will see this error with the -p
> seeming to come from the mkdir command
> which is the first command to run in the next
> iteration of the loop.

>  The trailing \ puts the two commands on the same line. For the other two you 
> didn't add a trailing backslash so it's different lines...

>  Can be fixed while applying.

Thank you!!!  I knew it had to be something obvious.

>  Regards,
>  Arnout

Best regards,
Neal Frager
AMD
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2025-02-16 14:47 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-14 16:53 [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add multiple tuple support Neal Frager via buildroot
2025-02-14 16:54 ` [Buildroot] [PATCH v2 2/4] package/gcc-bare-metal: " Neal Frager via buildroot
2025-02-14 21:59   ` Thomas Petazzoni via buildroot
2025-02-14 16:54 ` [Buildroot] [PATCH v2 3/4] package/newlib-bare-metal: " Neal Frager via buildroot
2025-02-14 22:00   ` Thomas Petazzoni
2025-02-14 16:54 ` [Buildroot] [PATCH v2 4/4] toolchain/toolchain-bare-metal-buildroot: update help text for " Neal Frager via buildroot
2025-02-14 22:03   ` Thomas Petazzoni
2025-02-15 12:35     ` Frager, Neal via buildroot
2025-02-14 21:58 ` [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add " Thomas Petazzoni via buildroot
2025-02-15 11:02   ` Frager, Neal via buildroot
2025-02-16 12:10     ` Arnout Vandecappelle via buildroot
2025-02-16 12:22       ` Frager, Neal
2025-02-16 12:39         ` Arnout Vandecappelle via buildroot
2025-02-16 14:47           ` Frager, Neal via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox