From: Luca Ceresoli via buildroot <buildroot@buildroot.org>
To: "Frager, Neal" <neal.frager@amd.com>
Cc: "Erkiaga Elorza, Ibai" <ibai.erkiaga-elorza@amd.com>,
"arnout@mind.be" <arnout@mind.be>,
"brandon.maier@collins.com" <brandon.maier@collins.com>,
"ju.o@free.fr" <ju.o@free.fr>,
"thomas.petazzoni@bootlin.com" <thomas.petazzoni@bootlin.com>,
"buildroot@buildroot.org" <buildroot@buildroot.org>,
"romain.naour@smile.fr" <romain.naour@smile.fr>,
"Simek, Michal" <michal.simek@amd.com>
Subject: Re: [Buildroot] [PATCH v5 1/3] boot/xilinx-embeddedsw: rename toolchain vendor to buildroot
Date: Mon, 19 May 2025 22:29:07 +0200 [thread overview]
Message-ID: <20250519222907.08071cee@booty> (raw)
In-Reply-To: <SA1PR12MB56153F6805BA3F497D3400CEF09CA@SA1PR12MB5615.namprd12.prod.outlook.com>
On Mon, 19 May 2025 16:02:33 +0000
"Frager, Neal" <neal.frager@amd.com> wrote:
> [AMD Official Use Only - AMD Internal Distribution Only]
>
> >
> > > This patch renames the bare-metal toolchain vendor used by the
> > > xilinx-embeddedsw package from Xilinx to Buildroot to be consistent with all
> > > other toolchains built by Buildroot.
> > >
> > > To build the Microblaze applications available with the xilinx-embeddedsw
> > > package, the following config is now needed:
> > >
> > > BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH="microblazeel-buildroot-elf"
> > >
> > > This change keeps backwards compatibility for users already using the
> > > following architecture tuple:
> > >
> > > BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH="microblazeel-xilinx-elf"
> > >
> > > Either vendor name is now valid, but the documentation will describe using
> > > the Buildroot vendor name.
> > >
> > > Signed-off-by: Neal Frager <neal.frager@amd.com>
> > > ---
> > > V1->V2:
> > > - xilinx-embeddedsw is now backwards compatible with either vendor name
> > > V2->V3:
> > > - split patch into series
> > > V3->V4:
> > > - rebase patch
> > > V4->V5:
> > > - add deprecation warning for microblazeel-xilinx-elf tuple
> > > ---
> > > boot/xilinx-embeddedsw/Config.in | 3 ++-
> > > boot/xilinx-embeddedsw/xilinx-embeddedsw.mk | 30 ++++++++++++++-------
> > > 2 files changed, 23 insertions(+), 10 deletions(-)
> > >
> > > diff --git a/boot/xilinx-embeddedsw/Config.in b/boot/xilinx-embeddedsw/Config.in
> > > index a27253d594..31b12baaf2 100644
> > > --- a/boot/xilinx-embeddedsw/Config.in
> > > +++ b/boot/xilinx-embeddedsw/Config.in
> > > @@ -1,4 +1,5 @@
> > > -comment "xilinx-embeddedsw needs a bare metal toolchain for tuple microblazeel-xilinx-elf"
> > > +comment "xilinx-embeddedsw needs a bare metal toolchain for tuple microblazeel-buildroot-elf"
> > > + depends on BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH != "microblazeel-buildroot-elf"
> > > depends on BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH != "microblazeel-xilinx-elf"
> > >
> > > menuconfig BR2_TARGET_XILINX_EMBEDDEDSW
> > > diff --git a/boot/xilinx-embeddedsw/xilinx-embeddedsw.mk b/boot/xilinx-embeddedsw/xilinx-embeddedsw.mk
> > > index 7d4fcf8b8f..6e37dc48bd 100644
> > > --- a/boot/xilinx-embeddedsw/xilinx-embeddedsw.mk
> > > +++ b/boot/xilinx-embeddedsw/xilinx-embeddedsw.mk
> > > @@ -12,6 +12,18 @@ XILINX_EMBEDDEDSW_INSTALL_TARGET = NO
> > > XILINX_EMBEDDEDSW_INSTALL_IMAGES = YES
> > > XILINX_EMBEDDEDSW_DEPENDENCIES = toolchain-bare-metal-buildroot
> > >
> > > +ifneq ("$(wildcard $(HOST_DIR)/bin/microblazeel-xilinx-elf-gcc)","")
> > > +$(warning BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH="microblazeel-xilinx-elf" \
> > > + will soon be deprecated!)
> > > +$(warning Please migrate to new bare-metal toolchain config below)
> >
> > > A warning is not very visible, so it won't be very effective. You
> > > should really use the same logic that Config.in.legacy uses: error out,
> > > and clearly state how to migrate, practically. E.g. (untested):
> >
> > > $(error microblazeel-xilinx-elf in BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH is not supported anymore!)
> > > $(error Replace microblazeel-xilinx-elf with microblazeel-buildroot-elf in BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH)
> >
> > If I do this, then it means that users must switch immediately to the new
> > microblazeel-buildroot-elf tuple definition. My thought about the warning was
> > that either tuple would be valid for awhile before deprecating the old one.
>
> > I understand your idea, and I'm sorry I didn't realize from the
> > beginning and changed my mind only after testing accurately the series.
>
> > However I think a warning will be unnoticed my many users, and others
> > might just be lazy and ignore it for as long as they can. So basically
> > they would never update their defconfigs until forced to do so.
>
> > It may look a rough attitude, but it's pragmatic, and it is what
> > happens with Config.in.legacy IIUC: an old symbol is not accepted
> > starting at a given Buildroot release, but an easy upgrade path is
> > provided for at least one year after that release. So users upgrading
> > regularly enough will:
>
> > 1) upgrade to newer Buildroot release
> > 2) have a build failure with instructions on how to update
> > 3) update their defconfig
> > 4) build successfully
> > 5) be happy
>
> > Note the "with instructions on how to update" at step 2. This is a
> > prerequisite to step 5. :-)
>
> Hi Luca,
>
> I agree with your strategy of #2 leading to #5, so I will go ahead with
> deprecating the xilinx vendor name with this patch set.
>
> However, to add the new buildroot vendor name, I have a chicken and
> egg issue. If I deprecate the xilinx vendor name while adding the buildroot
> vendor name, it will cause all the zynqmp defconfigs to have build failures.
>
> Would you be ok of my patch set doing the following?
>
> Patch 1: Add buildroot vendor name with warning messages.
> Patch 2: Update toolchain-bare-metal help details.
> Patch 3: Migrate zynqmp defconfigs to new buildroot vendor.
> Patch 4: Change warning messages to error messages.
That would work. But if it makes your life simpler, I guess for this
specific case it would make sense to have a single commit doing
everything. I.e. squash all the 4 patches into a single patch.
Luca
--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2025-05-19 20:29 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-09 6:47 [Buildroot] [PATCH v5 1/3] boot/xilinx-embeddedsw: rename toolchain vendor to buildroot Neal Frager via buildroot
2025-04-09 6:47 ` [Buildroot] [PATCH v5 2/3] toolchain/toolchain-bare-metal-buildroot: rename example " Neal Frager via buildroot
2025-04-09 6:47 ` [Buildroot] [PATCH v5 3/3] configs/versal|zynqmp: migrate to microblazeel-buildroot-elf tuple Neal Frager via buildroot
2025-05-13 10:34 ` [Buildroot] [PATCH v5 1/3] boot/xilinx-embeddedsw: rename toolchain vendor to buildroot Frager, Neal via buildroot
2025-05-16 8:42 ` Luca Ceresoli via buildroot
2025-05-16 9:34 ` Frager, Neal via buildroot
2025-05-19 15:34 ` Luca Ceresoli via buildroot
2025-05-19 16:02 ` Frager, Neal via buildroot
2025-05-19 20:29 ` Luca Ceresoli via buildroot [this message]
2025-05-17 9:45 ` 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=20250519222907.08071cee@booty \
--to=buildroot@buildroot.org \
--cc=arnout@mind.be \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox