diff --git a/eng/Subsets.props b/eng/Subsets.props index 135e0e59038e4d..edaaefcfa75559 100644 --- a/eng/Subsets.props +++ b/eng/Subsets.props @@ -39,6 +39,7 @@ clr+mono+libs+installer mono+libs+installer + mono+libs @@ -66,7 +67,7 @@ - Mono + Mono Mono CoreCLR diff --git a/eng/native/build-commons.sh b/eng/native/build-commons.sh index 9c93eb9bd81e55..425ed7ddb0ea95 100755 --- a/eng/native/build-commons.sh +++ b/eng/native/build-commons.sh @@ -151,8 +151,13 @@ build_native() popd else - echo "Executing cmake --build \"$intermediatesDir\" --target install -j $__NumProc" - cmake --build "$intermediatesDir" --target install -j "$__NumProc" + cmake_command=cmake + if [[ "$build_arch" == "wasm" ]]; then + cmake_command="emcmake $cmake_command" + fi + + echo "Executing $cmake_command --build \"$intermediatesDir\" --target install -j $__NumProc" + $cmake_command --build "$intermediatesDir" --target install -j "$__NumProc" fi local exit_code="$?" diff --git a/eng/native/configureplatform.cmake b/eng/native/configureplatform.cmake index b366c6e129d9a4..e28bad6bd8d994 100644 --- a/eng/native/configureplatform.cmake +++ b/eng/native/configureplatform.cmake @@ -166,7 +166,8 @@ if(CLR_CMAKE_HOST_OS STREQUAL Windows) endif(CLR_CMAKE_HOST_OS STREQUAL Windows) if(CLR_CMAKE_HOST_OS STREQUAL Emscripten) - set(CLR_CMAKE_HOST_ARCH_WASM 1) + #set(CLR_CMAKE_HOST_UNIX 1) # TODO: this should be reenabled but it activates a bunch of additional compiler flags in configurecompiler.cmake + set(CLR_CMAKE_HOST_UNIX_WASM 1) endif(CLR_CMAKE_HOST_OS STREQUAL Emscripten) #-------------------------------------------- @@ -196,6 +197,9 @@ elseif(CLR_CMAKE_HOST_UNIX_AMD64) elseif(CLR_CMAKE_HOST_UNIX_X86) set(CLR_CMAKE_HOST_ARCH_I386 1) set(CLR_CMAKE_HOST_ARCH "x86") +elseif(CLR_CMAKE_HOST_UNIX_WASM) + set(CLR_CMAKE_HOST_ARCH_WASM 1) + set(CLR_CMAKE_HOST_ARCH "wasm") elseif(WIN32) # CLR_CMAKE_HOST_ARCH is passed in as param to cmake if (CLR_CMAKE_HOST_ARCH STREQUAL x64) @@ -237,6 +241,8 @@ if (CLR_CMAKE_TARGET_ARCH STREQUAL x64) set(CLR_CMAKE_TARGET_ARCH_ARM 1) set(CLR_CMAKE_TARGET_ARCH_ARMV7L 1) set(ARM_SOFTFP 1) + elseif(CLR_CMAKE_TARGET_ARCH STREQUAL wasm) + set(CLR_CMAKE_TARGET_ARCH_WASM 1) else() clr_unknown_arch() endif() @@ -306,6 +312,12 @@ if(CLR_CMAKE_TARGET_OS STREQUAL SunOS) set(CLR_CMAKE_TARGET_SUNOS 1) endif(CLR_CMAKE_TARGET_OS STREQUAL SunOS) +if(CLR_CMAKE_TARGET_OS STREQUAL Emscripten) + set(CLR_CMAKE_TARGET_UNIX 1) + set(CLR_CMAKE_TARGET_LINUX 1) + set(CLR_CMAKE_TARGET_EMSCRIPTEN 1) +endif(CLR_CMAKE_TARGET_OS STREQUAL Emscripten) + if(CLR_CMAKE_TARGET_UNIX) if(CLR_CMAKE_TARGET_ARCH STREQUAL x64) set(CLR_CMAKE_TARGET_UNIX_AMD64 1) @@ -317,6 +329,8 @@ if(CLR_CMAKE_TARGET_UNIX) set(CLR_CMAKE_TARGET_UNIX_ARM64 1) elseif(CLR_CMAKE_TARGET_ARCH STREQUAL x86) set(CLR_CMAKE_TARGET_UNIX_X86 1) + elseif(CLR_CMAKE_TARGET_ARCH STREQUAL wasm) + set(CLR_CMAKE_TARGET_UNIX_WASM 1) else() clr_unknown_arch() endif() @@ -343,7 +357,7 @@ else() endif() endif() -if(NOT CLR_CMAKE_HOST_ARCH_WASM) +if(NOT CLR_CMAKE_TARGET_EMSCRIPTEN) # Skip check_pie_supported call on Android as ld from llvm toolchain with NDK API level 21 # complains about missing linker flag `-no-pie` (while level 28's ld does support this flag, # but since we know that PIE is supported, we can safely skip this redundant check). @@ -363,7 +377,7 @@ if(NOT CLR_CMAKE_HOST_ARCH_WASM) endif(NOT CLR_CMAKE_TARGET_ANDROID) set(CMAKE_POSITION_INDEPENDENT_CODE ON) -endif(NOT CLR_CMAKE_HOST_ARCH_WASM) +endif(NOT CLR_CMAKE_TARGET_EMSCRIPTEN) string(TOLOWER "${CMAKE_BUILD_TYPE}" LOWERCASE_CMAKE_BUILD_TYPE) if(LOWERCASE_CMAKE_BUILD_TYPE STREQUAL debug) diff --git a/eng/native/configuretools.cmake b/eng/native/configuretools.cmake index 653c3152a3406b..b63ab0f1a66d5a 100644 --- a/eng/native/configuretools.cmake +++ b/eng/native/configuretools.cmake @@ -6,7 +6,7 @@ if (CMAKE_C_COMPILER MATCHES "-?[0-9]+(\.[0-9]+)?$") set(CLR_CMAKE_COMPILER_FILE_NAME_VERSION "${CMAKE_MATCH_0}") endif() -if(NOT WIN32) +if(NOT WIN32 AND NOT CLR_CMAKE_TARGET_ARCH_WASM) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") if(APPLE) set(TOOLSET_PREFIX "") diff --git a/eng/native/gen-buildsys.sh b/eng/native/gen-buildsys.sh index 4e39d16e8243b4..f27bb33e357785 100755 --- a/eng/native/gen-buildsys.sh +++ b/eng/native/gen-buildsys.sh @@ -87,6 +87,10 @@ if [[ "$scan_build" == "ON" && -n "$SCAN_BUILD_COMMAND" ]]; then cmake_command="$SCAN_BUILD_COMMAND $cmake_command" fi +if [[ "$build_arch" == "wasm" ]]; then + cmake_command="emcmake $cmake_command" +fi + # Include CMAKE_USER_MAKE_RULES_OVERRIDE as uninitialized since it will hold its value in the CMake cache otherwise can cause issues when branch switching $cmake_command \ -G "$generator" \ diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 206151178b5fab..fe0765b81050e3 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -169,7 +169,7 @@ jobs: archType: wasm platform: WebAssembly_wasm container: - image: ubuntu-16.04-20200401182342-fe8b85d + image: ubuntu-18.04-webassembly-20200409132031-f70ea41 registry: mcr jobParameters: runtimeFlavor: ${{ parameters.runtimeFlavor }} diff --git a/eng/pipelines/libraries/base-job.yml b/eng/pipelines/libraries/base-job.yml index c1d343e6b8da56..0208840c23ed1d 100644 --- a/eng/pipelines/libraries/base-job.yml +++ b/eng/pipelines/libraries/base-job.yml @@ -63,6 +63,7 @@ jobs: - ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubGroup, ''), eq(parameters.archType, 'arm')) }}: - _runtimeOSArg: /p:RuntimeOS=ubuntu.16.04 + # force a value for OS when cross-building WebAssembly - ${{ if eq(parameters.osGroup, 'WebAssembly') }}: - _runtimeOSArg: -os ${{ parameters.osGroup }} @@ -107,10 +108,6 @@ jobs: - _runtimeArtifactsPathArg: ' /p:RuntimeArtifactsPath=$(_runtimeDownloadPath)' - _testRunNamePrefixSuffix: $(runtimeFlavorName)_${{ parameters.liveRuntimeBuildConfig }} - # WebAssembly uses linux implementation detail - - ${{ if eq(parameters.osGroup, 'WebAssembly') }}: - - _runtimeArtifactName: 'CoreLib_Linux_x64_${{ parameters.liveRuntimeBuildConfig }}' - # Windows variables - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: - _runtimeOSArg: /p:RuntimeOS=win10 diff --git a/eng/pipelines/libraries/build-job.yml b/eng/pipelines/libraries/build-job.yml index 6fa4b12c852e69..3a1af6d9379a97 100644 --- a/eng/pipelines/libraries/build-job.yml +++ b/eng/pipelines/libraries/build-job.yml @@ -49,21 +49,18 @@ jobs: ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: dependsOn: - - ${{ if ne(parameters.osGroup, 'WebAssembly') }}: - # Use corelib dependencies for coreclr and non test builds - - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), eq(parameters.testScope, '')) }}: - - ${{ format('coreclr_corelib_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }} - - ${{ if or(ne(parameters.runtimeFlavor, 'coreclr'), ne(parameters.testScope, '')) }}: - - ${{ format('{0}_product_build_{1}{2}_{3}_{4}', parameters.runtimeFlavor, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }} - - ${{ if eq(parameters.osGroup, 'WebAssembly') }}: - - ${{ format('coreclr_corelib_build_{1}{2}_{3}_{4}', parameters.runtimeFlavor, 'linux', parameters.osSubgroup, 'x64', parameters.liveRuntimeBuildConfig) }} + # Use corelib dependencies for coreclr and non test builds + - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), eq(parameters.testScope, '')) }}: + - ${{ format('coreclr_corelib_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }} + - ${{ if or(ne(parameters.runtimeFlavor, 'coreclr'), ne(parameters.testScope, '')) }}: + - ${{ format('{0}_product_build_{1}{2}_{3}_{4}', parameters.runtimeFlavor, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }} variables: - _subset: libs - _addtionalBuildArguments: '' - ${{ parameters.variables }} - ${{ if eq(parameters.osGroup, 'WebAssembly') }}: - - EMSDK_PATH: $(Build.BinariesDirectory)/emsdk + - EMSDK_PATH: /usr/local/emscripten - ${{ if eq(parameters.runTests, true) }}: - _subset: libs+libs.tests - _addtionalBuildArguments: /p:ArchiveTests=true @@ -80,15 +77,6 @@ jobs: ln -s /usr/local/opt/openssl/lib/pkgconfig/openssl.pc /usr/local/lib/pkgconfig/ displayName: Install Build Dependencies - - ${{ if eq(parameters.osGroup, 'WebAssembly') }}: - - script: | - EMSCRIPTEN_VERSION=1.38.47 - git clone https://github.com/emscripten-core/emsdk.git $(EMSDK_PATH) - cd $(EMSDK_PATH) - ./emsdk install ${EMSCRIPTEN_VERSION}-upstream - ./emsdk activate --embedded ${EMSCRIPTEN_VERSION}-upstream - displayName: Install Emscripten - - ${{ if eq(parameters.isOfficialBuild, true) }}: - template: /eng/pipelines/common/restore-internal-tools.yml parameters: diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml index 14c18d4a36c119..40f952dac00522 100644 --- a/eng/pipelines/mono/templates/build-job.yml +++ b/eng/pipelines/mono/templates/build-job.yml @@ -74,6 +74,13 @@ jobs: - ${{ if eq(parameters.osGroup, 'Android') }}: - name: osOverride value: -os Android + - ${{ if eq(parameters.osGroup, 'WebAssembly') }}: + - name: EMSDK_PATH + value: /usr/local/emscripten + - name: archType + value: wasm + - name: osOverride + value: '-os WebAssembly' - ${{ parameters.variables }} steps: diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index cded9f4807e80d..9e90f79a461569 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -266,6 +266,7 @@ jobs: - Linux_arm - Linux_arm64 - Linux_musl_x64 + - WebAssembly_wasm # - Linux_musl_arm64 - Windows_NT_x64 # - Windows_NT_x86 @@ -302,6 +303,7 @@ jobs: - Linux_arm - Linux_arm64 - Linux_musl_x64 + - WebAssembly_wasm # - Linux_musl_arm64 - Windows_NT_x64 # - Windows_NT_x86 @@ -420,6 +422,7 @@ jobs: # - iOS_arm # https://github.com/dotnet/runtime/issues/34465 - iOS_arm64 - iOS_x64 + - WebAssembly_wasm jobParameters: liveRuntimeBuildConfig: release @@ -438,6 +441,7 @@ jobs: # - iOS_arm # https://github.com/dotnet/runtime/issues/34465 - iOS_arm64 - iOS_x64 + - WebAssembly_wasm jobParameters: liveRuntimeBuildConfig: debug @@ -449,7 +453,6 @@ jobs: jobTemplate: /eng/pipelines/libraries/build-job.yml buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} platforms: - - WebAssembly_wasm - ${{ if eq(variables['isFullMatrix'], false) }}: - Windows_NT_x86 jobParameters: diff --git a/src/libraries/Native/Unix/CMakeLists.txt b/src/libraries/Native/Unix/CMakeLists.txt index 3efe849feeeb26..76742dd715f755 100644 --- a/src/libraries/Native/Unix/CMakeLists.txt +++ b/src/libraries/Native/Unix/CMakeLists.txt @@ -64,6 +64,9 @@ elseif (CLR_CMAKE_TARGET_ARCH_I386) add_definitions(-DTARGET_32BIT=1) add_definitions(-DTARGET_X86) add_definitions(-D_FILE_OFFSET_BITS=64) +elseif (CLR_CMAKE_TARGET_ARCH_WASM) + add_definitions(-DTARGET_32BIT=1) + add_definitions(-DTARGET_WASM) elseif (CLR_CMAKE_TARGET_ARCH_ARM64) add_definitions(-DTARGET_64BIT=1) add_definitions(-DTARGET_ARM64) diff --git a/src/libraries/Native/Unix/System.IO.Compression.Native/CMakeLists.txt b/src/libraries/Native/Unix/System.IO.Compression.Native/CMakeLists.txt index 1cd9ca778923a2..3315941e1acebc 100644 --- a/src/libraries/Native/Unix/System.IO.Compression.Native/CMakeLists.txt +++ b/src/libraries/Native/Unix/System.IO.Compression.Native/CMakeLists.txt @@ -1,6 +1,6 @@ project(System.IO.Compression.Native C) -if (CLR_CMAKE_TARGET_WASM) +if (CLR_CMAKE_TARGET_ARCH_WASM) add_definitions(-s USE_ZLIB) elseif (CLR_CMAKE_TARGET_ANDROID) # need special case here since we want to link against libz.so but find_package() would resolve libz.a diff --git a/src/libraries/Native/Unix/System.Native/CMakeLists.txt b/src/libraries/Native/Unix/System.Native/CMakeLists.txt index 698cf37a51e178..2c3da0decb9fd8 100644 --- a/src/libraries/Native/Unix/System.Native/CMakeLists.txt +++ b/src/libraries/Native/Unix/System.Native/CMakeLists.txt @@ -30,7 +30,7 @@ else () set(NATIVE_SOURCES ${NATIVE_SOURCES} pal_console.c) endif () -if (CLR_CMAKE_TARGET_LINUX) +if (CLR_CMAKE_TARGET_LINUX AND NOT CLR_CMAKE_TARGET_ARCH_WASM) set(NATIVE_SOURCES ${NATIVE_SOURCES} pal_networkchange.c) if (!HAVE_LINUX_RTNETLINK_H) diff --git a/src/libraries/Native/Unix/System.Native/pal_runtimeinformation.c b/src/libraries/Native/Unix/System.Native/pal_runtimeinformation.c index 16ae31faa84eb1..ac83f78656a982 100644 --- a/src/libraries/Native/Unix/System.Native/pal_runtimeinformation.c +++ b/src/libraries/Native/Unix/System.Native/pal_runtimeinformation.c @@ -51,7 +51,7 @@ int32_t SystemNative_GetOSArchitecture() return ARCH_ARM64; #elif defined(TARGET_AMD64) return ARCH_X64; -#elif defined(TARGET_X86) +#elif defined(TARGET_X86) || defined(TARGET_WASM) // TODO: add arch for WASM return ARCH_X86; #else #error Unidentified Architecture @@ -71,7 +71,7 @@ int32_t SystemNative_GetProcessArchitecture() return ARCH_ARM64; #elif defined(TARGET_AMD64) return ARCH_X64; -#elif defined(TARGET_X86) +#elif defined(TARGET_X86) || defined(TARGET_WASM) // TODO: add arch for WASM return ARCH_X86; #else #error Unidentified Architecture diff --git a/src/libraries/Native/Unix/configure.cmake b/src/libraries/Native/Unix/configure.cmake index 5538a6d98f1fa9..4846ab0bdc0720 100644 --- a/src/libraries/Native/Unix/configure.cmake +++ b/src/libraries/Native/Unix/configure.cmake @@ -10,6 +10,8 @@ include(CheckTypeSize) if (CLR_CMAKE_TARGET_ANDROID) set(PAL_UNIX_NAME \"ANDROID\") +elseif (CLR_CMAKE_TARGET_ARCH_WASM) + set(PAL_UNIX_NAME \"WEBASSEMBLY\") elseif (CLR_CMAKE_TARGET_LINUX) set(PAL_UNIX_NAME \"LINUX\") elseif (CLR_CMAKE_TARGET_OSX) @@ -28,8 +30,6 @@ elseif (CLR_CMAKE_TARGET_FREEBSD) set(CMAKE_REQUIRED_INCLUDES ${CROSS_ROOTFS}/usr/local/include) elseif (CLR_CMAKE_TARGET_NETBSD) set(PAL_UNIX_NAME \"NETBSD\") -elseif (CLR_CMAKE_TARGET_ARCH_WASM) - set(PAL_UNIX_NAME \"WEBASSEMBLY\") else () message(FATAL_ERROR "Unknown platform. Cannot define PAL_UNIX_NAME, used by RuntimeInformation.") endif () @@ -839,7 +839,7 @@ set (CMAKE_REQUIRED_LIBRARIES ${PREVIOUS_CMAKE_REQUIRED_LIBRARIES}) set (HAVE_INOTIFY 0) if (HAVE_INOTIFY_INIT AND HAVE_INOTIFY_ADD_WATCH AND HAVE_INOTIFY_RM_WATCH) set (HAVE_INOTIFY 1) -elseif (CLR_CMAKE_TARGET_LINUX) +elseif (CLR_CMAKE_TARGET_LINUX AND NOT CLR_CMAKE_TARGET_ARCH_WASM) message(FATAL_ERROR "Cannot find inotify functions on a Linux platform.") endif() diff --git a/src/libraries/Native/build-native.sh b/src/libraries/Native/build-native.sh index 0bc559acc37298..1e8faa998b7cd6 100755 --- a/src/libraries/Native/build-native.sh +++ b/src/libraries/Native/build-native.sh @@ -49,10 +49,13 @@ source "$__RepoRootDir"/eng/native/build-commons.sh if [[ "$__BuildArch" == wasm ]]; then if [[ -z "$EMSDK_PATH" ]]; then - echo "Error: Should set EMSDK_PATH environment variable pointing to emsdk root." + echo "Error: You need to set the EMSDK_PATH environment variable pointing to the emscripten SDK root." exit 1 fi source "$EMSDK_PATH"/emsdk_env.sh + + export CLR_CC=$(which emcc) + export CLR_CXX=$(which em++) elif [[ "$__TargetOS" == iOS ]]; then # nothing to do here true diff --git a/src/mono/Directory.Build.props b/src/mono/Directory.Build.props index ec3d5f6dbf35e7..fed776d063ff34 100644 --- a/src/mono/Directory.Build.props +++ b/src/mono/Directory.Build.props @@ -42,8 +42,9 @@ true true true + true true - true + true diff --git a/src/mono/mono.proj b/src/mono/mono.proj index f4f43c2c0a99fc..5906a2a4a5aeaf 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -20,6 +20,8 @@ libmono.a libmono.a libmonosgen-2.0.a + libmono.a + libmono.a $(CoreClrFileName) $(Configuration) $(Configuration) @@ -616,6 +618,31 @@ <_MonoSTRIPOption>STRIP="$(_MonoTuple)-strip" + + + + + <_MonoConfigureParams Include="--host=wasm32"/> + <_MonoConfigureParams Include="--disable-boehm" /> + <_MonoConfigureParams Include="--disable-btls" /> + <_MonoConfigureParams Include="--disable-executables" /> + <_MonoConfigureParams Include="--disable-iconv" /> + <_MonoConfigureParams Include="--disable-mcs-build" /> + <_MonoConfigureParams Include="--disable-nls" /> + <_MonoConfigureParams Include="--disable-visibility-hidden" /> + <_MonoConfigureParams Include="--enable-maintainer-mode" /> + <_MonoConfigureParams Include="--enable-llvm-runtime"/> + <_MonoConfigureParams Include="--enable-icall-export"/> + <_MonoConfigureParams Include="--disable-icall-tables"/> + <_MonoConfigureParams Include="--disable-crash-reporting"/> + <_MonoConfigureParams Include="--with-bitcode=yes"/> + <_MonoConfigureParams Include="--enable-minimal=ssa,com,jit,reflection_emit_save,portability,assembly_remapping,attach,verifier,full_messages,appdomains,security,sgen_marksweep_conc,sgen_split_nursery,sgen_gc_bridge,logging,remoting,shared_perfcounters,sgen_debug_helpers,soft_debug,interpreter,assert_messages,cleanup,mdb,gac"/> + + <_MonoCFLAGS Include="-fexceptions" /> + <_MonoCXXFLAGS Include="-fexceptions -s DISABLE_EXCEPTION_CATCHING=0" /> + <_MonoAC_VARS Include="ac_cv_func_shm_open_working_with_mmap=no" /> + + <_MonoCFLAGS Include="-Wl,--build-id" /> @@ -648,9 +675,10 @@ <_MonoLDFLAGSOption Condition="@(_MonoLDFLAGS->Count()) > 0">LDFLAGS="@(_MonoLDFLAGS, ' ')" <_MonoCCLDFLAGSOption Condition="@(_MonoCCLDFLAGS->Count()) > 0">CCLDFLAGS="@(_MonoCCLDFLAGS, ' ')" - <_MonoConfigureCommand>@(_MonoConfigureParams, ' ') @(_MonoAC_VARS, ' ') $(_MonoCFLAGSOption) $(_MonoCXXFLAGSOption) $(_MonoCPPFLAGSOption) $(_MonoCXXCPPFLAGSOption) $(_MonoLDFLAGSOption) $(_MonoCCLDFLAGSOption) $(_MonoCCOption) $(_MonoCXXOption) $(_MonoAROption) $(_MonoASOption) $(_MonoCPPOption) $(_MonoCXXCPPOption) $(_MonoDLLTOOLOption) $(_MonoLDOption) $(_MonoOBJDUMPOption) $(_MonoRANLIBOption) $(_MonoCMAKEOption) $(_MonoSTRIPOption) - <_MonoConfigureCommand Condition="'$(_MonoCCOption)' == '' and '$(_MonoCXXOption)' == ''">bash -c 'source $(RepositoryEngineeringDir)native/init-compiler.sh $(Platform) clang && $(MonoProjectRoot)configure $(_MonoConfigureCommand)' - <_MonoConfigureCommand Condition="'$(_MonoCCOption)' != '' and '$(_MonoCXXOption)' != ''">$(MonoProjectRoot)configure $(_MonoConfigureCommand) + <_MonoConfigureOptions>@(_MonoConfigureParams, ' ') @(_MonoAC_VARS, ' ') $(_MonoCFLAGSOption) $(_MonoCXXFLAGSOption) $(_MonoCPPFLAGSOption) $(_MonoCXXCPPFLAGSOption) $(_MonoLDFLAGSOption) $(_MonoCCLDFLAGSOption) $(_MonoCCOption) $(_MonoCXXOption) $(_MonoAROption) $(_MonoASOption) $(_MonoCPPOption) $(_MonoCXXCPPOption) $(_MonoDLLTOOLOption) $(_MonoLDOption) $(_MonoOBJDUMPOption) $(_MonoRANLIBOption) $(_MonoCMAKEOption) $(_MonoSTRIPOption) + <_MonoConfigureCommand Condition="'$(_MonoCCOption)' == '' and '$(_MonoCXXOption)' == ''">bash -c 'source $(RepositoryEngineeringDir)native/init-compiler.sh $(Platform) clang && $(MonoProjectRoot)configure $(_MonoConfigureOptions)' + <_MonoConfigureCommand Condition="'$(_MonoCCOption)' != '' and '$(_MonoCXXOption)' != ''">$(MonoProjectRoot)configure $(_MonoConfigureOptions) + <_MonoConfigureCommand Condition="'$(TargetsWASM)' == 'true'">bash -c 'source $(EMSDK_PATH)/emsdk_env.sh && emconfigure $(MonoProjectRoot)configure $(_MonoConfigureOptions)' @@ -669,7 +697,7 @@ - + @@ -685,7 +713,8 @@ - + + @@ -870,6 +899,7 @@ <_MonoRuntimeFilePath Condition="'$(TargetsiOS)' == 'true'">$(MonoObjDir)out\lib\libmonosgen-2.0.dylib <_MonoRuntimeFilePath Condition="'$(TargetstvOS)' == 'true'">$(MonoObjDir)out\lib\libmonosgen-2.0.dylib <_MonoRuntimeFilePath Condition="'$(TargetsAndroid)' == 'true'">$(MonoObjDir)out\lib\libmonosgen-2.0.so + <_MonoRuntimeFilePath Condition="'$(TargetsWASM)' == 'true'">$(MonoObjDir)mono\mini\.libs\libmonosgen-2.0.a <_MonoRuntimeFilePath Condition="'$(_MonoRuntimeFilePath)' == ''">$(MonoObjDir)mono\mini\.libs\libmonosgen-2.0.so <_MonoRuntimeStaticFilePath Condition="'$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true' or '$(TargetsAndroid)' == 'true'">$(MonoObjDir)out\lib\libmonosgen-2.0.a <_MonoAotCrossFilePath Condition="'$(TargetsiOS)' == 'true' and '$(Platform)' == 'arm64'">$(MonoObjDir)cross\out\bin\aarch64-darwin-mono-sgen @@ -898,7 +928,7 @@ + Condition="'$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true' or'$(TargetsAndroid)' == 'true' or '$(TargetsWASM)' == 'true'"/> diff --git a/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj b/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj index 20ccd6ca77fc85..48967bb3cbc8c8 100644 --- a/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj +++ b/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj @@ -18,7 +18,7 @@ $(BinDir)IL/ Debug;Release;Checked - x64;x86;arm;arm64;wasm32 + x64;x86;arm;arm64;wasm true true @@ -82,7 +82,7 @@ AnyCPU TARGET_64BIT;TARGET_ARM64;$(DefineConstants) - + AnyCPU TARGET_32BIT;$(DefineConstants)