Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
bbd925f
wip
pavelsavara Nov 30, 2022
fa5081a
wip
pavelsavara Nov 30, 2022
31964c3
wip
pavelsavara Nov 30, 2022
d261d1b
wip
pavelsavara Nov 30, 2022
2782819
wip
pavelsavara Nov 30, 2022
867e8d8
wip
pavelsavara Nov 30, 2022
87de23e
wip
pavelsavara Nov 30, 2022
2ae0339
fix
pavelsavara Nov 30, 2022
269d7a2
Merge branch 'main' into wasi_native_prep
pavelsavara Dec 1, 2022
2efd28f
provision SDK to WASI_SDK_PATH
pavelsavara Dec 1, 2022
6bffc9d
fix
pavelsavara Dec 1, 2022
83a54e3
wip
pavelsavara Dec 1, 2022
8de88e1
wip
pavelsavara Dec 1, 2022
9382309
Merge branch 'wasi_native_prep' of https://github.com/pavelsavara/run…
pavelsavara Dec 1, 2022
dd71877
Merge branch 'main' into wasi_native_prep
pavelsavara Dec 5, 2022
9b36c3b
fix after merge
pavelsavara Dec 5, 2022
e67bb29
Merge branch 'main' into wasi_native_prep
pavelsavara Dec 5, 2022
2a3d7ea
wip
pavelsavara Dec 5, 2022
f213ab6
feedback
pavelsavara Dec 5, 2022
97687bc
Merge branch 'main' into wasi_native_prep
pavelsavara Dec 6, 2022
61f1276
add wasi_wasm container
pavelsavara Dec 6, 2022
288199b
feedback
pavelsavara Dec 6, 2022
db57540
wip
pavelsavara Dec 6, 2022
0434363
fix
pavelsavara Dec 6, 2022
8a3c728
container
pavelsavara Dec 6, 2022
d494bec
fix
pavelsavara Dec 7, 2022
461eeda
Merge branch 'main' into wasi_native_prep
pavelsavara Dec 7, 2022
b4f9759
Merge remote-tracking branch 'origin/main' into wasi_native_prep
radical Dec 8, 2022
d039ca6
Merge remote-tracking branch 'origin/main' into wasi_native_prep
radical Dec 12, 2022
f80e897
wasm-library-tests: re-enable tests
radical Dec 12, 2022
596689a
Add back wasm linker-tests job
radical Dec 12, 2022
033164b
getrusage isn't available
radical Dec 12, 2022
86a1024
Merge remote-tracking branch 'origin/main' into wasi_native_prep
radical Dec 12, 2022
4947cf8
Merge branch 'main' into wasi_native_prep
pavelsavara Dec 14, 2022
a9fd1ad
fix
pavelsavara Dec 14, 2022
39e58f2
Merge branch 'main' into wasi_native_prep
pavelsavara Dec 16, 2022
bd8fb9e
Update eng/pipelines/common/templates/pipeline-with-resources.yml
pavelsavara Dec 19, 2022
9bb5faf
Update src/libraries/System.Private.CoreLib/src/System/Runtime/Intero…
pavelsavara Dec 19, 2022
d4ba0b2
Update src/libraries/System.Private.CoreLib/src/System/Threading/Over…
pavelsavara Dec 19, 2022
829ae38
Update src/mono/Directory.Build.props
pavelsavara Dec 19, 2022
d640c98
Update Directory.Build.props
pavelsavara Dec 19, 2022
1dc21c6
Update src/mono/cmake/configure.cmake
pavelsavara Dec 19, 2022
0d79ba5
Merge branch 'main' into wasi_native_prep
pavelsavara Dec 20, 2022
17f9043
feedback
pavelsavara Dec 20, 2022
92f9bc8
wip
pavelsavara Dec 20, 2022
9d26f1d
wip
pavelsavara Dec 20, 2022
8026107
feedback
pavelsavara Dec 20, 2022
609c42e
Merge branch 'main' into wasi_native_prep
pavelsavara Dec 21, 2022
99065d9
feedback
pavelsavara Dec 21, 2022
2700e30
Merge branch 'main' into wasi_native_prep
pavelsavara Dec 26, 2022
f53ba77
Merge branch 'main' into wasi_native_prep
pavelsavara Jan 2, 2023
b172a04
Merge branch 'main' into wasi_native_prep
pavelsavara Jan 3, 2023
edfe354
feedback
pavelsavara Jan 3, 2023
f7f8cb9
Merge branch 'main' into wasi_native_prep
pavelsavara Jan 6, 2023
3a273db
fix merge
pavelsavara Jan 6, 2023
c1b834d
fix
pavelsavara Jan 6, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
wip
  • Loading branch information
pavelsavara committed Nov 30, 2022
commit 31964c3467174eb219d4077044730a1f6770ff6d
9 changes: 8 additions & 1 deletion src/mono/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,17 @@
<!-- Directory to provision and use emscripten if EMSDK_PATH env variable is not set -->
<PropertyGroup Condition="'$(TargetsBrowser)' == 'true'">
<ProvisionEmscriptenDir>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'wasm', 'emsdk'))</ProvisionEmscriptenDir>
<ShouldProvisionEmscripten Condition="'$(OS)' == 'Windows_NT' and '$(TargetArchitecture)' == 'wasm' and '$(EMSDK_PATH)' == '' and !Exists('$(ProvisionEmscriptenDir)')">true</ShouldProvisionEmscripten>
<ShouldProvisionEmscripten Condition="'$(EMSDK_PATH)' == '' and !Exists('$(ProvisionEmscriptenDir)')">true</ShouldProvisionEmscripten>
<EMSDK_PATH Condition="Exists('$(ProvisionEmscriptenDir)') and '$(EMSDK_PATH)' == ''">$(ProvisionEmscriptenDir.Replace('\', '/'))</EMSDK_PATH>
</PropertyGroup>

<!-- Directory to provision and use WASI sdk if WASI_SDK_PATH env variable is not set -->
<PropertyGroup Condition="'$(TargetsWasi)' == 'true'">
<ProvisionWasiSdkDir>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'wasi', 'wasi-sdk'))</ProvisionWasiSdkDir>
<WASI_SDK_PATH Condition="Exists('$(ProvisionWasiSdkDir)') and '$(WASI_SDK_PATH)' == ''">$(ProvisionWasiSdkDir.Replace('\', '/'))</WASI_SDK_PATH>
<ShouldProvisionWasiSdk Condition="'$(WASI_SDK_PATH)' == '' and !Exists('$(ProvisionWasiSdkDir)')">true</ShouldProvisionWasiSdk>
</PropertyGroup>

<PropertyGroup>
<PlatformConfigPathPart>$(TargetOS).$(Platform).$(Configuration)</PlatformConfigPathPart>
<RuntimeBinDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'mono', '$(TargetOS).$(Platform).$(Configuration)'))</RuntimeBinDir>
Expand Down
30 changes: 25 additions & 5 deletions src/mono/mono.proj
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@
<Target Name="BuildMonoRuntime">
<ItemGroup>
<_MonoCMakeArgs Condition="'$(_MonoUseNinja)' == 'true'" Include="-G Ninja"/>
<_MonoCMakeArgs Include="-DCMAKE_INSTALL_PREFIX=&quot;$(MonoObjDir)out&quot;"/>
<_MonoCMakeArgs Include="-DCMAKE_INSTALL_PREFIX=&quot;$(MonoObjDir.Replace('\','/'))out&quot;"/>
<_MonoCMakeArgs Include="-DCMAKE_INSTALL_LIBDIR=lib"/>
<_MonoCMakeArgs Include="-DCMAKE_BUILD_TYPE=$(Configuration)"/>
<_MonoCMakeArgs Condition="'$(CMakeArgs)' != ''" Include="$(CMakeArgs)"/>
Expand Down Expand Up @@ -384,30 +384,50 @@
<_MonoBuildEnv Condition="'$(BuildArchitecture)' == 'arm64'" Include="arch -arch arm64" />
</ItemGroup>
<!-- WASM specific options -->
<PropertyGroup Condition="'$(TargetsBrowser)' == 'true'">
<PropertyGroup Condition="'$(TargetsBrowser)' == 'true' or '$(TargetsWasi)' == 'true'">
<_MonoMinimal Condition="'$(Configuration)' == 'Release'">,debugger_agent,log_dest</_MonoMinimal>
<_MonoMinimal Condition="'$(Configuration)' == 'Release' and '$(MonoEnableAssertMessages)' != 'true'">$(_MonoMinimal),assert_messages</_MonoMinimal>
<_MonoMinimal Condition="'$(MonoWasmThreads)' != 'true'">$(_MonoMinimal),threads</_MonoMinimal>
<_MonoMinimal Condition="'$(MonoWasmThreadsNoUser)' == 'true'">$(_MonoMinimal),wasm_user_threads</_MonoMinimal>
</PropertyGroup>
<ItemGroup Condition="'$(TargetsBrowser)' == 'true'">
<ItemGroup Condition="'$(TargetsBrowser)' == 'true' or '$(TargetsWasi)' == 'true'">
<_MonoCMakeArgs Include="-DENABLE_MINIMAL=jit,sgen_major_marksweep_conc,sgen_split_nursery,sgen_gc_bridge,sgen_toggleref,sgen_debug_helpers,sgen_binary_protocol,logging,interpreter,qcalls$(_MonoMinimal)"/>
<_MonoCMakeArgs Include="-DENABLE_INTERP_LIB=1"/>
<_MonoCMakeArgs Include="-DDISABLE_ICALL_TABLES=1"/>
<_MonoCMakeArgs Include="-DENABLE_ICALL_EXPORT=1"/>
<_MonoCMakeArgs Include="-DENABLE_LAZY_GC_THREAD_CREATION=1"/>
<_MonoCMakeArgs Include="-DENABLE_LLVM_RUNTIME=1"/>
<_MonoCMakeArgs Include="-DEMSCRIPTEN_SYSTEM_PROCESSOR=wasm"/>
<_MonoCFLAGS Include="-fexceptions"/>
<_MonoCFLAGS Condition="'$(MonoWasmThreads)' == 'true'" Include="-pthread"/>
<_MonoCFLAGS Condition="'$(MonoWasmThreads)' == 'true'" Include="-D_GNU_SOURCE=1" />
<_MonoCXXFLAGS Include="-fexceptions"/>
<_MonoCXXFLAGS Condition="'$(MonoWasmThreads)' == 'true'" Include="-pthread"/>
<_MonoCXXFLAGS Condition="'$(MonoWasmThreads)' == 'true'" Include="-D_GNU_SOURCE=1" />
</ItemGroup>
<!-- Browser specific options -->
<ItemGroup Condition="'$(TargetsBrowser)' == 'true'">
<_MonoCMakeArgs Include="-DENABLE_LLVM_RUNTIME=1"/>
<_MonoCMakeArgs Include="-DEMSCRIPTEN_SYSTEM_PROCESSOR=wasm"/>
<_MonoCFLAGS Condition="'$(MonoWasmThreads)' == 'true'" Include="$(EscapedQuoteW)-I$([MSBuild]::NormalizePath('$(PkgMicrosoft_NETCore_Runtime_ICU_Transport)', 'runtimes', 'browser-wasm-threads', 'native', 'include'))$(EscapedQuoteW)"/>

<_MonoCFLAGS Condition="'$(MonoWasmThreads)' != 'true'" Include="$(EscapedQuoteW)-I$([MSBuild]::NormalizePath('$(PkgMicrosoft_NETCore_Runtime_ICU_Transport)', 'runtimes', 'browser-wasm', 'native', 'include'))$(EscapedQuoteW)"/>
</ItemGroup>
<!-- WASI specific options -->
<ItemGroup Condition="'$(TargetsWasi)' == 'true'">
<!-- TODOWASI
use $(CrossToolchainFile) and eng/common/cross/toolchain.cmake ?
sockets,eventpipe, DENABLE_LLVM_RUNTIME
-->
<_MonoCFLAGS Include="$(EscapedQuoteW)-I$([MSBuild]::NormalizePath('$(MonoProjectRoot)', 'wasi', 'include').Replace('\','/'))$(EscapedQuoteW)"/>
<_MonoCFLAGS Include="$(EscapedQuoteW)-I$([MSBuild]::NormalizePath('$(MonoProjectRoot)', 'wasi', 'mono-include').Replace('\','/'))$(EscapedQuoteW)"/>
<_MonoCFLAGS Include="$(EscapedQuoteW)-I$([MSBuild]::NormalizePath('$(RepoRoot)', 'src', 'native', 'public').Replace('\','/'))$(EscapedQuoteW)"/>
<_MonoCFLAGS Include="$(EscapedQuoteW)-I$([MSBuild]::NormalizePath('$(MonoProjectRoot)', 'mono', 'eglib').Replace('\','/'))$(EscapedQuoteW)"/>
<_MonoCFLAGS Include="-D_WASI_EMULATED_PROCESS_CLOCKS"/>
<_MonoCFLAGS Include="-D_WASI_EMULATED_SIGNAL"/>
<_MonoCFLAGS Include="-D_WASI_EMULATED_MMAN"/>
<!-- TODOWASI wasi-wasm nuget instead of browser-wasm -->
<_MonoCFLAGS Condition="'$(MonoWasmThreads)' == 'true'" Include="$(EscapedQuoteW)-I$([MSBuild]::NormalizePath('$(PkgMicrosoft_NETCore_Runtime_ICU_Transport)', 'runtimes', 'browser-wasm-threads', 'native', 'include').Replace('\','/'))$(EscapedQuoteW)"/>
<_MonoCFLAGS Condition="'$(MonoWasmThreads)' != 'true'" Include="$(EscapedQuoteW)-I$([MSBuild]::NormalizePath('$(PkgMicrosoft_NETCore_Runtime_ICU_Transport)', 'runtimes', 'browser-wasm', 'native', 'include').Replace('\','/'))$(EscapedQuoteW)"/>
</ItemGroup>
<!-- iOS/tvOS specific options -->
<PropertyGroup Condition="'$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true'">
<_MonoCCOption>CC="$(XcodeDir)/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"</_MonoCCOption>
Expand Down
22 changes: 17 additions & 5 deletions src/native/libs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ else ()
set(STATIC_LIB_DESTINATION .)
endif ()

if (CLR_CMAKE_TARGET_UNIX OR CLR_CMAKE_TARGET_BROWSER)
if (CLR_CMAKE_TARGET_UNIX OR CLR_CMAKE_TARGET_BROWSER OR CLR_CMAKE_TARGET_WASI)
set(CMAKE_MACOSX_RPATH ON)
if (CLR_CMAKE_TARGET_MACCATALYST OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
set(CMAKE_BUILD_WITH_INSTALL_NAME_DIR ON)
Expand All @@ -48,11 +48,23 @@ if (CLR_CMAKE_TARGET_UNIX OR CLR_CMAKE_TARGET_BROWSER)
add_compile_options(-I${CMAKE_CURRENT_SOURCE_DIR}/Common)
add_compile_options(-I${CMAKE_CURRENT_BINARY_DIR}/Common)

if (CLR_CMAKE_TARGET_BROWSER)
if (CLR_CMAKE_TARGET_BROWSER OR CLR_CMAKE_TARGET_WASI)
set(GEN_SHARED_LIB 0)
set(STATIC_LIB_DESTINATION .)
endif ()

if (CLR_CMAKE_TARGET_WASI)
add_compile_options(-I${CLR_REPO_ROOT_DIR}/src/mono/wasi/include/)
add_compile_options(-I${CLR_REPO_ROOT_DIR}/src/mono/wasi/libs-include/)
add_compile_options(-Wno-unused-variable)
add_compile_options(-Wno-unused-parameter)
add_compile_options(-Wno-gnu-statement-expression)
add_compile_options(-D_WASI_EMULATED_PROCESS_CLOCKS)
add_compile_options(-D_WASI_EMULATED_SIGNAL)
add_compile_options(-D_WASI_EMULATED_MMAN)
add_link_options(-Wl,-z,stack-size=1048576,--initial-memory=5242880,--max-memory=52428800,-lwasi-emulated-process-clocks,-lwasi-emulated-signal,-lwasi-emulated-mman)
endif ()

if (CLR_CMAKE_TARGET_TVOS)
# with -fembed-bitcode passing -headerpad_max_install_names is not allowed so remove it from the CMake flags
string(REPLACE "-Wl,-headerpad_max_install_names" "" CMAKE_C_LINK_FLAGS ${CMAKE_C_LINK_FLAGS})
Expand Down Expand Up @@ -133,10 +145,10 @@ endif ()

add_subdirectory(System.IO.Compression.Native)

if (CLR_CMAKE_TARGET_UNIX OR CLR_CMAKE_TARGET_BROWSER)
if (CLR_CMAKE_TARGET_UNIX OR CLR_CMAKE_TARGET_BROWSER OR CLR_CMAKE_TARGET_WASI)
include(configure.cmake)

if (NOT CLR_CMAKE_TARGET_BROWSER AND NOT CLR_CMAKE_TARGET_MACCATALYST AND NOT CLR_CMAKE_TARGET_IOS AND NOT CLR_CMAKE_TARGET_TVOS AND NOT CLR_CMAKE_TARGET_ANDROID)
if (NOT CLR_CMAKE_TARGET_BROWSER AND NOT CLR_CMAKE_TARGET_WASI AND NOT CLR_CMAKE_TARGET_MACCATALYST AND NOT CLR_CMAKE_TARGET_IOS AND NOT CLR_CMAKE_TARGET_TVOS AND NOT CLR_CMAKE_TARGET_ANDROID)
add_subdirectory(System.IO.Ports.Native)
endif ()

Expand All @@ -154,7 +166,7 @@ if (CLR_CMAKE_TARGET_UNIX OR CLR_CMAKE_TARGET_BROWSER)

add_subdirectory(System.Native)

if (CLR_CMAKE_TARGET_BROWSER)
if (CLR_CMAKE_TARGET_BROWSER OR CLR_CMAKE_TARGET_WASI)
# skip for now
elseif (CLR_CMAKE_TARGET_MACCATALYST)
add_subdirectory(System.Net.Security.Native)
Expand Down
4 changes: 2 additions & 2 deletions src/native/libs/System.Globalization.Native/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,11 @@ if (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_MACCATALYST OR CLR_CMAKE_TARGET_IOS
endif()

# time zone names are filtered out of icu data for the browser and associated functionality is disabled
if (NOT CLR_CMAKE_TARGET_BROWSER)
if (NOT CLR_CMAKE_TARGET_BROWSER AND NOT CLR_CMAKE_TARGET_WASI)
set(NATIVEGLOBALIZATION_SOURCES ${NATIVEGLOBALIZATION_SOURCES} pal_timeZoneInfo.c)
endif()

if (NOT GEN_SHARED_LIB AND NOT CLR_CMAKE_TARGET_MACCATALYST AND NOT CLR_CMAKE_TARGET_IOS AND NOT CLR_CMAKE_TARGET_TVOS AND NOT CLR_CMAKE_TARGET_ANDROID AND NOT CLR_CMAKE_TARGET_BROWSER)
if (NOT GEN_SHARED_LIB AND NOT CLR_CMAKE_TARGET_MACCATALYST AND NOT CLR_CMAKE_TARGET_IOS AND NOT CLR_CMAKE_TARGET_TVOS AND NOT CLR_CMAKE_TARGET_ANDROID AND NOT CLR_CMAKE_TARGET_BROWSER AND NOT CLR_CMAKE_TARGET_WASI)
set(NATIVEGLOBALIZATION_SOURCES ${NATIVEGLOBALIZATION_SOURCES} entrypoints.c)
endif()

Expand Down