Fix MinGW stack flag syntax and Python binding crashes

- Detect linker type (lld-link vs ld) and use the appropriate stack flag: /STACK:16777216 for lld-link, --stack,16777216 for MinGW ld

- Filter out stack-related flags from Python binding modules to prevent crashes when loading MuJoCo as a DLL in Python

Fixes #3011
This commit is contained in:
ashutosh0x
2026-02-11 22:31:29 +05:30
committed by Ashutosh0x
parent 6af0d4c823
commit 50349dc685
4 changed files with 17 additions and 27 deletions
+5 -9
View File
@@ -23,16 +23,12 @@ function(get_mujoco_extra_link_options OUTPUT_VAR)
set(EXTRA_LINK_OPTIONS)
if(WIN32)
set(EXTRA_LINK_OPTIONS ${EXTRA_LINK_OPTIONS} -Wl,/STACK:16777216)
set(CMAKE_REQUIRED_FLAGS "-fuse-ld=lld-link")
check_c_source_compiles("int main() {}" SUPPORTS_LLD)
if(SUPPORTS_LLD)
set(EXTRA_LINK_OPTIONS
${EXTRA_LINK_OPTIONS}
-fuse-ld=lld-link
-Wl,/OPT:REF
-Wl,/OPT:ICF
)
check_c_source_compiles("int main() {}" SUPPORTS_LLD_LINK)
if(SUPPORTS_LLD_LINK)
set(EXTRA_LINK_OPTIONS ${EXTRA_LINK_OPTIONS} -fuse-ld=lld-link -Wl,/STACK:16777216 -Wl,/OPT:REF -Wl,/OPT:ICF)
else()
set(EXTRA_LINK_OPTIONS ${EXTRA_LINK_OPTIONS} -Wl,--stack,16777216)
endif()
else()
set(CMAKE_REQUIRED_FLAGS "-fuse-ld=lld")