From e2dc457916dfd99aea579af41f6d5538a547b093 Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Tue, 9 Aug 2022 04:16:36 +0000 Subject: [PATCH] atf: support build with binutils 2.39 set LDFLAGS="--no-warn-rwx-segments" for build of bl31.elf on iMX8, A64, H5 and H6 socs. As the link fails with a non-zero exit code (because of --fatal-warnings). relevant commit: - https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ba951afb99912da01a6e8434126b8fac7aa75107 The ELF linker will now generate a warning message if the stack is made executable. Similarly it will warn if the output binary contains a segment with all three of the read, write and execute permission bits set. These warnings are intended to help developers identify programs which might be vulnerable to attack via these executable memory regions. The warnings are enabled by default but can be disabled via a command line option. compile error: LD atf-2.7/build/sun50i_a64/release/bl31/bl31.elf aarch64-none-elf-ld.bfd: warning: atf-2.7/build/sun50i_a64/release/bl31/bl31.elf has a LOAD segment with RWX permissions --- packages/tools/atf/package.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tools/atf/package.mk b/packages/tools/atf/package.mk index 942cdf7586..298795512d 100644 --- a/packages/tools/atf/package.mk +++ b/packages/tools/atf/package.mk @@ -16,9 +16,9 @@ PKG_TOOLCHAIN="manual" make_target() { if [ "${DEVICE}" = "iMX8" ]; then - CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" CFLAGS="--param=min-pagesize=0" make PLAT=${ATF_PLATFORM} bl31 + CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="--no-warn-rwx-segments" CFLAGS="--param=min-pagesize=0" make PLAT=${ATF_PLATFORM} bl31 else - CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" CFLAGS="" make PLAT=${ATF_PLATFORM} bl31 + CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="--no-warn-rwx-segments" CFLAGS="" make PLAT=${ATF_PLATFORM} bl31 fi }