From 0913ff21e904e29318242170863b6c28f0739e60 Mon Sep 17 00:00:00 2001
From: Adeel <3840695+am11@users.noreply.github.com>
Date: Sun, 26 Mar 2023 08:48:38 +0300
Subject: [PATCH 01/10] Switch mono to use cmake-detected objcopy
---
src/mono/CMakeLists.txt | 1 +
src/mono/dlls/dbgshim/CMakeLists.txt | 2 +-
src/mono/dlls/mscordbi/CMakeLists.txt | 2 +-
src/mono/mono.proj | 89 ++++++---------------
src/mono/mono/component/CMakeLists.txt | 2 +-
src/mono/mono/eventpipe/test/CMakeLists.txt | 2 +-
src/mono/mono/metadata/CMakeLists.txt | 3 +-
src/mono/mono/mini/CMakeLists.txt | 17 ++--
8 files changed, 37 insertions(+), 81 deletions(-)
diff --git a/src/mono/CMakeLists.txt b/src/mono/CMakeLists.txt
index 7b57776aa007c7..8e9763dbb27e5f 100644
--- a/src/mono/CMakeLists.txt
+++ b/src/mono/CMakeLists.txt
@@ -8,6 +8,7 @@ project(mono)
include(../../eng/native/configurepaths.cmake)
include(${CLR_ENG_NATIVE_DIR}/functions.cmake)
+include(${CLR_ENG_NATIVE_DIR}/configuretools.cmake)
if (MSVC)
# Also set by configurecompiler.cmake, which isn't used by mono yet
diff --git a/src/mono/dlls/dbgshim/CMakeLists.txt b/src/mono/dlls/dbgshim/CMakeLists.txt
index adb41b47612d8d..ffb57d5a5ed7a6 100644
--- a/src/mono/dlls/dbgshim/CMakeLists.txt
+++ b/src/mono/dlls/dbgshim/CMakeLists.txt
@@ -82,4 +82,4 @@ if(CLR_CMAKE_HOST_UNIX)
endif()
target_link_libraries(dbgshim PRIVATE ${DBGSHIM_LIBRARIES} monoapi)
-install(TARGETS dbgshim DESTINATION lib)
+install_with_stripped_symbols(dbgshim TARGETS lib)
diff --git a/src/mono/dlls/mscordbi/CMakeLists.txt b/src/mono/dlls/mscordbi/CMakeLists.txt
index c570777dca93a1..b9bbbefbe6b0b3 100644
--- a/src/mono/dlls/mscordbi/CMakeLists.txt
+++ b/src/mono/dlls/mscordbi/CMakeLists.txt
@@ -153,4 +153,4 @@ if(CLR_CMAKE_HOST_UNIX)
endif()
target_link_libraries(mscordbi PRIVATE ${COREDBI_LIBRARIES} monoapi)
-install(TARGETS mscordbi DESTINATION lib)
+install_with_stripped_symbols(mscordbi TARGETS lib)
diff --git a/src/mono/mono.proj b/src/mono/mono.proj
index 695064cc7663bf..9444815a8b5330 100644
--- a/src/mono/mono.proj
+++ b/src/mono/mono.proj
@@ -263,6 +263,7 @@
<_MonoCMakeArgs Include="-DCMAKE_INSTALL_PREFIX="$(MonoObjDir.Replace('\','/'))out""/>
<_MonoCMakeArgs Include="-DCMAKE_INSTALL_LIBDIR=lib"/>
<_MonoCMakeArgs Include="-DCMAKE_BUILD_TYPE=$(Configuration)"/>
+ <_MonoCMakeArgs Include="-DCLR_CMAKE_KEEP_NATIVE_SYMBOLS=true" Condition="'$(KeepNativeSymbols)' != 'true' or '$(BuildMonoAOTCrossCompilerOnly)' == 'true'" />
<_MonoCMakeArgs Condition="'$(CMakeArgs)' != ''" Include="$(CMakeArgs)"/>
<_MonoCMakeArgs Condition="'$(MonoEnableLLVM)' == 'true'" Include="-DLLVM_PREFIX=$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)" />
<_MonoCMakeArgs Condition="'$(BuildDarwinFrameworks)' == 'true'" Include="-DBUILD_DARWIN_FRAMEWORKS=1" />
@@ -461,20 +462,19 @@
<_IcuLibdir>$(PkgMicrosoft_NETCore_Runtime_ICU_Transport)/runtimes/$(TargetOS)-$(TargetArchitecture)/native/lib
-
- <_MonoCMakeArgs Include="-DCMAKE_OSX_ARCHITECTURES=arm64"/>
-
<_MonoCMakeArgs Include="-DCMAKE_SYSTEM_NAME=$(_MonoCMakeSystemName)"/>
<_MonoCMakeArgs Include="-DCMAKE_OSX_DEPLOYMENT_TARGET=$(_MonoCMakeVersionMin)" />
<_MonoCMakeArgs Include="-DCMAKE_OSX_SYSROOT='$(_MonoCMakeSysroot)'" />
- <_MonoCMakeArgs Condition="'$(Platform)' == 'x64'" Include="-DCMAKE_OSX_ARCHITECTURES=x86_64"/>
- <_MonoCMakeArgs Condition="'$(Platform)' == 'x86'" Include="-DCMAKE_OSX_ARCHITECTURES=i386"/>
- <_MonoCMakeArgs Condition="'$(Platform)' == 'arm64'" Include="-DCMAKE_OSX_ARCHITECTURES=arm64"/>
- <_MonoCMakeArgs Condition="'$(Platform)' == 'arm'" Include=""-DCMAKE_OSX_ARCHITECTURES=armv7%3Barmv7s""/>
<_MonoCFLAGS Include="-Wl,-application_extension" />
<_MonoCXXFLAGS Include="-Wl,-application_extension" />
+
+ <_MonoCMakeArgs Condition="'$(Platform)' == 'x64'" Include="-DCMAKE_OSX_ARCHITECTURES=x86_64" />
+ <_MonoCMakeArgs Condition="'$(Platform)' == 'x86'" Include="-DCMAKE_OSX_ARCHITECTURES=i386" />
+ <_MonoCMakeArgs Condition="'$(Platform)' == 'arm64'" Include="-DCMAKE_OSX_ARCHITECTURES=arm64" />
+ <_MonoCMakeArgs Condition="'$(Platform)' == 'arm'" Include=""-DCMAKE_OSX_ARCHITECTURES=armv7%3Barmv7s"" />
+
<_MonoCMakeArgs Include="-DICU_LIBDIR=$(_IcuLibdir)"/>
<_MonoCMakeArgs Include="-DENABLE_ICALL_EXPORT=1"/>
@@ -581,6 +581,8 @@
<_MonoCMakeArgs Include="-DMONO_COMPONENTS_RID=$(TargetOS)-$(TargetArchitecture)" />
+ <_MonoCMakeArgs Condition="'$(TargetArchitecture)' == 'wasm' or '$(TargetArchitecture)' == 'wasm32'" Include="-DCLR_CMAKE_HOST_ARCH=$(BuildArchitecture)" />
+ <_MonoCMakeArgs Condition="'$(TargetArchitecture)' != 'wasm' and '$(TargetArchitecture)' != 'wasm32'" Include="-DCLR_CMAKE_HOST_ARCH=$(TargetArchitecture)" />
@@ -633,55 +635,6 @@
-
-
-
- linux-x86_64
- darwin-x86_64
- windows-x86_64
- <_MonoRuntimeFilePath>$(MonoObjDir)out\lib\$(MonoFileName)
- <_LinuxAbi Condition="'$(TargetsAndroid)' != 'true' and '$(TargetsLinuxBionic)' != 'true' and '$(TargetsLinuxMusl)' != 'true'">linux-gnu
- <_LinuxAbi Condition="'$(TargetsAndroid)' != 'true' and '$(TargetsLinuxBionic)' != 'true' and '$(TargetsLinuxMusl)' == 'true'">alpine-linux-musl
- <_LinuxAbi Condition="'$(TargetsAndroid)' == 'true' or '$(TargetsLinuxBionic)' == 'true'">linux-android
- <_LinuxFloatAbi Condition="'$(TargetsAndroid)' != 'true' and '$(TargetsLinuxBionic)' != 'true'">hf
- <_Objcopy>objcopy
- <_Objcopy Condition="'$(Platform)' == 'arm'">arm-$(_LinuxAbi)eabi$(_LinuxFloatAbi)-$(_Objcopy)
- <_Objcopy Condition="'$(Platform)' == 'armv6'">arm-$(_LinuxAbi)eabi$(_LinuxFloatAbi)-$(_Objcopy)
- <_Objcopy Condition="'$(Platform)' == 'arm64'">aarch64-$(_LinuxAbi)-$(_Objcopy)
- <_Objcopy Condition="'$(Platform)' == 'riscv64'">riscv64-$(_LinuxAbi)-$(_Objcopy)
- <_Objcopy Condition="'$(Platform)' == 's390x'">s390x-$(_LinuxAbi)-$(_Objcopy)
- <_Objcopy Condition="'$(Platform)' == 'ppc64le'">powerpc64le-$(_LinuxAbi)-$(_Objcopy)
- <_Objcopy Condition="'$(Platform)' == 'x64'">x86_64-$(_LinuxAbi)-$(_Objcopy)
- <_Objcopy Condition="'$(Platform)' == 'x86'">i686-$(_LinuxAbi)-$(_Objcopy)
- <_Objcopy Condition="'$(TargetsAndroid)' == 'true' or '$(TargetsLinuxBionic)' == 'true'">$(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/$(MonoToolchainPrebuiltOS)/bin/llvm-objcopy
- <_Objcopy Condition="'$(TargetsLinuxMusl)' == 'true' and '$(CrossBuild)' != 'true'">objcopy
-
- <_ObjcopyPrefix Condition="'$(MonoCrossDir)' != '' and '$(Platform)' == 'riscv64'">llvm-objcopy-
-
-
-
-
-
-
-
-
-
-
-
-
- <_Objcopy Condition="'$(_ObjcopyFound)' != '0'">objcopy
-
-
-
-
-
-
-
-
-
-
-
-
@@ -712,6 +665,12 @@
x86_64-apple-maccatalyst
+
+ linux-x86_64
+ darwin-x86_64
+ windows-x86_64
+
+
<_LibClang Include="$(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/$(MonoToolchainPrebuiltOS)/lib64/libclang.so.*"/>
@@ -724,9 +683,15 @@
$(MonoCrossDir)/usr/lib/gcc/aarch64-linux-gnu/5
+
+ <_MonoLLVMTargetArchitecture>$(BuildArchitecture)
+ <_MonoLLVMTargetArchitecture Condition="'$(RealTargetArchitecture)' != ''">$(RealTargetArchitecture)
+
+
-
+
+
<_MonoAOTCFLAGS Condition="'$(RealTargetArchitecture)' == 'arm64'" Include="-arch arm64" />
@@ -773,6 +738,8 @@
<_MonoAOTCPPFLAGS Include="-DNVALGRIND" />
+
+
@@ -784,9 +751,6 @@
<_MonoSkipInitCompiler>true
- linux-x86_64
- darwin-x86_64
- windows-x86_64
true
$(ANDROID_NDK_ROOT)/sysroot
@@ -828,8 +792,6 @@
<_MonoAOTCFLAGSOption>-DCMAKE_C_FLAGS="@(_MonoAOTCPPFLAGS, ' ') @(_MonoAOTCFLAGS, ' ')"
<_MonoAOTCXXFLAGSOption>-DCMAKE_CXX_FLAGS="@(_MonoAOTCPPFLAGS, ' ') @(_MonoAOTCXXFLAGS, ' ')"
- <_MonoLLVMTargetArchitecture>$(BuildArchitecture)
- <_MonoLLVMTargetArchitecture Condition="'$(RealTargetArchitecture)' != ''">$(RealTargetArchitecture)
@@ -916,8 +878,7 @@
- <_MonoRuntimeFilePath Condition="'$(TargetsWindows)' == 'true'">$(MonoObjDir)out\bin\$(MonoFileName)
- <_MonoRuntimeFilePath Condition="'$(_MonoRuntimeFilePath)' == ''">$(MonoObjDir)out\lib\$(MonoFileName)
+ <_MonoRuntimeFilePath>$(MonoObjDir)out\lib\$(MonoFileName)
<_MonoRuntimeStaticFilePath Condition="'$(TargetsMacCatalyst)' == 'true' or '$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true' or '$(TargetsAndroid)' == 'true' or '$(TargetsLinuxBionic)' == 'true'">$(MonoObjDir)out\lib\$(MonoStaticLibFileName)
<_MonoIncludeInterpStaticFiles Condition="'$(TargetsBrowser)' == 'true' or '$(TargetsWasi)' == 'true'">true
<_MonoIncludeIcuFiles Condition="'$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true' or '$(TargetsMacCatalyst)' == 'true'">true
diff --git a/src/mono/mono/component/CMakeLists.txt b/src/mono/mono/component/CMakeLists.txt
index 8a8964efc087e5..967ea555f96901 100644
--- a/src/mono/mono/component/CMakeLists.txt
+++ b/src/mono/mono/component/CMakeLists.txt
@@ -192,7 +192,7 @@ if(NOT DISABLE_COMPONENTS AND NOT STATIC_COMPONENTS)
target_link_libraries("mono-component-${component}" PRIVATE monosgen-shared)
endif()
target_link_libraries("mono-component-${component}" PRIVATE ${OS_LIBS})
- install(TARGETS "mono-component-${component}" LIBRARY)
+ install_with_stripped_symbols("mono-component-${component}" TARGETS lib)
endforeach()
#define a library for each component and component stub
diff --git a/src/mono/mono/eventpipe/test/CMakeLists.txt b/src/mono/mono/eventpipe/test/CMakeLists.txt
index 5662e9ca46a3db..34e84a77768e58 100644
--- a/src/mono/mono/eventpipe/test/CMakeLists.txt
+++ b/src/mono/mono/eventpipe/test/CMakeLists.txt
@@ -43,7 +43,7 @@ if(ENABLE_PERFTRACING)
if(ICU_LDFLAGS)
set_target_properties(ep-test PROPERTIES LINK_FLAGS ${ICU_LDFLAGS})
endif()
- install(TARGETS ep-test RUNTIME)
+ install_with_stripped_symbols(ep-test TARGETS bin)
else(ENABLE_EVENTPIPE_TEST AND STATIC_COMPONENTS AND (NOT DISABLE_COMPONENTS) AND (NOT DISABLE_LIBS) AND (NOT DISABLE_EXECUTABLES))
message(VERBOSE "Skip building native EventPipe library test runner.")
endif(ENABLE_EVENTPIPE_TEST AND STATIC_COMPONENTS AND (NOT DISABLE_COMPONENTS) AND (NOT DISABLE_LIBS) AND (NOT DISABLE_EXECUTABLES))
diff --git a/src/mono/mono/metadata/CMakeLists.txt b/src/mono/mono/metadata/CMakeLists.txt
index abddf1a58a5d92..a702c70ec285c0 100644
--- a/src/mono/mono/metadata/CMakeLists.txt
+++ b/src/mono/mono/metadata/CMakeLists.txt
@@ -9,7 +9,7 @@ target_link_libraries(mono-icall-table PRIVATE monoapi eglib_api)
target_include_directories(mono-icall-table PRIVATE ${PROJECT_BINARY_DIR}/../..
${PROJECT_SOURCE_DIR}/../..
${PROJECT_SOURCE_DIR}/..)
-install(TARGETS mono-icall-table LIBRARY)
+install_with_stripped_symbols(mono-icall-table TARGETS lib)
else()
set(icall_table_sources "icall-table.c")
endif()
@@ -208,4 +208,3 @@ target_compile_definitions(metadata_objects PRIVATE -DMONO_DLL_EXPORT)
target_include_directories(metadata_objects PRIVATE ${PROJECT_BINARY_DIR}/../..
${PROJECT_SOURCE_DIR}/../..
${PROJECT_SOURCE_DIR}/..)
-
diff --git a/src/mono/mono/mini/CMakeLists.txt b/src/mono/mono/mini/CMakeLists.txt
index 8419317adc58c3..daf885ce3f19c0 100644
--- a/src/mono/mono/mini/CMakeLists.txt
+++ b/src/mono/mono/mini/CMakeLists.txt
@@ -300,7 +300,7 @@ target_link_libraries(mono-ee-interp PRIVATE monoapi eglib_api)
target_include_directories(mono-ee-interp PRIVATE ${PROJECT_BINARY_DIR}/../..
${PROJECT_SOURCE_DIR}/../..
${PROJECT_SOURCE_DIR}/..)
-install(TARGETS mono-ee-interp LIBRARY)
+install_with_stripped_symbols(mono-ee-interp TARGETS lib)
if(HOST_WASM AND CMAKE_BUILD_TYPE STREQUAL "Debug")
# Always optimize the interpreter, even in Debug builds. Unoptimized interp_exec_method and
# generate_code are so big that some browsers overflow the stack with even a few recursive
@@ -410,7 +410,7 @@ if(NOT DISABLE_SHARED_LIBS)
# if components are disabled, link the fallback stubs into the runtime
target_sources(monosgen-shared PRIVATE "${mono-components-stub-objects}")
endif()
- install(TARGETS monosgen-shared LIBRARY)
+ install_with_stripped_symbols(monosgen-shared TARGETS lib)
if(HOST_WIN32 AND TARGET_AMD64)
add_library(monosgen-shared-dac SHARED "mini-windows-dlldac.c")
target_link_libraries(monosgen-shared-dac PRIVATE monoapi eglib_api)
@@ -452,9 +452,7 @@ if(NOT DISABLE_SHARED_LIBS)
FRAMEWORK_VERSION C
MACOSX_FRAMEWORK_IDENTIFIER net.dot.mono-framework
)
- install(TARGETS ${frameworkconfig}
- FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
- )
+ install_with_stripped_symbols(${frameworkconfig} TARGETS ${CMAKE_INSTALL_LIBDIR})
endforeach()
endif()
endif()
@@ -465,11 +463,11 @@ if(HOST_BROWSER)
# This is the only source file which contains a c++ throw or catch
add_library(mono-wasm-eh-js STATIC llvm-runtime.cpp)
target_link_libraries (mono-wasm-eh-js PRIVATE monoapi eglib_api)
- install(TARGETS mono-wasm-eh-js LIBRARY)
+ install_with_stripped_symbols(mono-wasm-eh-js TARGETS lib)
add_library(mono-wasm-eh-wasm STATIC llvm-runtime.cpp)
target_link_libraries (mono-wasm-eh-wasm PRIVATE monoapi eglib_api)
set_target_properties(mono-wasm-eh-wasm PROPERTIES COMPILE_FLAGS "-fwasm-exceptions")
- install(TARGETS mono-wasm-eh-wasm LIBRARY)
+ install_with_stripped_symbols(mono-wasm-eh-wasm TARGETS lib)
endif()
find_package(Python3 COMPONENTS Interpreter)
@@ -567,8 +565,5 @@ if(NOT DISABLE_EXECUTABLES)
target_sources(mono-sgen PRIVATE ${mono_validate_apis_source})
endif()
- install(TARGETS mono-sgen RUNTIME)
- if(HOST_WIN32)
- install(FILES $ DESTINATION bin OPTIONAL)
- endif()
+ install_with_stripped_symbols(mono-sgen TARGETS bin)
endif()
From 2111ae1b207e7ac59a54b7fb663a6108b14c5311 Mon Sep 17 00:00:00 2001
From: Adeel Mujahid <3840695+am11@users.noreply.github.com>
Date: Tue, 28 Mar 2023 00:11:04 +0300
Subject: [PATCH 02/10] Fix a condition
---
src/mono/mono.proj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mono/mono.proj b/src/mono/mono.proj
index 9444815a8b5330..44424e711b2696 100644
--- a/src/mono/mono.proj
+++ b/src/mono/mono.proj
@@ -263,7 +263,7 @@
<_MonoCMakeArgs Include="-DCMAKE_INSTALL_PREFIX="$(MonoObjDir.Replace('\','/'))out""/>
<_MonoCMakeArgs Include="-DCMAKE_INSTALL_LIBDIR=lib"/>
<_MonoCMakeArgs Include="-DCMAKE_BUILD_TYPE=$(Configuration)"/>
- <_MonoCMakeArgs Include="-DCLR_CMAKE_KEEP_NATIVE_SYMBOLS=true" Condition="'$(KeepNativeSymbols)' != 'true' or '$(BuildMonoAOTCrossCompilerOnly)' == 'true'" />
+ <_MonoCMakeArgs Include="-DCLR_CMAKE_KEEP_NATIVE_SYMBOLS=true" Condition="'$(KeepNativeSymbols)' == 'true' or '$(BuildMonoAOTCrossCompilerOnly)' == 'true'" />
<_MonoCMakeArgs Condition="'$(CMakeArgs)' != ''" Include="$(CMakeArgs)"/>
<_MonoCMakeArgs Condition="'$(MonoEnableLLVM)' == 'true'" Include="-DLLVM_PREFIX=$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)" />
<_MonoCMakeArgs Condition="'$(BuildDarwinFrameworks)' == 'true'" Include="-DBUILD_DARWIN_FRAMEWORKS=1" />
From 5d3fe81a483a3068e2bc1a16514193e9e7995132 Mon Sep 17 00:00:00 2001
From: Adeel <3840695+am11@users.noreply.github.com>
Date: Tue, 28 Mar 2023 01:24:58 +0300
Subject: [PATCH 03/10] Handle wasi case
---
eng/native/functions.cmake | 8 +++++---
src/mono/mono.proj | 2 --
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/eng/native/functions.cmake b/eng/native/functions.cmake
index c926f7e6d9c977..e1db7dcb5e21c5 100644
--- a/eng/native/functions.cmake
+++ b/eng/native/functions.cmake
@@ -373,11 +373,11 @@ function (get_symbol_file_name targetName outputSymbolFilename)
endif ()
set(${outputSymbolFilename} ${strip_destination_file} PARENT_SCOPE)
- else(CLR_CMAKE_HOST_UNIX)
+ elseif(CLR_CMAKE_HOST_WIN32)
# We can't use the $ generator expression here since
# the generator expression isn't supported on resource DLLs.
set(${outputSymbolFilename} $/$$.pdb PARENT_SCOPE)
- endif(CLR_CMAKE_HOST_UNIX)
+ endif()
endfunction()
function(strip_symbols targetName outputFilename)
@@ -443,7 +443,9 @@ endfunction()
function(install_with_stripped_symbols targetName kind destination)
if(NOT CLR_CMAKE_KEEP_NATIVE_SYMBOLS)
strip_symbols(${targetName} symbol_file)
- install_symbol_file(${symbol_file} ${destination} ${ARGN})
+ if (NOT "${symbolFile}" STREQUAL "")
+ install_symbol_file(${symbol_file} ${destination} ${ARGN})
+ endif()
endif()
if (CLR_CMAKE_TARGET_APPLE AND ("${kind}" STREQUAL "TARGETS"))
diff --git a/src/mono/mono.proj b/src/mono/mono.proj
index 44424e711b2696..5e24e7ff88bc95 100644
--- a/src/mono/mono.proj
+++ b/src/mono/mono.proj
@@ -1030,8 +1030,6 @@
DestinationFiles="@(_MonoRuntimeBuildArtifacts->'$(RuntimeBinDir)build\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true"
Condition="'$(BuildMonoAOTCrossCompilerOnly)' != 'true'" />
-
-
From e552b0f4834dd099938c0bc62e113bb05e063bbb Mon Sep 17 00:00:00 2001
From: Adeel <3840695+am11@users.noreply.github.com>
Date: Tue, 28 Mar 2023 02:02:05 +0300
Subject: [PATCH 04/10] Revert static lib change
---
src/mono/mono/mini/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mono/mono/mini/CMakeLists.txt b/src/mono/mono/mini/CMakeLists.txt
index daf885ce3f19c0..7990a600420fe4 100644
--- a/src/mono/mono/mini/CMakeLists.txt
+++ b/src/mono/mono/mini/CMakeLists.txt
@@ -300,7 +300,7 @@ target_link_libraries(mono-ee-interp PRIVATE monoapi eglib_api)
target_include_directories(mono-ee-interp PRIVATE ${PROJECT_BINARY_DIR}/../..
${PROJECT_SOURCE_DIR}/../..
${PROJECT_SOURCE_DIR}/..)
-install_with_stripped_symbols(mono-ee-interp TARGETS lib)
+install(TARGETS mono-ee-interp LIBRARY)
if(HOST_WASM AND CMAKE_BUILD_TYPE STREQUAL "Debug")
# Always optimize the interpreter, even in Debug builds. Unoptimized interp_exec_method and
# generate_code are so big that some browsers overflow the stack with even a few recursive
From bdf5d800132c678db15f51890fb4a1845b631166 Mon Sep 17 00:00:00 2001
From: Adeel <3840695+am11@users.noreply.github.com>
Date: Tue, 28 Mar 2023 03:11:45 +0300
Subject: [PATCH 05/10] typo
---
eng/native/functions.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/eng/native/functions.cmake b/eng/native/functions.cmake
index e1db7dcb5e21c5..89ae649ebd9d58 100644
--- a/eng/native/functions.cmake
+++ b/eng/native/functions.cmake
@@ -443,7 +443,7 @@ endfunction()
function(install_with_stripped_symbols targetName kind destination)
if(NOT CLR_CMAKE_KEEP_NATIVE_SYMBOLS)
strip_symbols(${targetName} symbol_file)
- if (NOT "${symbolFile}" STREQUAL "")
+ if (NOT "${symbol_file}" STREQUAL "")
install_symbol_file(${symbol_file} ${destination} ${ARGN})
endif()
endif()
From ab5994dc96e53b98f6ed136c157c95dc26e1a85c Mon Sep 17 00:00:00 2001
From: Adeel <3840695+am11@users.noreply.github.com>
Date: Tue, 28 Mar 2023 03:42:29 +0300
Subject: [PATCH 06/10] revert static lib change
---
src/mono/mono/metadata/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mono/mono/metadata/CMakeLists.txt b/src/mono/mono/metadata/CMakeLists.txt
index a702c70ec285c0..1c692c9f6f0e1f 100644
--- a/src/mono/mono/metadata/CMakeLists.txt
+++ b/src/mono/mono/metadata/CMakeLists.txt
@@ -9,7 +9,7 @@ target_link_libraries(mono-icall-table PRIVATE monoapi eglib_api)
target_include_directories(mono-icall-table PRIVATE ${PROJECT_BINARY_DIR}/../..
${PROJECT_SOURCE_DIR}/../..
${PROJECT_SOURCE_DIR}/..)
-install_with_stripped_symbols(mono-icall-table TARGETS lib)
+install(TARGETS mono-icall-table LIBRARY)
else()
set(icall_table_sources "icall-table.c")
endif()
From 3c2a67f819d1f19f5dfc8bfb3de4c59baae5bfe4 Mon Sep 17 00:00:00 2001
From: Adeel <3840695+am11@users.noreply.github.com>
Date: Tue, 28 Mar 2023 04:22:44 +0300
Subject: [PATCH 07/10] revert static lib change
---
src/mono/mono/mini/CMakeLists.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mono/mono/mini/CMakeLists.txt b/src/mono/mono/mini/CMakeLists.txt
index 7990a600420fe4..2d39b5dbe266d9 100644
--- a/src/mono/mono/mini/CMakeLists.txt
+++ b/src/mono/mono/mini/CMakeLists.txt
@@ -463,11 +463,11 @@ if(HOST_BROWSER)
# This is the only source file which contains a c++ throw or catch
add_library(mono-wasm-eh-js STATIC llvm-runtime.cpp)
target_link_libraries (mono-wasm-eh-js PRIVATE monoapi eglib_api)
- install_with_stripped_symbols(mono-wasm-eh-js TARGETS lib)
+ install(TARGETS mono-wasm-eh-js LIBRARY)
add_library(mono-wasm-eh-wasm STATIC llvm-runtime.cpp)
target_link_libraries (mono-wasm-eh-wasm PRIVATE monoapi eglib_api)
set_target_properties(mono-wasm-eh-wasm PROPERTIES COMPILE_FLAGS "-fwasm-exceptions")
- install_with_stripped_symbols(mono-wasm-eh-wasm TARGETS lib)
+ install(TARGETS mono-wasm-eh-wasm LIBRARY)
endif()
find_package(Python3 COMPONENTS Interpreter)
From 3db2d8215343e4d579c37a6007b036154e35024e Mon Sep 17 00:00:00 2001
From: Adeel Mujahid <3840695+am11@users.noreply.github.com>
Date: Tue, 28 Mar 2023 21:26:57 +0300
Subject: [PATCH 08/10] Address CR feedback
---
src/mono/mono.proj | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/mono/mono.proj b/src/mono/mono.proj
index 5e24e7ff88bc95..aa3c9e8ca3c41e 100644
--- a/src/mono/mono.proj
+++ b/src/mono/mono.proj
@@ -263,7 +263,7 @@
<_MonoCMakeArgs Include="-DCMAKE_INSTALL_PREFIX="$(MonoObjDir.Replace('\','/'))out""/>
<_MonoCMakeArgs Include="-DCMAKE_INSTALL_LIBDIR=lib"/>
<_MonoCMakeArgs Include="-DCMAKE_BUILD_TYPE=$(Configuration)"/>
- <_MonoCMakeArgs Include="-DCLR_CMAKE_KEEP_NATIVE_SYMBOLS=true" Condition="'$(KeepNativeSymbols)' == 'true' or '$(BuildMonoAOTCrossCompilerOnly)' == 'true'" />
+ <_MonoCMakeArgs Include="-DCLR_CMAKE_KEEP_NATIVE_SYMBOLS=true" Condition="'$(KeepNativeSymbols)' == 'true'" />
<_MonoCMakeArgs Condition="'$(CMakeArgs)' != ''" Include="$(CMakeArgs)"/>
<_MonoCMakeArgs Condition="'$(MonoEnableLLVM)' == 'true'" Include="-DLLVM_PREFIX=$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)" />
<_MonoCMakeArgs Condition="'$(BuildDarwinFrameworks)' == 'true'" Include="-DBUILD_DARWIN_FRAMEWORKS=1" />
@@ -581,8 +581,8 @@
<_MonoCMakeArgs Include="-DMONO_COMPONENTS_RID=$(TargetOS)-$(TargetArchitecture)" />
- <_MonoCMakeArgs Condition="'$(TargetArchitecture)' == 'wasm' or '$(TargetArchitecture)' == 'wasm32'" Include="-DCLR_CMAKE_HOST_ARCH=$(BuildArchitecture)" />
- <_MonoCMakeArgs Condition="'$(TargetArchitecture)' != 'wasm' and '$(TargetArchitecture)' != 'wasm32'" Include="-DCLR_CMAKE_HOST_ARCH=$(TargetArchitecture)" />
+ <_MonoCMakeArgs Condition="'$(TargetArchitecture)' == 'wasm'" Include="-DCLR_CMAKE_HOST_ARCH=$(BuildArchitecture)" />
+ <_MonoCMakeArgs Condition="'$(TargetArchitecture)' != 'wasm'" Include="-DCLR_CMAKE_HOST_ARCH=$(TargetArchitecture)" />
@@ -738,8 +738,8 @@
<_MonoAOTCPPFLAGS Include="-DNVALGRIND" />
-
-
+
+
From 5f0b20ca8f48f87f73f65785a7387b910882a9a1 Mon Sep 17 00:00:00 2001
From: Adeel <3840695+am11@users.noreply.github.com>
Date: Wed, 12 Apr 2023 22:02:14 +0300
Subject: [PATCH 09/10] Address CR feedback
---
src/mono/mono.proj | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/mono/mono.proj b/src/mono/mono.proj
index aa3c9e8ca3c41e..7bd2afd7db899f 100644
--- a/src/mono/mono.proj
+++ b/src/mono/mono.proj
@@ -581,6 +581,14 @@
<_MonoCMakeArgs Include="-DMONO_COMPONENTS_RID=$(TargetOS)-$(TargetArchitecture)" />
+
+
<_MonoCMakeArgs Condition="'$(TargetArchitecture)' == 'wasm'" Include="-DCLR_CMAKE_HOST_ARCH=$(BuildArchitecture)" />
<_MonoCMakeArgs Condition="'$(TargetArchitecture)' != 'wasm'" Include="-DCLR_CMAKE_HOST_ARCH=$(TargetArchitecture)" />
@@ -691,7 +699,9 @@
-
+
+
+
<_MonoAOTCFLAGS Condition="'$(RealTargetArchitecture)' == 'arm64'" Include="-arch arm64" />
From 7c830a7aa406b84d92a033189ca2b6b27c4712cc Mon Sep 17 00:00:00 2001
From: Adeel <3840695+am11@users.noreply.github.com>
Date: Wed, 12 Apr 2023 23:52:59 +0300
Subject: [PATCH 10/10] .
---
src/mono/mono.proj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mono/mono.proj b/src/mono/mono.proj
index 7bd2afd7db899f..346014f4b4c2af 100644
--- a/src/mono/mono.proj
+++ b/src/mono/mono.proj
@@ -700,8 +700,8 @@
+
-
<_MonoAOTCFLAGS Condition="'$(RealTargetArchitecture)' == 'arm64'" Include="-arch arm64" />