[Buildroot] [PATCH] boot/arm-trusted-firmware: fix the RPATH of fiptool

Louis Chauvet louis.chauvet at bootlin.com
Thu Dec 7 16:39:29 UTC 2023


Hi Baruch,

Le 06/12/23 - 19:05, Baruch Siach via buildroot a écrit :
> Hi Louis,
> 
> On Wed, Dec 06 2023, Louis Chauvet via buildroot wrote:
> > The arm-trusted-firmware package builds a host tool called "fiptool",
> > which is used during the build process of arm-trusted-firmware
> > itself. This tool links against the OpenSSL host library, and
> > therefore needs to be built with the correct RPATH pointing to
> > $HOST_DIR/lib.
> >
> > This is why commit a957d9a90ade4194dffe3eb2fc0136bc5d077c28
> > ("boot/arm-trusted-firmware: build fiptool separately with dependency
> > o n host-openssl") added the ARM_TRUSTED_FIRMWARE_BUILD_FIPTOOL
> > variable, which builds the fiptool tool first, with the right
> > variables set, before invoking the full build of TF-A. This ensured
> > that fiptool was built with the correct RPATH.
> >
> > However, more recent versions of TF-A have modified their Makefile
> > machinery, and fiptool is being rebuilt even if it was built
> > before. Unfortunately, this rebuild is no longer done with the right
> > flags, so we end up with a fiptool binary that no longer has the right
> > RPATH, and fiptool fails to find the OpenSSL libraries from
> > $HOST_DIR/lib.
> >
> > In order to fix this, we take a different approach: we do not build
> > fiptool separately first, but we inject the necessary flags through
> > the HOSTCC variable. Indeed, there's no HOST_LDFLAGS or HOST_LDLIBS
> > variable or similar that would allow us to pass the -Wl,-rpath flag
> > that is needed. Shoe-horning this flag into HOSTCC gets the job done,
> > and actually simplifies our arm-trusted-firmware.mk.
> 
> The code this patch removes tries to keep compatibility with TF-A
> versions earlier than 1.3. This patch relies on HOSTCC that was only
> introduced in TF-A version 1.4 with upstream commit 72610c4102990
> ("build: Introduce HOSTCC flag"). I guess losing compatibility with
> older TF-A is fine, since all Buildroot in-tree configs appear to use
> newer versions. But I think this should at least be mentioned in the
> commit log.
> 

Thanks for your feedback. Do you think this is sufficient ?

This patch break the compatibility with version prior to 1.4 (upstream
commit 72610c4102990 ("build: Introduce HOSTCC flag")). v1.4 is very old 
(July 2017), not used anymore in-tree and probably not used anymore 
outside the tree.

-- 
Louis Chauvet, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



More information about the buildroot mailing list