From ca36d3ef84570e7ed2434d4c81069af10d903e2c Mon Sep 17 00:00:00 2001 From: Eyck-Alexander Jentzsch Date: Tue, 17 Jun 2025 19:42:16 +0200 Subject: [PATCH] makes no-warn-rwx-segments check if compiler has the option --- CMakeLists.txt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d3d49d..8b721fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,6 @@ cmake_minimum_required(VERSION 3.21) +include(CheckLinkerFlag) + project(mnrs-bsp LANGUAGES ASM C) set(LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/env/${BOARD}/link.lds" CACHE FILEPATH "Linker script to use for BSP linking") @@ -30,7 +32,13 @@ add_subdirectory(libwrap) add_library(bsp STATIC env/${BOARD}/init.c) target_link_libraries(bsp PUBLIC startup wrap) target_include_directories(bsp PUBLIC env/${BOARD}) -target_link_options(bsp INTERFACE LINKER:--no-warn-rwx-segments -nostartfiles -T ${LINKER_SCRIPT}) + +check_linker_flag(C "LINKER:--no-warn-rwx-segments" HAS_NO_WARN_RWX_SEGMENTS) + +if(HAS_NO_WARN_RWX_SEGMENTS) + target_link_options(bsp INTERFACE LINKER:--no-warn-rwx-segments) +endif() +target_link_options(bsp INTERFACE LINKER: -nostartfiles -T ${LINKER_SCRIPT}) if(SEMIHOSTING) target_include_directories(bsp INTERFACE include)