[wasm] Fix inclusion of `marshal-ilgen` component (#87629)
authorAnkit Jain <radical@gmail.com>
Fri, 16 Jun 2023 03:00:20 +0000 (23:00 -0400)
committerGitHub <noreply@github.com>
Fri, 16 Jun 2023 03:00:20 +0000 (23:00 -0400)
commit7112a41c86ca856dc0a462afafb953be6ac4fcc7
tree089b23daf7d4f64f30848b4f087c7c677eaa0579
parent35a5afb63fb08edca5d04a382d0663c2e1031e7a
[wasm] Fix inclusion of `marshal-ilgen` component (#87629)

* [wasm] Fix inclusion of `marshal-ilgen`

Issue: `marshal-ilgen` component never included

Reason:
The item inclusion was being done *outside* any targets, which would get
evaluated *before* any targets are run.

But the item that it depends on to decide whether to include
`marshal-ilgen` is in target
`_ScanAssembliesDecideLightweightMarshaler`.

This broke microbenchmarks with:
```
Error: [MONO] * Assertion at /__w/1/s/src/mono/mono/component/marshal-ilgen-stub.c:28, condition `!m_type_is_byref(t)' not met

    at ft (/home/helixbot/work/96640802/w/B9C40A15/e/performance/artifacts/bin/for-running/MicroBenchmarks/fa21f9df-08d0-43a4-b28d-0078821ea492/bin/net8.0/browser-wasm/AppBundle/dotnet.runtime.js:3:12422)
    at mt (/home/helixbot/work/96640802/w/B9C40A15/e/performance/artifacts/bin/for-running/MicroBenchmarks/fa21f9df-08d0-43a4-b28d-0078821ea492/bin/net8.0/browser-wasm/AppBundle/dotnet.runtime.js:3:12676)
    at wasm_trace_logger (wasm://wasm/00a5f7d6:wasm-function[7879]:0x1e41d0)
    at eglib_log_adapter (wasm://wasm/00a5f7d6:wasm-function[581]:0x37fbb)
    at monoeg_g_logv_nofree (wasm://wasm/00a5f7d6:wasm-function[504]:0x35f57)
    at monoeg_assertion_message (wasm://wasm/00a5f7d6:wasm-function[508]:0x36078)
    at mono_assertion_message (wasm://wasm/00a5f7d6:wasm-function[510]:0x360bb)
    at stub_emit_marshal_ilgen (wasm://wasm/00a5f7d6:wasm-function[1300]:0x66db1)
    at mono_emit_marshal (wasm://wasm/00a5f7d6:wasm-function[1820]:0x8990b)
    at emit_native_wrapper_ilgen (wasm://wasm/00a5f7d6:wasm-function[2651]:0xb86de)
```

* [wasm] WBT: Use sdk 8.0.100-preview.6.23314.19

.. to workaround https://github.com/dotnet/runtime/issues/87647 .

* [wasm] Add test for marshal-ilgen - wbt

* add missing file
eng/Versions.props
src/mono/wasm/Wasm.Build.Tests/NativeBuildTests.cs
src/mono/wasm/build/WasmApp.Native.targets
src/mono/wasm/testassets/marshal_ilgen_test.cs [new file with mode: 0644]