deamen / arm64v8

GNU General Public License v3.0
0 stars 0 forks source link

warning: /arm-trusted-firmware/build/rk3399/release/bl31/bl31.elf has a LOAD segment with RWX permissions #2

Closed deamen closed 1 year ago

deamen commented 1 year ago

The build failed due to the new binutils behavior change. There are two patches working in progress but none of them have been released yet: https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/18661/5 https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/19401

The best workaround for now is to add the TF_LDFLAGS="--no-warn-rwx-segment" flag:

diff --git a/Makefile b/Makefile
index c4350dc16..07b4d5ccb 100644
--- a/Makefile
+++ b/Makefile
@@ -427,6 +427,7 @@ else ifneq ($(findstring gcc,$(notdir $(LD))),)
 # Pass ld options with Wl or Xlinker switches
 TF_LDFLAGS     +=  -Wl,--fatal-warnings -O1
 TF_LDFLAGS     +=  -Wl,--gc-sections
+TF_LDFLAGS     +=  -Wl,--no-warn-rwx-segment
 ifeq ($(ENABLE_LTO),1)
    ifeq (${ARCH},aarch64)
        TF_LDFLAGS  +=  -flto -fuse-linker-plugin
@@ -444,6 +445,7 @@ TF_LDFLAGS      +=  $(subst --,-Xlinker --,$(TF_LDFLAGS_$(ARCH)))
 else
 TF_LDFLAGS     +=  --fatal-warnings -O1
 TF_LDFLAGS     +=  --gc-sections
+TF_LDFLAGS     +=  --no-warn-rwx-segment
 # ld.lld doesn't recognize the errata flags,
 # therefore don't add those in that case
 ifeq ($(findstring ld.lld,$(notdir $(LD))),)
deamen commented 1 year ago

We should use a less cutting edge OS version as builder. The 3.16 version is supported until 2024-05-23, should be long enough for the upstream to fix the issue.