From 1b9b1f6a1d4f93193d7e4b7c93f1a4aef2a9cf90 Mon Sep 17 00:00:00 2001 From: Ryan Carsten Schmidt Date: Mon, 3 Jun 2024 03:11:46 -0500 Subject: [PATCH] Correctly detect if linker supports noexecstack When testing for support of multiple flags, the flags must be separated by semicolons not spaces. See https://gitlab.kitware.com/cmake/cmake/-/issues/26024 When referenced elsewhere, enclose the flag variable in quotation marks so that it is passed through unmodified. Closes #4056 --- build/cmake/CMakeModules/AddZstdCompilationFlags.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake b/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake index 5f179989b68..8a55094415e 100644 --- a/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake +++ b/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake @@ -17,13 +17,13 @@ function(EnableCompilerFlag _flag _C _CXX _LD) string(REGEX REPLACE "^_+" "" varname "${varname}") string(TOUPPER "${varname}" varname) if (_C) - CHECK_C_COMPILER_FLAG(${_flag} C_FLAG_${varname}) + CHECK_C_COMPILER_FLAG("${_flag}" C_FLAG_${varname}) if (C_FLAG_${varname}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_flag}" PARENT_SCOPE) endif () endif () if (_CXX) - CHECK_CXX_COMPILER_FLAG(${_flag} CXX_FLAG_${varname}) + CHECK_CXX_COMPILER_FLAG("${_flag}" CXX_FLAG_${varname}) if (CXX_FLAG_${varname}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_flag}" PARENT_SCOPE) endif () @@ -39,7 +39,7 @@ function(EnableCompilerFlag _flag _C _CXX _LD) # results for this configuration, # see: https://gitlab.kitware.com/cmake/cmake/-/issues/22023 if (ZSTD_HAVE_CHECK_LINKER_FLAG AND NOT MSVC) - CHECK_LINKER_FLAG(C ${_flag} LD_FLAG_${varname}) + CHECK_LINKER_FLAG(C "${_flag}" LD_FLAG_${varname}) else () set(LD_FLAG_${varname} false) endif () @@ -76,7 +76,7 @@ macro(ADD_ZSTD_COMPILATION_FLAGS) endif () # Add noexecstack flags # LDFLAGS - EnableCompilerFlag("-z noexecstack" false false true) + EnableCompilerFlag("-z;noexecstack" false false true) # CFLAGS & CXXFLAGS EnableCompilerFlag("-Qunused-arguments" true true false) EnableCompilerFlag("-Wa,--noexecstack" true true false)