Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[wasm] Bump emscripten to 2.0.23 #53603

Merged
merged 28 commits into from
Jun 24, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
8be39f5
Revert "Add ActiveIssue to the MemoryMappedFiles tests"
radekdoulik Jun 2, 2021
eb2f954
Revert "Add ActiveIssue attr to the FileSystem tests"
radekdoulik Jun 2, 2021
3eb7dbe
Bump emscripten version to 2.0.23
radekdoulik Jun 2, 2021
03abd7f
Use newer docker images with 2.0.23
radekdoulik Jun 2, 2021
9fdb05d
Update docs
radekdoulik Jun 2, 2021
bf29544
Use 2.0.23 emscripten nuget packages
radekdoulik Jun 9, 2021
739af16
Revert "Revert "Add ActiveIssue attr to the FileSystem tests""
radekdoulik Jun 9, 2021
c0e0175
Revert "Revert "Add ActiveIssue to the MemoryMappedFiles tests""
radekdoulik Jun 9, 2021
ff8848a
Increase timeout for AOT tests
radekdoulik Jun 9, 2021
02b5ee2
Add description of emscripten bump to README
radekdoulik Jun 10, 2021
0fef9d5
Merge remote-tracking branch 'remotes/origin/main' into pr-wasm-emscr…
radekdoulik Jun 10, 2021
14aa3be
Try to get information about resources
radekdoulik Jun 16, 2021
773e3e8
Get all limits
radekdoulik Jun 16, 2021
17bfbfe
Merge branch 'main' into pr-wasm-emscripten-2-0-23-bump
radekdoulik Jun 17, 2021
6c221e8
Escape & chars
radekdoulik Jun 17, 2021
fec0e55
Reduce platform matrix
radekdoulik Jun 17, 2021
67dd775
Lets try one more build with doubled timeout
radekdoulik Jun 17, 2021
38041f4
Merge remote-tracking branch 'remotes/origin/main' into pr-wasm-emscr…
radekdoulik Jun 18, 2021
e9dfd01
Revert "Lets try one more build with doubled timeout"
radekdoulik Jun 18, 2021
de4037e
Try -Wl,-O0 on CI
radekdoulik Jun 21, 2021
7c1dff2
Use -Wl,-lto-O0 do lower link time optimization
radekdoulik Jun 21, 2021
b910ec6
Set EmccLinkOptimizationFlag for AOT tests
radekdoulik Jun 23, 2021
db0cd09
Escape commas
radekdoulik Jun 23, 2021
91e4670
Revert "Reduce platform matrix"
radekdoulik Jun 23, 2021
3c57b20
Remove resource info retrieval
radekdoulik Jun 23, 2021
1f9036a
Merge remote-tracking branch 'remotes/origin/main' into pr-wasm-emscr…
radekdoulik Jun 23, 2021
60b00e0
Merge remote-tracking branch 'remotes/origin/main' into pr-wasm-emscr…
radekdoulik Jun 23, 2021
49822e6
Bump emsdk versions
lewing Jun 24, 2021
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
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ If you haven't already done so, please read [this document](../../README.md#Buil
The **correct version** of Emscripten SDK (emsdk) needs to be installed.
* Run `make -C src/mono/wasm provision-wasm` to install emsdk into `src/mono/wasm/emsdk`.
* Alternatively follow the [installation guide](https://emscripten.org/docs/getting_started/downloads.html#sdk-download-and-install).
Do not install `latest` but rather specific version e.g. `./emsdk install 2.0.21`. See [emscripten-version.txt](..\..\..\..\src\mono\wasm\emscripten-version.txt)
Do not install `latest` but rather specific version e.g. `./emsdk install 2.0.23`. See [emscripten-version.txt](..\..\..\..\src\mono\wasm\emscripten-version.txt)

Once installed the `EMSDK_PATH` environment variable needs to be set:

Expand Down
4 changes: 2 additions & 2 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -207,9 +207,9 @@
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-optimization</Uri>
<Sha>4e5bea15eb5a9c8cf9142195b1c9c78437a5b27f</Sha>
</Dependency>
<Dependency Name="Microsoft.NET.Runtime.Emscripten.2.0.21.Node.win-x64" Version="6.0.0-preview.6.21275.1">
<Dependency Name="Microsoft.NET.Runtime.Emscripten.2.0.23.Node.win-x64" Version="6.0.0-preview.7.21323.1">
<Uri>https://github.com/dotnet/emsdk</Uri>
<Sha>defa37b05c734e025292c5747664e970cd2ac444</Sha>
<Sha>617928847d1e11458527b8bbafb5577982291847</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.HotReload.Utils.Generator.BuildTool" Version="1.0.1-alpha.0.21311.1">
<Uri>https://github.com/dotnet/hotreload-utils</Uri>
Expand Down
4 changes: 2 additions & 2 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@
<runtimeosx1012x64MicrosoftNETCoreRuntimeMonoLLVMSdkVersion>11.1.0-alpha.1.21308.1</runtimeosx1012x64MicrosoftNETCoreRuntimeMonoLLVMSdkVersion>
<runtimeosx1012x64MicrosoftNETCoreRuntimeMonoLLVMToolsVersion>11.1.0-alpha.1.21308.1</runtimeosx1012x64MicrosoftNETCoreRuntimeMonoLLVMToolsVersion>
<!-- emscripten / Node -->
<MicrosoftNETRuntimeEmscripten2021Nodewinx64Version>6.0.0-preview.6.21275.1</MicrosoftNETRuntimeEmscripten2021Nodewinx64Version>
<MicrosoftNETRuntimeEmscriptenVersion>$(MicrosoftNETRuntimeEmscripten2021Nodewinx64Version)</MicrosoftNETRuntimeEmscriptenVersion>
<MicrosoftNETRuntimeEmscripten2023Nodewinx64Version>6.0.0-preview.7.21323.1</MicrosoftNETRuntimeEmscripten2023Nodewinx64Version>
<MicrosoftNETRuntimeEmscriptenVersion>$(MicrosoftNETRuntimeEmscripten2023Nodewinx64Version)</MicrosoftNETRuntimeEmscriptenVersion>
</PropertyGroup>
</Project>
2 changes: 1 addition & 1 deletion eng/pipelines/common/platform-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ jobs:
targetRid: browser-wasm
platform: Browser_wasm
container:
image: ubuntu-18.04-webassembly-20210519131124-ba00c14
image: ubuntu-18.04-webassembly-20210531091624-f5c7a43
registry: mcr
jobParameters:
runtimeFlavor: ${{ parameters.runtimeFlavor }}
Expand Down
2 changes: 1 addition & 1 deletion eng/pipelines/libraries/helix-queues-setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,6 @@ jobs:

# WebAssembly windows
- ${{ if eq(parameters.platform, 'Browser_wasm_win') }}:
- (Windows.Server.Core.1909.Amd64.Open)windows.10.amd64.server20h1.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-2004-helix-webassembly-amd64-20210519130955-ba00c14
- (Windows.Server.Core.1909.Amd64.Open)windows.10.amd64.server20h1.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-2004-helix-webassembly-amd64-20210531091615-f5c7a43

${{ insert }}: ${{ parameters.jobParameters }}
2 changes: 1 addition & 1 deletion eng/testing/tests.wasm.targets
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
<!-- running aot-helix tests locally, so we can test with the same project file as CI -->
<_AOTBuildCommand Condition="'$(ContinuousIntegrationBuild)' != 'true'">$(_AOTBuildCommand) /p:RuntimeSrcDir=$(RepoRoot) /p:RuntimeConfig=$(Configuration)</_AOTBuildCommand>

<_AOTBuildCommand>$(_AOTBuildCommand) /p:RunAOTCompilation=$(RunAOTCompilation)</_AOTBuildCommand>
<_AOTBuildCommand>$(_AOTBuildCommand) /p:RunAOTCompilation=$(RunAOTCompilation) /p:EmccLinkOptimizationFlag='-Oz -Wl%252C-O0 -Wl%252C-lto-O0'</_AOTBuildCommand>
<_AOTBuildCommand>$(_AOTBuildCommand) &amp;&amp; cd wasm_build/AppBundle</_AOTBuildCommand>

<RunScriptCommand Condition="'$(RunScriptCommand)' == ''">$(_AOTBuildCommand)</RunScriptCommand>
Expand Down
1 change: 1 addition & 0 deletions src/libraries/sendtohelixhelp.proj
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
<_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == '' and ('$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm')">00:45:00</_workItemTimeout>
<_workItemTimeout Condition="'$(Scenario)' != '' and '$(_workItemTimeout)' == '' and ('$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm')">01:00:00</_workItemTimeout>
<_workItemTimeout Condition="'$(Scenario)' == 'BuildWasmApps' and '$(_workItemTimeout)' == ''">01:00:00</_workItemTimeout>
<_workItemTimeout Condition="'$(TargetOS)' == 'Browser' and '$(NeedsToBuildWasmAppsOnHelix)' == 'true'">01:00:00</_workItemTimeout>
<_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == '' and '$(Outerloop)' == 'true'">00:20:00</_workItemTimeout>
<_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == ''">00:15:00</_workItemTimeout>
<_workItemTimeout Condition="'$(Scenario)' != '' and '$(_workItemTimeout)' == ''">00:30:00</_workItemTimeout>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -270,29 +270,29 @@
"kind": "Sdk",
"version": "${EmscriptenVersion}",
"alias-to": {
"win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Node.win-x64",
"linux-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Node.linux-x64",
"osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Node.osx-x64",
"osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Node.osx-x64"
"win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.win-x64",
"linux-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.linux-x64",
"osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.osx-x64",
"osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.osx-x64"
}
},
"Microsoft.NET.Runtime.Emscripten.Python" : {
"kind": "Sdk",
"version": "${EmscriptenVersion}",
"alias-to": {
"win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Python.win-x64",
"osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Python.osx-x64",
"osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Python.osx-x64"
"win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Python.win-x64",
"osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Python.osx-x64",
"osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Python.osx-x64"
}
},
"Microsoft.NET.Runtime.Emscripten.Sdk" : {
"kind": "Sdk",
"version": "${EmscriptenVersion}",
"alias-to": {
"win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Sdk.win-x64",
"linux-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Sdk.linux-x64",
"osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Sdk.osx-x64",
"osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Sdk.osx-x64"
"win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.win-x64",
"linux-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.linux-x64",
"osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.osx-x64",
"osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.osx-x64"
}
}
}
Expand Down
13 changes: 12 additions & 1 deletion src/mono/wasm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Note: `EMSDK_PATH` is set by default in `src/mono/wasm/Makefile`, so building ta
you are directly using the `dotnet build`, or `build.sh`.

* Alternatively you can install **correct version** yourself from the [Emscripten SDK guide](https://emscripten.org/docs/getting_started/downloads.html).
Do not install `latest` but rather specific version e.g. `./emsdk install 2.0.21`. See [emscripten-version.txt](./emscripten-version.txt)
Do not install `latest` but rather specific version e.g. `./emsdk install 2.0.23`. See [emscripten-version.txt](./emscripten-version.txt)

Make sure to set `EMSDK_PATH` variable, whenever building, or running tests for wasm.

Expand Down Expand Up @@ -154,3 +154,14 @@ The samples in `src/mono/sample/wasm` can be build and run like this:
`dotnet build /t:RunSample browser/Wasm.Browser.Sample.csproj`

To build and run the samples with AOT, add `/p:RunAOTCompilation=true` to the above command lines.

### Upgrading Emscripten

Bumping Emscripten version involves these steps:

* update https://github.com/dotnet/runtime/blob/main/src/mono/wasm/emscripten-version.txt
* bump emscripten versions in docker images in https://github.com/dotnet/dotnet-buildtools-prereqs-docker
* bump emscripten in https://github.com/dotnet/emsdk
* update version number in docs
* update `Microsoft.NET.Runtime.Emscripten.<emscripten version>.Node.win-x64` package name, version and sha hash in https://github.com/dotnet/runtime/blob/main/eng/Version.Details.xml and in https://github.com/dotnet/runtime/blob/main/eng/Versions.props. the sha is the commit hash in https://github.com/dotnet/emsdk and the package version can be found at https://dev.azure.com/dnceng/public/_packaging?_a=feed&feed=dotnet6
* update packages in the workload manifest https://github.com/dotnet/runtime/blob/main/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/WorkloadManifest.json.in
2 changes: 1 addition & 1 deletion src/mono/wasm/emscripten-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.0.21
2.0.23