diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 047d04c4d7..1ea3af2f1e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -299,9 +299,14 @@ endif() # export all symbols for the interpreter if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") + # for libraries compiled with `leanc -shared` set(LEANC_SHARED_LINKER_FLAGS "${LEANC_SHARED_LINKER_FLAGS} -Wl,--export-all") + # for `leanshared` itself set(LEANSHARED_LINKER_FLAGS "${LEANSHARED_LINKER_FLAGS} -Wl,--export-all") + # for executables containing code to be interpreted + set(LEAN_DYN_EXE_LINKER_FLAGS "${LEANSHARED_LINKER_FLAGS} -Wl,--export-all") else() + set(LEAN_DYN_EXE_LINKER_FLAGS "${LEANSHARED_LINKER_FLAGS} -rdynamic") set(LEANC_EXTRA_FLAGS "${LEANC_EXTRA_FLAGS} -ldl") endif() diff --git a/src/shell/CMakeLists.txt b/src/shell/CMakeLists.txt index 4206c11eeb..f45fd4d165 100644 --- a/src/shell/CMakeLists.txt +++ b/src/shell/CMakeLists.txt @@ -201,4 +201,4 @@ add_test(NAME leanpkgtest_user_attr_app set -eu export PATH=${LEAN_BIN}:$PATH find . -name '*.olean' -delete - leanmake bin LINK_OPTS='${CMAKE_EXE_LINKER_FLAGS}' && build/bin/UserAttr") + leanmake bin LINK_OPTS='${LEAN_DYN_EXE_LINKER_FLAGS}' && build/bin/UserAttr")