Skip to content

Commit 7128a16

Browse files
committed
try
1 parent f981e2a commit 7128a16

File tree

6 files changed

+39
-17
lines changed

6 files changed

+39
-17
lines changed

src/mono/browser/browser.proj

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,24 @@
228228
<_EmccLinkFlags Include="-Wno-limited-postlink-optimizations"/>
229229
</ItemGroup>
230230

231+
<ItemGroup>
232+
<WasmOptConfigurationFlags Include="--all-features" />
233+
<WasmOptConfigurationFlags Include="--enable-bulk-memory" />
234+
<WasmOptConfigurationFlags Include="--enable-sign-ext" />
235+
<WasmOptConfigurationFlags Include="--translate-to-new-eh" />
236+
<!-- emscripten defaults -->
237+
<WasmOptConfigurationFlags Include="--low-memory-unused" />
238+
<WasmOptConfigurationFlags Include="--zero-filled-memory" />
239+
<WasmOptConfigurationFlags Include="--enable-reference-types" />
240+
<WasmOptConfigurationFlags Include="--enable-mutable-globals" />
241+
<WasmOptConfigurationFlags Include="--enable-multivalue" />
242+
<WasmOptConfigurationFlags Include="--mvp-features" />
243+
<WasmOptConfigurationFlags Include="--pass-arg=directize-initial-contents-immutable" />
244+
<WasmOptConfigurationFlags Include="--post-emscripten" />
245+
<WasmOptConfigurationFlags Include="--strip-target-features" />
246+
</ItemGroup>
231247
<ItemGroup Condition="'$(WasmEnableThreads)' == 'true'">
232-
<WasmOptConfigurationFlags Include="--enable-threads;--enable-bulk-memory;--enable-sign-ext" />
248+
<WasmOptConfigurationFlags Include="--enable-threads" />
233249

234250
<!-- workaround for https://github.com/emscripten-core/emscripten/issues/18034 -->
235251
<_EmccLinkFlags Include="-s TEXTDECODER=0"/>
@@ -307,13 +323,13 @@
307323

308324
<CMakeConfigurationEmccFlags Condition="'$(Configuration)' == 'Debug'">-g -Os -DDEBUG=1</CMakeConfigurationEmccFlags>
309325
<CMakeConfigurationEmccFlags Condition="'$(Configuration)' == 'Release'">-Oz</CMakeConfigurationEmccFlags>
326+
<CMakeConfigurationEmccFlags Condition="'$(WasmEnableSIMD)' == 'true'">$(CMakeConfigurationEmccFlags) -msimd128 -mbulk-memory</CMakeConfigurationEmccFlags>
310327

311-
<CMakeConfigurationLinkFlags Condition="'$(Configuration)' == 'Debug'" >$(CMakeConfigurationEmccFlags) -s ASSERTIONS=1 </CMakeConfigurationLinkFlags>
312-
<CMakeConfigurationLinkFlags Condition="'$(Configuration)' == 'Release'">-O2</CMakeConfigurationLinkFlags>
328+
<CMakeConfigurationLinkFlags Condition="'$(Configuration)' == 'Debug'" >$(CMakeConfigurationEmccFlags) --all-features -s ASSERTIONS=1 </CMakeConfigurationLinkFlags>
329+
<CMakeConfigurationLinkFlags Condition="'$(Configuration)' == 'Release'">-O2 --all-features </CMakeConfigurationLinkFlags>
313330

314331
<!-- -lexports.js has the magical property of disabling minification of export names -->
315332
<CMakeConfigurationLinkFlags>$(CMakeConfigurationLinkFlags) -s EXPORT_ES6=1 -lexports.js</CMakeConfigurationLinkFlags>
316-
<CMakeConfigurationLinkFlags Condition="'$(WasmEnableSIMD)' == 'true'">$(CMakeConfigurationLinkFlags) -msimd128</CMakeConfigurationLinkFlags>
317333
<CMakeConfigurationLinkFlags Condition="'$(WasmEnableThreads)' == 'true'">$(CMakeConfigurationLinkFlags) -Wno-pthreads-mem-growth</CMakeConfigurationLinkFlags>
318334
<CMakeConfigurationLinkFlags >$(CMakeConfigurationLinkFlags) --emit-symbol-map</CMakeConfigurationLinkFlags>
319335

@@ -328,7 +344,7 @@
328344
<CMakeBuildRuntimeConfigureCmd>$(CMakeBuildRuntimeConfigureCmd) -DMONO_OBJ_INCLUDES=&quot;$(MonoObjDir.TrimEnd('\/').Replace('\','/'))&quot;</CMakeBuildRuntimeConfigureCmd>
329345
<CMakeBuildRuntimeConfigureCmd>$(CMakeBuildRuntimeConfigureCmd) -DMONO_ARTIFACTS_DIR=&quot;$(MonoArtifactsPath.TrimEnd('\/').Replace('\','/'))&quot;</CMakeBuildRuntimeConfigureCmd>
330346
<CMakeBuildRuntimeConfigureCmd>$(CMakeBuildRuntimeConfigureCmd) -DNATIVE_BIN_DIR=&quot;$(NativeBinDir.TrimEnd('\/').Replace('\','/'))&quot;</CMakeBuildRuntimeConfigureCmd>
331-
<CMakeBuildRuntimeConfigureCmd Condition="'$(WasmEnableSIMD)' == 'true'">$(CMakeBuildRuntimeConfigureCmd) -DCONFIGURATION_COMPILE_OPTIONS=&quot;-msimd128&quot; -DCONFIGURATION_INTERPSIMDTABLES_LIB=&quot;simd&quot;</CMakeBuildRuntimeConfigureCmd>
347+
<CMakeBuildRuntimeConfigureCmd Condition="'$(WasmEnableSIMD)' == 'true'">$(CMakeBuildRuntimeConfigureCmd) -DCONFIGURATION_COMPILE_OPTION1=&quot;-msimd128&quot; -DCONFIGURATION_COMPILE_OPTION2=&quot;-mbulk-memory&quot; -DCONFIGURATION_INTERPSIMDTABLES_LIB=&quot;simd&quot;</CMakeBuildRuntimeConfigureCmd>
332348
<CMakeBuildRuntimeConfigureCmd Condition="'$(WasmEnableSIMD)' != 'true'">$(CMakeBuildRuntimeConfigureCmd) -DCONFIGURATION_INTERPSIMDTABLES_LIB=&quot;nosimd&quot;</CMakeBuildRuntimeConfigureCmd>
333349
<CMakeBuildRuntimeConfigureCmd Condition="'$(WasmEnableThreads)' == 'true'">$(CMakeBuildRuntimeConfigureCmd) -DDISABLE_THREADS=0</CMakeBuildRuntimeConfigureCmd>
334350
<CMakeBuildRuntimeConfigureCmd Condition="'$(WasmEnableJsInteropByValue)' == 'true'">$(CMakeBuildRuntimeConfigureCmd) -DENABLE_JS_INTEROP_BY_VALUE=1</CMakeBuildRuntimeConfigureCmd>

src/mono/browser/build/BrowserWasmApp.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656

5757
<_WasmDefaultFlags Condition="'$(WasmEnableExceptionHandling)' == 'false'">-fexceptions</_WasmDefaultFlags>
5858
<_WasmDefaultFlags Condition="'$(WasmEnableExceptionHandling)' != 'false'">-fwasm-exceptions</_WasmDefaultFlags>
59-
<_WasmDefaultFlags Condition="'$(WasmEnableSIMD)' == 'true'">-msimd128</_WasmDefaultFlags>
59+
<_WasmDefaultFlags Condition="'$(WasmEnableSIMD)' == 'true'">-msimd128 -mbulk-memory</_WasmDefaultFlags>
6060

6161
<_WasmOutputFileName Condition="'$(WasmSingleFileBundle)' != 'true'">dotnet.native.wasm</_WasmOutputFileName>
6262

src/mono/browser/runtime/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ set(CMAKE_EXECUTABLE_SUFFIX ".js")
99
add_executable(dotnet.native runtime.c corebindings.c driver.c pinvoke.c)
1010

1111
target_include_directories(dotnet.native PUBLIC ${MONO_INCLUDES} ${MONO_OBJ_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR}/include/wasm)
12-
target_compile_options(dotnet.native PUBLIC @${NATIVE_BIN_DIR}/src/emcc-default.rsp @${NATIVE_BIN_DIR}/src/emcc-compile.rsp -DGEN_PINVOKE=1 ${CONFIGURATION_COMPILE_OPTIONS})
12+
target_compile_options(dotnet.native PUBLIC @${NATIVE_BIN_DIR}/src/emcc-default.rsp @${NATIVE_BIN_DIR}/src/emcc-compile.rsp -DGEN_PINVOKE=1 ${CONFIGURATION_COMPILE_OPTION1} ${CONFIGURATION_COMPILE_OPTION2})
1313

1414
set_target_properties(dotnet.native PROPERTIES COMPILE_FLAGS ${CONFIGURATION_EMCC_FLAGS})
1515

@@ -39,12 +39,12 @@ set_target_properties(dotnet.native PROPERTIES
3939
RUNTIME_OUTPUT_DIRECTORY "${NATIVE_BIN_DIR}")
4040

4141
set(ignoreMeWasmOptFlags "${CONFIGURATION_WASM_OPT_FLAGS}")
42-
set(ignoreMeWasmOptAdditionalFlags "${CONFIGURATION_COMPILE_OPTIONS}")
42+
set(ignoreMeWasmOptAdditionalFlags "${CONFIGURATION_COMPILE_OPTION1}" "${CONFIGURATION_COMPILE_OPTION2}")
4343
set(ignoreMeEmsdkPath "${EMSDK_PATH}")
4444

4545
if(CMAKE_BUILD_TYPE STREQUAL "Release")
4646
add_custom_command(TARGET dotnet.native
47-
POST_BUILD COMMAND ${EMSDK_PATH}/bin/wasm-opt --enable-exception-handling --enable-simd --enable-bulk-memory ${CONFIGURATION_WASM_OPT_FLAGS} --strip-dwarf ${NATIVE_BIN_DIR}/dotnet.native.wasm -o ${NATIVE_BIN_DIR}/dotnet.native.wasm
47+
POST_BUILD COMMAND ${EMSDK_PATH}/bin/wasm-opt ${CONFIGURATION_WASM_OPT_FLAGS} --strip-dwarf ${NATIVE_BIN_DIR}/dotnet.native.wasm -o ${NATIVE_BIN_DIR}/dotnet.native.wasm
4848
COMMENT "Stripping debug symbols from dotnet.native.wasm using wasm-opt")
4949
endif()
5050

src/mono/mono/mini/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ endif()
484484
if(HOST_BROWSER OR HOST_WASI)
485485
add_library(mono-wasm-simd STATIC interp/interp-simd.c)
486486
target_link_libraries (mono-wasm-simd PRIVATE monoapi eglib_api)
487-
set_target_properties(mono-wasm-simd PROPERTIES COMPILE_FLAGS "-msimd128")
487+
set_target_properties(mono-wasm-simd PROPERTIES COMPILE_FLAGS "-msimd128 -mbulk-memory")
488488
install(TARGETS mono-wasm-simd LIBRARY)
489489
endif()
490490

src/mono/wasi/wasi.proj

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,14 @@
5959
<Target Name="GenerateWasiPropsAndRspFiles">
6060

6161
<!-- Generate wasm-props.json -->
62+
<ItemGroup>
63+
<WasmOptConfigurationFlags Include="--all-features" />
64+
<WasmOptConfigurationFlags Include="--enable-bulk-memory" />
65+
<WasmOptConfigurationFlags Include="--enable-sign-ext" />
66+
<WasmOptConfigurationFlags Include="--low-memory-unused" />
67+
</ItemGroup>
6268
<ItemGroup Condition="'$(WasmEnableThreads)' == 'true'">
63-
<WasmOptConfigurationFlags Include="--enable-threads;--enable-bulk-memory;--enable-sign-ext" />
69+
<WasmOptConfigurationFlags Include="--enable-threads" />
6470
</ItemGroup>
6571

6672
<ItemGroup>
@@ -156,7 +162,7 @@
156162
<CMakeBuildRuntimeConfigureCmd>$(CMakeBuildRuntimeConfigureCmd) -DMONO_OBJ_INCLUDES=&quot;$(MonoObjDir.TrimEnd('\/'))&quot;</CMakeBuildRuntimeConfigureCmd>
157163
<CMakeBuildRuntimeConfigureCmd>$(CMakeBuildRuntimeConfigureCmd) -DMONO_ARTIFACTS_DIR=&quot;$(MonoArtifactsPath.TrimEnd('\/'))&quot;</CMakeBuildRuntimeConfigureCmd>
158164
<CMakeBuildRuntimeConfigureCmd>$(CMakeBuildRuntimeConfigureCmd) -DNATIVE_BIN_DIR=&quot;$(NativeBinDir.TrimEnd('\/'))&quot;</CMakeBuildRuntimeConfigureCmd>
159-
<CMakeBuildRuntimeConfigureCmd Condition="'$(WasmEnableSIMD)' == 'true'">$(CMakeBuildRuntimeConfigureCmd) -DCONFIGURATION_COMPILE_OPTIONS=&quot;-msimd128&quot; -DCONFIGURATION_INTERPSIMDTABLES_LIB=&quot;simd&quot;</CMakeBuildRuntimeConfigureCmd>
165+
<CMakeBuildRuntimeConfigureCmd Condition="'$(WasmEnableSIMD)' == 'true'">$(CMakeBuildRuntimeConfigureCmd) -DCONFIGURATION_COMPILE_OPTIONS=&quot;-msimd128 -mbulk-memory&quot; -DCONFIGURATION_INTERPSIMDTABLES_LIB=&quot;simd&quot;</CMakeBuildRuntimeConfigureCmd>
160166
<CMakeBuildRuntimeConfigureCmd Condition="'$(WasmEnableSIMD)' != 'true'">$(CMakeBuildRuntimeConfigureCmd) -DCONFIGURATION_INTERPSIMDTABLES_LIB=&quot;nosimd&quot;</CMakeBuildRuntimeConfigureCmd>
161167
<CMakeBuildRuntimeConfigureCmd Condition="'$(WasmEnableThreads)' == 'true'">$(CMakeBuildRuntimeConfigureCmd) -DDISABLE_THREADS=0</CMakeBuildRuntimeConfigureCmd>
162168
<CMakeBuildRuntimeConfigureCmd Condition="'$(OS)' == 'Windows_NT'">call &quot;$(RepositoryEngineeringDir)native\init-vs-env.cmd&quot; wasm &amp;&amp; $(CMakeBuildRuntimeConfigureCmd)</CMakeBuildRuntimeConfigureCmd>

src/mono/wasm/build/WasmApp.Common.targets

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -462,12 +462,12 @@
462462

463463
<Target Name="_WasmCommonPrepareForWasmBuildNative" Condition="'$(WasmBuildNative)' == 'true'">
464464
<ItemGroup>
465+
<!-- WasmOptConfigurationFlags property is set by reading from wasm-props.json -->
466+
<WasmOptConfigurationFlags Include="@(_DefaulWasmOptConfigurationFlags)" />
467+
465468
<WasmOptConfigurationFlags Include="--enable-simd" Condition="'$(WasmEnableSIMD)' == 'true'" />
466469
<WasmOptConfigurationFlags Include="--enable-exception-handling" Condition="'$(WasmExceptionHandling)' == 'true'" />
467470
<WasmOptConfigurationFlags Include="--strip-dwarf" Condition="'$(WasmNativeStrip)' == 'true'" />
468-
469-
<!-- WasmOptConfigurationFlags property is set by reading from wasm-props.json -->
470-
<WasmOptConfigurationFlags Include="@(_DefaulWasmOptConfigurationFlags)" />
471471
</ItemGroup>
472472
</Target>
473473

@@ -911,8 +911,8 @@
911911
<Target Name="_RunWasmOptPostLink" Condition="'$(WasmRunWasmOpt)' == 'true'">
912912
<Error Condition="'$(_WasmOutputFileName)' == ''" Text="Could not determine %24(_WasmOutputFileName)" />
913913

914-
<Message Text="Running wasm-opt with --strip-target-features --post-emscripten -O2 --low-memory-unused --zero-filled-memory --pass-arg=directize-initial-contents-immutable --mvp-features --enable-multivalue --enable-mutable-globals --enable-reference-types --enable-sign-ext --enable-simd --enable-exception-handling --enable-bulk-memory @(WasmOptConfigurationFlags, ' ')" Importance="High" />
915-
<Exec Command="wasm-opt$(_ExeExt) --strip-target-features --post-emscripten -O2 --low-memory-unused --zero-filled-memory --pass-arg=directize-initial-contents-immutable --mvp-features --enable-multivalue --enable-mutable-globals --enable-reference-types --enable-sign-ext --enable-simd --enable-exception-handling --enable-bulk-memory @(WasmOptConfigurationFlags, ' ') &quot;$(_WasmIntermediateOutputPath)$(_WasmOutputFileName)&quot; -o &quot;$(_WasmIntermediateOutputPath)$(_WasmOutputFileName)&quot;"
914+
<Message Text="Running wasm-opt with @(WasmOptConfigurationFlags, ' ')" Importance="High" />
915+
<Exec Command="wasm-opt$(_ExeExt) @(WasmOptConfigurationFlags, ' ') &quot;$(_WasmIntermediateOutputPath)$(_WasmOutputFileName)&quot; -o &quot;$(_WasmIntermediateOutputPath)$(_WasmOutputFileName)&quot;"
916916
IgnoreStandardErrorWarningFormat="true"
917917
EnvironmentVariables="@(WasmToolchainEnvVars)" />
918918
</Target>

0 commit comments

Comments
 (0)