From 8a6e8320cf342735eddbbda387ea4e660dc5cdef Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Mon, 11 Nov 2024 21:54:36 +0800 Subject: [PATCH] riscv: Suppress LOAD RWX linker warning Suppress the warning message "nuttx has a LOAD segment with RWX permissions" in case of RAM boot mode is selected. RAM MODE: BOOT_RUNFROMEXTSRAM/BOOT_RUNFROMISRAM/BOOT_RUNFROMSDRAM/BOOT_COPYTORAM Signed-off-by: Huang Qi --- arch/risc-v/src/cmake/Toolchain.cmake | 6 ++++++ arch/risc-v/src/common/Toolchain.defs | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/arch/risc-v/src/cmake/Toolchain.cmake b/arch/risc-v/src/cmake/Toolchain.cmake index f3288cfb598..d44d2845b96 100644 --- a/arch/risc-v/src/cmake/Toolchain.cmake +++ b/arch/risc-v/src/cmake/Toolchain.cmake @@ -265,6 +265,12 @@ if(CONFIG_RISCV_TOOLCHAIN STREQUAL GNU_RVG) string(REGEX MATCH "([0-9]+)\\.[0-9]+" GCC_VERSION_REGEX "${GCC_VERSION_OUTPUT}") set(GCCVER ${CMAKE_MATCH_1}) + + if(GCCVER GREATER_EQUAL 12) + if(CONFIG_ARCH_RAMFUNCS OR NOT CONFIG_BOOT_RUNFROMFLASH) + add_link_options(-Wl,--no-warn-rwx-segments) + endif() + endif() endif() if(CONFIG_ARCH_RV_ISA_ZICSR_ZIFENCEI) diff --git a/arch/risc-v/src/common/Toolchain.defs b/arch/risc-v/src/common/Toolchain.defs index b0e5729bed6..803a6278cc1 100644 --- a/arch/risc-v/src/common/Toolchain.defs +++ b/arch/risc-v/src/common/Toolchain.defs @@ -386,6 +386,13 @@ ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y) ifeq ($(GCCVER),) export GCCVER := $(shell $(CC) --version | grep gcc | sed -E "s/.* ([0-9]+\.[0-9]+).*/\1/" | cut -d'.' -f1) endif + ifeq ($(shell expr "$(GCCVER)" \>= 12), 1) + ifeq ($(CONFIG_ARCH_RAMFUNCS),y) + LDFLAGS += --no-warn-rwx-segments + else ifeq ($(CONFIG_BOOT_RUNFROMFLASH),) + LDFLAGS += --no-warn-rwx-segments + endif + endif endif endif