diff --git a/docs/workflow/building/libraries/webassembly-instructions.md b/docs/workflow/building/libraries/webassembly-instructions.md
index 80af1a508b1067..fdc5dc31d22267 100644
--- a/docs/workflow/building/libraries/webassembly-instructions.md
+++ b/docs/workflow/building/libraries/webassembly-instructions.md
@@ -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:
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 5c1f457ae40f4d..9c44cabfca804a 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -207,9 +207,9 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-optimization
4e5bea15eb5a9c8cf9142195b1c9c78437a5b27f
-
+
https://github.com/dotnet/emsdk
- defa37b05c734e025292c5747664e970cd2ac444
+ 617928847d1e11458527b8bbafb5577982291847
https://github.com/dotnet/hotreload-utils
diff --git a/eng/Versions.props b/eng/Versions.props
index a194baa33def9e..3b887fae24aa25 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -176,7 +176,7 @@
11.1.0-alpha.1.21308.1
11.1.0-alpha.1.21308.1
- 6.0.0-preview.6.21275.1
- $(MicrosoftNETRuntimeEmscripten2021Nodewinx64Version)
+ 6.0.0-preview.7.21323.1
+ $(MicrosoftNETRuntimeEmscripten2023Nodewinx64Version)
diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml
index daedd73b0e4bff..defd34be84ae2e 100644
--- a/eng/pipelines/common/platform-matrix.yml
+++ b/eng/pipelines/common/platform-matrix.yml
@@ -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 }}
diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml
index b766f1af96aecb..7d33d26edb0128 100644
--- a/eng/pipelines/libraries/helix-queues-setup.yml
+++ b/eng/pipelines/libraries/helix-queues-setup.yml
@@ -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 }}
diff --git a/eng/testing/tests.wasm.targets b/eng/testing/tests.wasm.targets
index de4432bee9f5ea..aa4fb305dbd425 100644
--- a/eng/testing/tests.wasm.targets
+++ b/eng/testing/tests.wasm.targets
@@ -40,7 +40,7 @@
<_AOTBuildCommand Condition="'$(ContinuousIntegrationBuild)' != 'true'">$(_AOTBuildCommand) /p:RuntimeSrcDir=$(RepoRoot) /p:RuntimeConfig=$(Configuration)
- <_AOTBuildCommand>$(_AOTBuildCommand) /p:RunAOTCompilation=$(RunAOTCompilation)
+ <_AOTBuildCommand>$(_AOTBuildCommand) /p:RunAOTCompilation=$(RunAOTCompilation) /p:EmccLinkOptimizationFlag='-Oz -Wl%252C-O0 -Wl%252C-lto-O0'
<_AOTBuildCommand>$(_AOTBuildCommand) && cd wasm_build/AppBundle
$(_AOTBuildCommand)
diff --git a/src/libraries/sendtohelixhelp.proj b/src/libraries/sendtohelixhelp.proj
index 25d7168bdc4639..12d402fcb7e397 100644
--- a/src/libraries/sendtohelixhelp.proj
+++ b/src/libraries/sendtohelixhelp.proj
@@ -29,6 +29,7 @@
<_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == '' and ('$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm')">00:45:00
<_workItemTimeout Condition="'$(Scenario)' != '' and '$(_workItemTimeout)' == '' and ('$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm')">01:00:00
<_workItemTimeout Condition="'$(Scenario)' == 'BuildWasmApps' and '$(_workItemTimeout)' == ''">01:00:00
+ <_workItemTimeout Condition="'$(TargetOS)' == 'Browser' and '$(NeedsToBuildWasmAppsOnHelix)' == 'true'">01:00:00
<_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == '' and '$(Outerloop)' == 'true'">00:20:00
<_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == ''">00:15:00
<_workItemTimeout Condition="'$(Scenario)' != '' and '$(_workItemTimeout)' == ''">00:30:00
diff --git a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/WorkloadManifest.json.in b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/WorkloadManifest.json.in
index d783615a908e1a..4c50a08f007c82 100644
--- a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/WorkloadManifest.json.in
+++ b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/WorkloadManifest.json.in
@@ -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"
}
}
}
diff --git a/src/mono/wasm/README.md b/src/mono/wasm/README.md
index a44edd53dc3dd1..67cf64b8c05766 100644
--- a/src/mono/wasm/README.md
+++ b/src/mono/wasm/README.md
@@ -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.
@@ -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..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
diff --git a/src/mono/wasm/emscripten-version.txt b/src/mono/wasm/emscripten-version.txt
index eb4d1bc7a34e7e..8fe1046e01fc8e 100644
--- a/src/mono/wasm/emscripten-version.txt
+++ b/src/mono/wasm/emscripten-version.txt
@@ -1 +1 @@
-2.0.21
\ No newline at end of file
+2.0.23
\ No newline at end of file