diff options
Diffstat (limited to 'src/dlls/mscordac/CMakeLists.txt')
-rw-r--r-- | src/dlls/mscordac/CMakeLists.txt | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/dlls/mscordac/CMakeLists.txt b/src/dlls/mscordac/CMakeLists.txt index 02bba4a058..8780db904d 100644 --- a/src/dlls/mscordac/CMakeLists.txt +++ b/src/dlls/mscordac/CMakeLists.txt @@ -45,6 +45,10 @@ if(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_FREEBSD OR CLR_CMAKE_PLATFORM_ set(START_LIBRARY_GROUP -Wl,--start-group) set(END_LIBRARY_GROUP -Wl,--end-group) + # These options are used to force every object to be included even if it's unused. + set(START_WHOLE_ARCHIVE -Wl,--whole-archive) + set(END_WHOLE_ARCHIVE -Wl,--no-whole-archive) + # Add linker exports file option set(EXPORTS_LINKER_OPTION -Wl,--version-script=${EXPORTS_FILE}) endif(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_FREEBSD OR CLR_CMAKE_PLATFORM_NETBSD) @@ -112,7 +116,9 @@ if(WIN32) else(WIN32) list(APPEND COREDAC_LIBRARIES mscorrc_debug + ${START_WHOLE_ARCHIVE} # force all PAL objects to be included so all exports are available coreclrpal + ${END_WHOLE_ARCHIVE} palrt ) endif(WIN32) @@ -120,4 +126,4 @@ endif(WIN32) target_link_libraries(mscordaccore PRIVATE ${COREDAC_LIBRARIES}) # add the install targets -install_clr(mscordaccore)
\ No newline at end of file +install_clr(mscordaccore) |