From 4aed2a8e5b654ea8f577173ce2481870ae7b644b Mon Sep 17 00:00:00 2001 From: Fastigium Date: Thu, 14 Aug 2025 22:07:45 +0200 Subject: [PATCH] Disable ASLR when building RemoteVstPlugin on Windows (#7976) Disable ASLR when building RemoteVstPlugin executables on Windows in order to fix crashes when using certain VSTs --------- Co-authored-by: Dalton Messmer --- plugins/VstBase/RemoteVstPlugin/CMakeLists.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt b/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt index b360f1c9c..0dd1fc629 100644 --- a/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt +++ b/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt @@ -71,6 +71,21 @@ if(MSVC) target_link_options(${EXE_NAME} PRIVATE "/entry:mainCRTStartup") endif() +# If we're building a Windows executable, add linker flags to disable ASLR +# This is needed because several old VST dlls crash when ASLR is in use (see bug #7830) +if(MSVC) + target_link_options(${EXE_NAME} PRIVATE "/DYNAMICBASE:NO") + if(BITNESS EQUAL 64) + target_link_options(${EXE_NAME} PRIVATE "/HIGHENTROPYVA:NO") + endif() +elseif(IS_MINGW) + if(BITNESS EQUAL 32) + target_link_options(${EXE_NAME} PRIVATE "-Wl,--disable-dynamicbase") + else() + target_link_options(${EXE_NAME} PRIVATE "-Wl,--disable-dynamicbase,--disable-high-entropy-va") + endif() +endif() + if(IS_MINGW) SET(CMAKE_REQUIRED_FLAGS "-std=c++20") endif()