Fixed launch failures on NetBSD due to PaX MPROTECT restrictions

This commit is contained in:
OpenSauce04 2026-04-05 00:06:32 +01:00
parent 7b9c32ae87
commit eecd74ec45
5 changed files with 31 additions and 0 deletions

View File

@ -0,0 +1,11 @@
function(disable_pax_mprotect target)
if (BSD STREQUAL "NetBSD")
add_custom_command(TARGET ${target} POST_BUILD
COMMAND paxctl +m "$<TARGET_FILE:${target}>"
COMMENT "Disabling PaX MPROTECT restrictions for '${target}'"
VERBATIM
)
else()
message(FATAL_ERROR "disable_pax_mprotect only applies on NetBSD.")
endif()
endfunction()

View File

@ -31,6 +31,11 @@ add_library(azahar_libretro SHARED
create_target_directory_groups(azahar_libretro)
if (BSD STREQUAL "NetBSD")
include(DisablePaxMprotect)
disable_pax_mprotect(azahar_libretro)
endif()
target_link_libraries(citra_common PRIVATE libretro)
target_link_libraries(citra_core PRIVATE libretro)
target_link_libraries(video_core PRIVATE libretro)

View File

@ -6,6 +6,11 @@ add_executable(citra_meta
set_target_properties(citra_meta PROPERTIES OUTPUT_NAME "azahar")
if (BSD STREQUAL "NetBSD")
include(DisablePaxMprotect)
disable_pax_mprotect(citra_meta)
endif()
if (APPLE)
set(DIST_DIR "../../dist/apple")
set(APPLE_RESOURCES

View File

@ -4,6 +4,11 @@ add_executable(citra_room_standalone
set_target_properties(citra_room_standalone PROPERTIES OUTPUT_NAME "azahar-room")
if (BSD STREQUAL "NetBSD")
include(DisablePaxMprotect)
disable_pax_mprotect(citra_room_standalone)
endif()
target_link_libraries(citra_room_standalone PRIVATE citra_room)
if(UNIX AND NOT APPLE)

View File

@ -23,6 +23,11 @@ add_executable(tests
create_target_directory_groups(tests)
if (BSD STREQUAL "NetBSD")
include(DisablePaxMprotect)
disable_pax_mprotect(tests)
endif()
target_link_libraries(tests PRIVATE citra_common citra_core video_core audio_core)
target_link_libraries(tests PRIVATE ${PLATFORM_LIBRARIES} catch2 nihstro-headers Threads::Threads)