From 4442efa8acae769d0c7b7f41dbcb16700e2ef053 Mon Sep 17 00:00:00 2001 From: goeiecool9999 <7033575+goeiecool9999@users.noreply.github.com> Date: Sun, 13 Nov 2022 17:23:48 +0100 Subject: [PATCH] rely on distro policy to make executable PIE, but do enforce noexecstack on final output (#490) --- src/CMakeLists.txt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6444a3d0..06f3e31f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -34,13 +34,6 @@ elseif(UNIX) if(CMAKE_C_COMPILER_ID STREQUAL "Clang") add_compile_options(-Wno-ambiguous-reversed-operator) endif() - # most linux environments should enable pie by default, but make sure just in case. - # the same cannot be said for no executable stack which some linkers - # and configurations thereof might enable due to the assembly in the project - if(NOT APPLE) - add_compile_options(-fpie) - add_link_options(-pie -z noexecstack) - endif() add_compile_options(-Wno-multichar -Wno-invalid-offsetof -Wno-switch -Wno-ignored-attributes -Wno-deprecated-enum-enum-conversion) endif() @@ -129,6 +122,12 @@ target_link_libraries(CemuBin PRIVATE SDL2::SDL2 ) +if(UNIX AND NOT APPLE) + # due to nasm output some linkers will make stack executable. + # cemu does not require this so we explicity disable it. + target_link_options(CemuBin PRIVATE -z noexecstack) +endif() + if (ENABLE_WXWIDGETS) target_link_libraries(CemuBin PRIVATE wx::base wx::core) endif()