mirror of
https://git.busybox.net/buildroot.git
synced 2024-12-04 10:53:30 +08:00
248c2d045e
Arm Trusted Firmware (TF-A) v2.11 fails to build in some situations with the error message: ld: build/qemu/release/bl1/bl1.elf: error: PHDR segment not covered by LOAD segment This error can be reproduced with the commands: make qemu_aarch64_ebbr_defconfig utils/config --set-str BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE v2.11 make olddefconfig make This issue was reported in [1]. This error is coming from a check that was made more strict since binutils ld 2.34. This error message is normally related to dynamic linker, so it should normally not apply to a package like TF-A. When BR2_SHARED_LIBS=y (shared libraries only) and BR2_PIC_PIE=y (Build code with PIC/PIE), the Buildroot toolchain-wrapper will try to enable position-independent code/executables. See [2]. This configuration is a common default. Arm Trusted Firmware (TF-A) build system, on its side, tries to detect if the toolchain enables PIE automatically. It does so by checking if --enable-default-pie is in the output of "$(CC) -v". If found, the TF-A build system tries to disable PIE globally (it can be explicitly enabled again with the ENABLE_PIE=1 build variable, in some specific configurations). This detection mechanism is not working with the Buildroot toolchain wrapper which is enabling PIE silently. See [3]. Commit |
||
---|---|---|
.. | ||
afboot-stm32 | ||
arm-trusted-firmware | ||
at91bootstrap3 | ||
barebox | ||
binaries-marvell | ||
boot-wrapper-aarch64 | ||
edk2 | ||
grub2 | ||
mv-ddr-marvell | ||
mxs-bootlets | ||
opensbi | ||
optee-os | ||
s500-bootloader | ||
shim | ||
syslinux | ||
ti-k3-boot-firmware | ||
ti-k3-r5-loader | ||
uboot | ||
vexpress-firmware | ||
xilinx-prebuilt | ||
common.mk | ||
Config.in |