When building a fip firmware (BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP=y), the TF-A build recipe starts by building the host program fiptool with the proper build environment variables. Then the main TF-A target firmware build step takes place, with the expectation that the fiptool program will be used under the hood if necessary. In TF-A, the build recipe for the host program fiptool has subtly changed after v2.7, in commit cf2dd17ddda2 ("refactor(security): add OpenSSL 1.x compatibility"). This change has the effect to force re-linking fiptool each time. If we try to build with Buildroot a fip firmware with a TF-A version after v2.7 comprising the aforementioned change, the fiptool program is forcibly re-linked during the main firmware build step. This happens without the proper build environment variables and consequently, if openssl is not installed on the host, the libcrypto shared library will not be found by the linker and the link will fail with the following error: /usr/bin/ld: cannot find -lcrypto: No such file or directory A patch has been integrated into TF-A to avoid re-linking fiptool when not necessary, which should solve the problem starting with version v2.10. Add that patch in Buildroot for versions v2.8 and v2.9, to repair the build in the cases described above. Fixes: https://gitlab.com/buildroot.org/buildroot/-/jobs/4664845767 Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com> Cc: Dick Olsson <hi@senzilla.io> Cc: Sergey Matyukevich <geomatsi@gmail.com> [yann.morin.1998@free.fr: - don't use symlink in v2.9, just copy patch - fix numbering in v2.8 which now has two patches ] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> |
||
---|---|---|
arch | ||
board | ||
boot | ||
configs | ||
docs | ||
fs | ||
linux | ||
package | ||
support | ||
system | ||
toolchain | ||
utils | ||
.checkpackageignore | ||
.clang-format | ||
.defconfig | ||
.flake8 | ||
.gitignore | ||
.gitlab-ci.yml | ||
.shellcheckrc | ||
CHANGES | ||
Config.in | ||
Config.in.legacy | ||
COPYING | ||
DEVELOPERS | ||
Makefile | ||
Makefile.legacy | ||
README |
Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation. The documentation can be found in docs/manual. You can generate a text document with 'make manual-text' and read output/docs/manual/manual.text. Online documentation can be found at http://buildroot.org/docs.html To build and use the buildroot stuff, do the following: 1) run 'make menuconfig' 2) select the target architecture and the packages you wish to compile 3) run 'make' 4) wait while it compiles 5) find the kernel, bootloader, root filesystem, etc. in output/images You do not need to be root to build or run buildroot. Have fun! Buildroot comes with a basic configuration for a number of boards. Run 'make list-defconfigs' to view the list of provided configurations. Please feed suggestions, bug reports, insults, and bribes back to the buildroot mailing list: buildroot@buildroot.org You can also find us on #buildroot on OFTC IRC. If you would like to contribute patches, please read https://buildroot.org/manual.html#submitting-patches