From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Louis Chauvet <louis.chauvet@bootlin.com>
Cc: Sergey Matyukevich <geomatsi@gmail.com>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH v2] boot/arm-trusted-firmware: fix the RPATH of fiptool
Date: Fri, 8 Dec 2023 22:29:01 +0100 [thread overview]
Message-ID: <ZXOKnam_BHQNarNt@landeda> (raw)
In-Reply-To: <20231208174217.29735-1-louis.chauvet@bootlin.com>
Louis, All,
On 2023-12-08 18:42 +0100, Louis Chauvet via buildroot spake thusly:
> 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.
>
> 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.
>
> Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
> Co-authored-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Applied to master, thanks.
Regards,
Yann E. MORIN.
> ---
> Previous version:
> https://lore.kernel.org/buildroot/20231206164437.22191-1-louis.chauvet@bootlin.com/
>
> Changes v1->v2:
> Update commit log about compatibilty
>
>
> .../arm-trusted-firmware/arm-trusted-firmware.mk | 16 ++--------------
> 1 file changed, 2 insertions(+), 14 deletions(-)
>
> diff --git a/boot/arm-trusted-firmware/arm-trusted-firmware.mk b/boot/arm-trusted-firmware/arm-trusted-firmware.mk
> index 049beed36a91..bed873a1821c 100644
> --- a/boot/arm-trusted-firmware/arm-trusted-firmware.mk
> +++ b/boot/arm-trusted-firmware/arm-trusted-firmware.mk
> @@ -63,7 +63,8 @@ ARM_TRUSTED_FIRMWARE_MAKE_OPTS += \
> BUILD_STRING=$(ARM_TRUSTED_FIRMWARE_VERSION) \
> $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES)) \
> PLAT=$(ARM_TRUSTED_FIRMWARE_PLATFORM) \
> - TARGET_BOARD=$(ARM_TRUSTED_FIRMWARE_TARGET_BOARD)
> + TARGET_BOARD=$(ARM_TRUSTED_FIRMWARE_TARGET_BOARD) \
> + HOSTCC="$(HOSTCC) $(HOST_LDFLAGS)"
>
> ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP),y)
> ARM_TRUSTED_FIRMWARE_MAKE_OPTS += \
> @@ -147,18 +148,6 @@ ARM_TRUSTED_FIRMWARE_MAKE_TARGETS = all
> ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP),y)
> ARM_TRUSTED_FIRMWARE_MAKE_TARGETS += fip
> ARM_TRUSTED_FIRMWARE_DEPENDENCIES += host-openssl
> -# fiptool only exists in newer (>= 1.3) versions of ATF, so we build
> -# it conditionally. We need to explicitly build it as it requires
> -# OpenSSL, and therefore needs to be passed proper variables to find
> -# the host OpenSSL.
> -define ARM_TRUSTED_FIRMWARE_BUILD_FIPTOOL
> - if test -d $(@D)/tools/fiptool; then \
> - $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/tools/fiptool \
> - $(ARM_TRUSTED_FIRMWARE_MAKE_OPTS) \
> - CPPFLAGS="$(HOST_CPPFLAGS)" \
> - LDLIBS="$(HOST_LDFLAGS) -lcrypto" ; \
> - fi
> -endef
> endif
>
> ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_RCW),y)
> @@ -206,7 +195,6 @@ define ARM_TRUSTED_FIRMWARE_BUILD_CMDS
> $(if $(ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH),
> cp -f $(ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH) $(@D)/fdts/
> )
> - $(ARM_TRUSTED_FIRMWARE_BUILD_FIPTOOL)
> $(ARM_TRUSTED_FIRMWARE_MAKE_ENV) $(MAKE) -C $(@D) \
> $(ARM_TRUSTED_FIRMWARE_MAKE_OPTS) \
> $(ARM_TRUSTED_FIRMWARE_MAKE_TARGETS)
> --
> 2.41.0
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2023-12-08 21:29 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-08 17:42 [Buildroot] [PATCH v2] boot/arm-trusted-firmware: fix the RPATH of fiptool Louis Chauvet via buildroot
2023-12-08 21:29 ` Yann E. MORIN [this message]
2024-01-03 12:01 ` Peter Korsgaard
2024-01-03 12:10 ` Baruch Siach via buildroot
2024-01-03 12:29 ` Peter Korsgaard
2024-01-03 12:39 ` Baruch Siach via buildroot
2024-01-03 12:46 ` Thomas Petazzoni via buildroot
2024-01-03 13:31 ` Peter Korsgaard
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=ZXOKnam_BHQNarNt@landeda \
--to=yann.morin.1998@free.fr \
--cc=buildroot@buildroot.org \
--cc=geomatsi@gmail.com \
--cc=louis.chauvet@bootlin.com \
--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