From: Thomas Petazzoni via buildroot <buildroot@buildroot.org>
To: Neal Frager via buildroot <buildroot@buildroot.org>
Cc: Neal Frager <neal.frager@amd.com>,
ibai.erkiaga-elorza@amd.com, luca.ceresoli@bootlin.com,
brandon.maier@collins.com, ju.o@free.fr, romain.naour@smile.fr,
michal.simek@amd.com
Subject: Re: [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add multiple tuple support
Date: Fri, 14 Feb 2025 22:58:31 +0100 [thread overview]
Message-ID: <20250214225831.23731a2d@windsurf> (raw)
In-Reply-To: <20250214165402.1128194-1-neal.frager@amd.com>
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
next prev parent reply other threads:[~2025-02-14 21:58 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
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 ` Thomas Petazzoni via buildroot [this message]
2025-02-15 11:02 ` [Buildroot] [PATCH v2 1/4] package/binutils-bare-metal: add " 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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250214225831.23731a2d@windsurf \
--to=buildroot@buildroot.org \
--cc=brandon.maier@collins.com \
--cc=ibai.erkiaga-elorza@amd.com \
--cc=ju.o@free.fr \
--cc=luca.ceresoli@bootlin.com \
--cc=michal.simek@amd.com \
--cc=neal.frager@amd.com \
--cc=romain.naour@smile.fr \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.