dotnet / runtimelab

This repo is for experimentation and exploring new ideas that may or may not make it into the main dotnet/runtime repo.
MIT License
1.42k stars 198 forks source link

Help building ilasm for wasm #2074

Open hamarb123 opened 1 year ago

hamarb123 commented 1 year ago

Yes, I want to build ilasm for webassembly. Hopefully this isn't too crazy lol. I was told that https://github.com/dotnet/runtimelab/tree/feature/NativeAOT-LLVM might partially support this, and on the following line is where it is excluded: https://github.com/dotnet/runtimelab/blob/feature/NativeAOT-LLVM/src/coreclr/CMakeLists.txt#L251-L252

If I just re-include it there, would it work? Can someone also help me with attempting to build this, what command should I use and where would it be generated?

I was told @yowl can help me.

Many thanks in advance!

hamarb123 commented 1 year ago

I tried ./build.sh clr -c Release -a wasm -os Browser, but that gave me:

Error
__DistroRid: browser-wasm
Downloading 'https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh'
dotnet-install: Note that the intended use of this script is for Continuous Integration (CI) scenarios, where:
dotnet-install: - The SDK needs to be installed without user interaction and without admin rights.
dotnet-install: - The SDK installation doesn't need to persist across multiple CI runs.
dotnet-install: To set up a development environment or to run apps, use installers rather than this script. Visit https://dotnet.microsoft.com/download to get the installer.

dotnet-install: Attempting to download using primary link https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.100-rc.1.21430.12/dotnet-sdk-6.0.100-rc.1.21430.12-osx-x64.tar.gz
dotnet-install: Extracting zip from https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.100-rc.1.21430.12/dotnet-sdk-6.0.100-rc.1.21430.12-osx-x64.tar.gz
dotnet-install: Installed version is 6.0.100-rc.1.21430.12
dotnet-install: Adding to current process PATH: `/Users/Hamish/Projects/Clones/runtimelab/.dotnet`. Note: This change will be visible only when sourcing script.
dotnet-install: Note that the script does not resolve dependencies during installation.
dotnet-install: To check the list of dependencies, go to https://learn.microsoft.com/dotnet/core/install, select your operating system and check the "Dependencies" section.
dotnet-install: Installation finished successfully.
  Determining projects to restore...
  Tool 'coverlet.console' (version '1.7.2') was restored. Available commands: coverlet
  Tool 'dotnet-reportgenerator-globaltool' (version '4.5.8') was restored. Available commands: reportgenerator
  Tool 'microsoft.dotnet.xharness.cli' (version '1.0.0-prerelease.21465.1') was restored. Available commands: xharness
  Tool 'microsoft.visualstudio.slngen.tool' (version '6.1.10') was restored. Available commands: slngen

  Restore was successful.
  Restored /Users/Hamish/.nuget/packages/microsoft.dotnet.arcade.sdk/7.0.0-beta.21463.4/tools/Tools.proj (in 15.86 sec).
  Determining projects to restore...
/Users/Hamish/Projects/Clones/runtimelab/.dotnet/sdk/6.0.100-rc.1.21430.12/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(129,5): error NETSDK1084: There is no application host available for the specified RuntimeIdentifier 'browser-wasm'. [/Users/Hamish/Projects/Clones/runtimelab/Build.proj]
/Users/Hamish/Projects/Clones/runtimelab/.dotnet/sdk/6.0.100-rc.1.21430.12/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(129,5): error NETSDK1084: There is no application host available for the specified RuntimeIdentifier 'browser-wasm'. [/Users/Hamish/Projects/Clones/runtimelab/Build.proj]
/Users/Hamish/Projects/Clones/runtimelab/.dotnet/sdk/6.0.100-rc.1.21430.12/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(129,5): error NETSDK1084: There is no application host available for the specified RuntimeIdentifier 'browser-wasm'. [/Users/Hamish/Projects/Clones/runtimelab/Build.proj]
/Users/Hamish/Projects/Clones/runtimelab/.dotnet/sdk/6.0.100-rc.1.21430.12/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(129,5): error NETSDK1084: There is no application host available for the specified RuntimeIdentifier 'browser-wasm'. [/Users/Hamish/Projects/Clones/runtimelab/Build.proj]

Build FAILED.

/Users/Hamish/Projects/Clones/runtimelab/.dotnet/sdk/6.0.100-rc.1.21430.12/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(129,5): error NETSDK1084: There is no application host available for the specified RuntimeIdentifier 'browser-wasm'. [/Users/Hamish/Projects/Clones/runtimelab/Build.proj]
/Users/Hamish/Projects/Clones/runtimelab/.dotnet/sdk/6.0.100-rc.1.21430.12/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(129,5): error NETSDK1084: There is no application host available for the specified RuntimeIdentifier 'browser-wasm'. [/Users/Hamish/Projects/Clones/runtimelab/Build.proj]
/Users/Hamish/Projects/Clones/runtimelab/.dotnet/sdk/6.0.100-rc.1.21430.12/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(129,5): error NETSDK1084: There is no application host available for the specified RuntimeIdentifier 'browser-wasm'. [/Users/Hamish/Projects/Clones/runtimelab/Build.proj]
/Users/Hamish/Projects/Clones/runtimelab/.dotnet/sdk/6.0.100-rc.1.21430.12/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(129,5): error NETSDK1084: There is no application host available for the specified RuntimeIdentifier 'browser-wasm'. [/Users/Hamish/Projects/Clones/runtimelab/Build.proj]
    0 Warning(s)
    4 Error(s)

Time Elapsed 00:00:35.69
Build failed with exit code 1. Check errors above.
SingleAccretion commented 1 year ago

If I just re-include it there, would it work?

No, it would require a bunch of plumbing - mainly PAL-related I would imagine, similar to what porting to a new platform usually entails for CoreCLR (example: https://github.com/dotnet/runtime/pull/53287).

There is no application host available for the specified RuntimeIdentifier 'browser-wasm'

It is presumably trying to build some managed component, which won't work. "Fixable" by adjusting the default subsets for WASM in eng/Subsets.props, though it would probably be easier to just use the pure native subsets directly (i. e. clr.iltools) for porting.

hamarb123 commented 1 year ago

Thanks @SingleAccretion, I've tried it with clr.iltools.

Error
__DistroRid: browser-wasm
  Determining projects to restore...
  Tool 'coverlet.console' (version '1.7.2') was restored. Available commands: coverlet
  Tool 'dotnet-reportgenerator-globaltool' (version '4.5.8') was restored. Available commands: reportgenerator
  Tool 'microsoft.dotnet.xharness.cli' (version '1.0.0-prerelease.21465.1') was restored. Available commands: xharness
  Tool 'microsoft.visualstudio.slngen.tool' (version '6.1.10') was restored. Available commands: slngen

  Restore was successful.
  All projects are up-to-date for restore.
  Determining projects to restore...
  All projects are up-to-date for restore.
  runtime -> 
  Commencing CoreCLR Repo build
  __DistroRid: browser-wasm
  Setting up directories for build
  Checking prerequisites...
  /usr/local/bin/pkg-config
  Commencing build of "  iltools " target in "CoreCLR component" for Browser.wasm.Release in /Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release
  /Users/Hamish/Projects/Clones/runtimelab/.dotnet/sdk/6.0.100-rc.1.21430.12/MSBuild.dll /nologo -bl:/Users/Hamish/Projects/Clones/runtimelab/artifacts/log/Release/GenNativeVersion_Browser.wasm.Release.binlog -distributedlogger:Microsoft.DotNet.Tools.MSBuild.MSBuildLogger,/Users/Hamish/Projects/Clones/runtimelab/.dotnet/sdk/6.0.100-rc.1.21430.12/dotnet.dll*Microsoft.DotNet.Tools.MSBuild.MSBuildForwardingLogger,/Users/Hamish/Projects/Clones/runtimelab/.dotnet/sdk/6.0.100-rc.1.21430.12/dotnet.dll -maxcpucount /m -verbosity:m /v:minimal /clp:Summary /clp:nosummary /nr:true /nodeReuse:false /p:TreatWarningsAsErrors=true /p:ContinuousIntegrationBuild=false /p:NativeVersionFile=/Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release/version.c /p:RuntimeVersionFile=/Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release/../runtime_version.h /p:TargetArchitecture=wasm /p:Configuration=Release /p:TargetOS=Browser /restore /t:GenerateRuntimeVersionFile /warnaserror /Users/Hamish/Projects/Clones/runtimelab/eng/empty.csproj
    Determining projects to restore...
    All projects are up-to-date for restore.
  Invoking "/Users/Hamish/Projects/Clones/runtimelab/eng/native/gen-buildsys.sh" "/Users/Hamish/Projects/Clones/runtimelab/src/coreclr" "/Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release" wasm clang "" "" Release ""  -DCLR_CMAKE_PGO_INSTRUMENT=0 -DCLR_CMAKE_OPTDATA_PATH= -DCLR_CMAKE_PGO_OPTIMIZE=1 
  /Users/Hamish/Projects/Clones/runtimelab/eng/native/../common/native/init-compiler.sh: line 16: /Users/Hamish/Projects/Clones/runtimelab/eng/native/../pipeline-logging-functions.sh: No such file or directory
  CMake command line is unchanged. Reusing previous cache instead of regenerating.
  Unable to find generated build files for "CoreCLR component" project!
/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/runtime.proj(48,5): error MSB3073: The command ""/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/build-runtime.sh" -wasm -release -os Browser -component iltools" exited with code 1.

Build FAILED.

/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/runtime.proj(48,5): error MSB3073: The command ""/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/build-runtime.sh" -wasm -release -os Browser -component iltools" exited with code 1.
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:05.67
Build failed with exit code 1. Check errors above.

Should I modify eng/Subsets.props still? What would I modify in there?

SingleAccretion commented 1 year ago

CMake command line is unchanged. Reusing previous cache instead of regenerating. Unable to find generated build files for "CoreCLR component" project!

A common problem... there is some caching in build-runtime.sh that makes things difficult sometimes: https://github.com/dotnet/runtimelab/blob/20f3949f190f196ab4b958cacbeca1ff76ba3383/eng/native/gen-buildsys.sh#L102-L113

The workaround is to either disable it when working on build system changes or delete the sentinel file manually.

In all likelihood, there will be many more build errors to solve after that.

Should I modify eng/Subsets.props still?

It's not really necessary. Modifying the file would just control what the "composite" clr subset actually means (e. g. you could redefine it to mean clr.iltools).

hamarb123 commented 1 year ago

Thanks, I just deleted the artifacts folder. It then was missing emcmake, so I installed the emscripten tools, we'll see if it works this time :)

Edit: it seemed to build, but I hadn't updated the cmakelists to try to build ilasm, I've done this now

hamarb123 commented 1 year ago

I've now got the following:

Error
__DistroRid: browser-wasm
  Determining projects to restore...
  Tool 'coverlet.console' (version '1.7.2') was restored. Available commands: coverlet
  Tool 'dotnet-reportgenerator-globaltool' (version '4.5.8') was restored. Available commands: reportgenerator
  Tool 'microsoft.dotnet.xharness.cli' (version '1.0.0-prerelease.21465.1') was restored. Available commands: xharness
  Tool 'microsoft.visualstudio.slngen.tool' (version '6.1.10') was restored. Available commands: slngen

  Restore was successful.
  All projects are up-to-date for restore.
  Determining projects to restore...
  All projects are up-to-date for restore.
  runtime -> 
  Commencing CoreCLR Repo build
  __DistroRid: browser-wasm
  Setting up directories for build
  Checking prerequisites...
  /usr/local/bin/pkg-config
  Commencing build of "  iltools " target in "CoreCLR component" for Browser.wasm.Release in /Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release
  /Users/Hamish/Projects/Clones/runtimelab/.dotnet/sdk/6.0.100-rc.1.21430.12/MSBuild.dll /nologo -bl:/Users/Hamish/Projects/Clones/runtimelab/artifacts/log/Release/GenNativeVersion_Browser.wasm.Release.binlog -distributedlogger:Microsoft.DotNet.Tools.MSBuild.MSBuildLogger,/Users/Hamish/Projects/Clones/runtimelab/.dotnet/sdk/6.0.100-rc.1.21430.12/dotnet.dll*Microsoft.DotNet.Tools.MSBuild.MSBuildForwardingLogger,/Users/Hamish/Projects/Clones/runtimelab/.dotnet/sdk/6.0.100-rc.1.21430.12/dotnet.dll -maxcpucount /m -verbosity:m /v:minimal /clp:Summary /clp:nosummary /nr:true /nodeReuse:false /p:TreatWarningsAsErrors=true /p:ContinuousIntegrationBuild=false /p:NativeVersionFile=/Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release/version.c /p:RuntimeVersionFile=/Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release/../runtime_version.h /p:TargetArchitecture=wasm /p:Configuration=Release /p:TargetOS=Browser /restore /t:GenerateRuntimeVersionFile /warnaserror /Users/Hamish/Projects/Clones/runtimelab/eng/empty.csproj
    Determining projects to restore...
    All projects are up-to-date for restore.
  Invoking "/Users/Hamish/Projects/Clones/runtimelab/eng/native/gen-buildsys.sh" "/Users/Hamish/Projects/Clones/runtimelab/src/coreclr" "/Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release" wasm clang "" "" Release ""  -DCLR_CMAKE_PGO_INSTRUMENT=0 -DCLR_CMAKE_OPTDATA_PATH= -DCLR_CMAKE_PGO_OPTIMIZE=1 
  /Users/Hamish/Projects/Clones/runtimelab/eng/native/../common/native/init-compiler.sh: line 16: /Users/Hamish/Projects/Clones/runtimelab/eng/native/../pipeline-logging-functions.sh: No such file or directory
  CMake command line is unchanged. Reusing previous cache instead of regenerating.
  ~/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release ~/Projects/Clones/runtimelab/src/coreclr
  Executing make   iltools  -j 17
  including ICU
  -- Configuring done
  -- Generating done
  -- Build files have been written to: /Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release
  [ 20%] Building CXX object ilasm/CMakeFiles/ilasm.dir/assem.cpp.o
  [ 30%] Building CXX object ilasm/CMakeFiles/ilasm.dir/main.cpp.o
  [ 30%] Building CXX object ilasm/CMakeFiles/ilasm.dir/writer.cpp.o
  [ 60%] Building CXX object ilasm/CMakeFiles/ilasm.dir/assembler.cpp.o
  [ 60%] Building CXX object ilasm/CMakeFiles/ilasm.dir/method.cpp.o
  [ 60%] Building CXX object ilasm/CMakeFiles/ilasm.dir/asmman.cpp.o
  [ 70%] Building CXX object ilasm/CMakeFiles/ilasm.dir/prebuilt/asmparse.cpp.o
  [ 80%] Building CXX object ilasm/CMakeFiles/ilasm.dir/portable_pdb.cpp.o
  [ 90%] Building C object ilasm/CMakeFiles/ilasm.dir/__/version.c.o
  In file included from /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/method.cpp:8:
  In file included from /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/./ilasmpch.h:8:
  /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc/cor.h:16:10: fatal error: 'ole2.h' file not found
  #include                        // Definitions of OLE types.
           ^~~~~~~~
  In file included from /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/main.cpp:8:
  In file included from /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/./ilasmpch.h:8:
  /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc/cor.h:16:10: fatal error: 'ole2.h' file not found
  #include                        // Definitions of OLE types.
           ^~~~~~~~
  In file included from /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/writer.cpp:7:
  In file included from /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/./ilasmpch.h:8:
  /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc/cor.h:16:10: fatal error: 'ole2.h' file not found
  In file included from /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/assem.cpp:10#include                        // Definitions of OLE types.:

  In file included from          ^~~~~~~~
  /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/./ilasmpch.h:8:
  /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc/cor.h:16:10: fatal error: 'ole2.h' file not found
  #include                        // Definitions of OLE types.
           ^~~~~~~~
  In file included from /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/assembler.cpp:9:
  In file included from /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/./ilasmpch.h:8:
  /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc/cor.h:16:10: fatal error: 'ole2.h' file not found
  #include                        // Definitions of OLE types.
           ^~~~~~~~
  In file included from asmparse.y:9:
  In file included from /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/./ilasmpch.h:8:
  /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc/cor.h:16:10: fatal error: 'ole2.h' file not found
  #include                        // Definitions of OLE types.
           ^~~~~~~~
  In file included from /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/portable_pdb.cpp:4:
  In file included from /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/./portable_pdb.h:7:
  In file included from /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/./ilasmpch.h:8:
  /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc/cor.h:16:10: fatal error: 'ole2.h' file not found
  #include                        // Definitions of OLE types.
           ^~~~~~~~
  In file included from /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/asmman.cpp:8:
  In file included from /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/./ilasmpch.h:8:
  /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc/cor.h:16:10: fatal error: 'ole2.h' file not found
  #include                        // Definitions of OLE types.
           ^~~~~~~~
  1 error generated.
  1 error generated.
  em++: error: '/usr/local/Cellar/emscripten/3.1.25/libexec/llvm/bin/clang++ -target wasm32-unknown-emscripten -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -DEMSCRIPTEN -I/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot/include/SDL --sysroot=/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot -Xclang -iwithsysroot/include/compat -DDEBUGGING_SUPPORTED -DDISABLE_CONTRACTS -DEnC_SUPPORTED -DFEATURE_64BIT_ALIGNMENT=1 -DFEATURE_ARRAYSTUB_AS_IL -DFEATURE_BASICFREEZE -DFEATURE_CODE_VERSIONING -DFEATURE_COLLECTIBLE_TYPES -DFEATURE_COMWRAPPERS -DFEATURE_CORECLR -DFEATURE_CORESYSTEM -DFEATURE_DBGIPC_TRANSPORT_DI -DFEATURE_DBGIPC_TRANSPORT_VM -DFEATURE_DEFAULT_INTERFACES -DFEATURE_EH_FUNCLETS -DFEATURE_HIJACK -DFEATURE_ICASTABLE -DFEATURE_INSTANTIATINGSTUB_AS_IL -DFEATURE_ISYM_READER -DFEATURE_MANAGED_ETW_CHANNELS -DFEATURE_METADATA_EMIT_PORTABLE_PDB -DFEATURE_MULTICASTSTUB_AS_IL -DFEATURE_MULTICOREJIT -DFEATURE_PAL_ANSI -DFEATURE_PGO -DFEATURE_PORTABLE_SHUFFLE_THUNKS -DFEATURE_PROFAPI_ATTACH_DETACH -DFEATURE_READYTORUN -DFEATURE_REJIT -DFEATURE_STUBS_AS_IL -DFEATURE_SVR_GC -DFEATURE_SYMDIFF -DFEATURE_TIERED_COMPILATION -DFEATURE_USE_ASM_GC_WRITE_BARRIERS -DHOST_WASM=1 -DNDEBUG -DPROFILING_SUPPORTED -DTARGET_32BIT -DTARGET_UNIX -DTARGET_WASM -DUNICODE -DURTBLDENV_FRIENDLY=Retail -D_BLD_CLR -D_FEATURE_NO_HOST -D_FILE_OFFSET_BITS=64 -D_SECURE_SCL=0 -D_UNICODE -D__ILASM__ -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/pal/prebuilt/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/../../artifacts/obj/coreclr -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/wasm -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/dump -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/md/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/bcltype -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/cryptography -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/inc -I/Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/hosts/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/minipal -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/. -O3 -DNDEBUG -fms-extensions -Wno-unused-variable -Wno-unused-value -Wno-unused-function -Wno-tautological-compare -Wno-invalid-offsetof -std=gnu++11 -MD -MT ilasm/CMakeFiles/ilasm.dir/method.cpp.o -MF CMakeFiles/ilasm.dir/method.cpp.o.d -c /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/method.cpp -o CMakeFiles/ilasm.dir/method.cpp.o' failed (returned 1)
  em++: error: '/usr/local/Cellar/emscripten/3.1.25/libexec/llvm/bin/clang++ -target wasm32-unknown-emscripten -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -DEMSCRIPTEN -I/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot/include/SDL --sysroot=/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot -Xclang -iwithsysroot/include/compat -DDEBUGGING_SUPPORTED -DDISABLE_CONTRACTS -DEnC_SUPPORTED -DFEATURE_64BIT_ALIGNMENT=1 -DFEATURE_ARRAYSTUB_AS_IL -DFEATURE_BASICFREEZE -DFEATURE_CODE_VERSIONING -DFEATURE_COLLECTIBLE_TYPES -DFEATURE_COMWRAPPERS -DFEATURE_CORECLR -DFEATURE_CORESYSTEM -DFEATURE_DBGIPC_TRANSPORT_DI -DFEATURE_DBGIPC_TRANSPORT_VM -DFEATURE_DEFAULT_INTERFACES -DFEATURE_EH_FUNCLETS -DFEATURE_HIJACK -DFEATURE_ICASTABLE -DFEATURE_INSTANTIATINGSTUB_AS_IL -DFEATURE_ISYM_READER -DFEATURE_MANAGED_ETW_CHANNELS -DFEATURE_METADATA_EMIT_PORTABLE_PDB -DFEATURE_MULTICASTSTUB_AS_IL -DFEATURE_MULTICOREJIT -DFEATURE_PAL_ANSI -DFEATURE_PGO -DFEATURE_PORTABLE_SHUFFLE_THUNKS -DFEATURE_PROFAPI_ATTACH_DETACH -DFEATURE_READYTORUN -DFEATURE_REJIT -DFEATURE_STUBS_AS_IL -DFEATURE_SVR_GC -DFEATURE_SYMDIFF -DFEATURE_TIERED_COMPILATION -DFEATURE_USE_ASM_GC_WRITE_BARRIERS -DHOST_WASM=1 -DNDEBUG -DPROFILING_SUPPORTED -DTARGET_32BIT -DTARGET_UNIX -DTARGET_WASM -DUNICODE -DURTBLDENV_FRIENDLY=Retail -D_BLD_CLR -D_FEATURE_NO_HOST -D_FILE_OFFSET_BITS=64 -D_SECURE_SCL=0 -D_UNICODE -D__ILASM__ -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/pal/prebuilt/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/../../artifacts/obj/coreclr -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/wasm -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/dump -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/md/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/bcltype -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/cryptography -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/inc -I/Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/hosts/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/minipal -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/. -O3 -DNDEBUG -fms-extensions -Wno-unused-variable -Wno-unused-value -Wno-unused-function -Wno-tautological-compare -Wno-invalid-offsetof -std=gnu++11 -MD -MT ilasm/CMakeFiles/ilasm.dir/writer.cpp.o -MF CMakeFiles/ilasm.dir/writer.cpp.o.d -c /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/writer.cpp -o CMakeFiles/ilasm.dir/writer.cpp.o' failed (returned 1)
  1 error generated.
  1 error generated.
  em++: error: '/usr/local/Cellar/emscripten/3.1.25/libexec/llvm/bin/clang++ -target wasm32-unknown-emscripten -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -DEMSCRIPTEN -I/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot/include/SDL --sysroot=/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot -Xclang -iwithsysroot/include/compat -DDEBUGGING_SUPPORTED -DDISABLE_CONTRACTS -DEnC_SUPPORTED -DFEATURE_64BIT_ALIGNMENT=1 -DFEATURE_ARRAYSTUB_AS_IL -DFEATURE_BASICFREEZE -DFEATURE_CODE_VERSIONING -DFEATURE_COLLECTIBLE_TYPES -DFEATURE_COMWRAPPERS -DFEATURE_CORECLR -DFEATURE_CORESYSTEM -DFEATURE_DBGIPC_TRANSPORT_DI -DFEATURE_DBGIPC_TRANSPORT_VM -DFEATURE_DEFAULT_INTERFACES -DFEATURE_EH_FUNCLETS -DFEATURE_HIJACK -DFEATURE_ICASTABLE -DFEATURE_INSTANTIATINGSTUB_AS_IL -DFEATURE_ISYM_READER -DFEATURE_MANAGED_ETW_CHANNELS -DFEATURE_METADATA_EMIT_PORTABLE_PDB -DFEATURE_MULTICASTSTUB_AS_IL -DFEATURE_MULTICOREJIT -DFEATURE_PAL_ANSI -DFEATURE_PGO -DFEATURE_PORTABLE_SHUFFLE_THUNKS -DFEATURE_PROFAPI_ATTACH_DETACH -DFEATURE_READYTORUN -DFEATURE_REJIT -DFEATURE_STUBS_AS_IL -DFEATURE_SVR_GC -DFEATURE_SYMDIFF -DFEATURE_TIERED_COMPILATION -DFEATURE_USE_ASM_GC_WRITE_BARRIERS -DHOST_WASM=1 -DNDEBUG -DPROFILING_SUPPORTED -DTARGET_32BIT -DTARGET_UNIX -DTARGET_WASM -DUNICODE -DURTBLDENV_FRIENDLY=Retail -D_BLD_CLR -D_FEATURE_NO_HOST -D_FILE_OFFSET_BITS=64 -D_SECURE_SCL=0 -D_UNICODE -D__ILASM__ -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/pal/prebuilt/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/../../artifacts/obj/coreclr -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/wasm -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/dump -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/md/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/bcltype -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/cryptography -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/inc -I/Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/hosts/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/minipal -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/. -O3 -DNDEBUG -fms-extensions -Wno-unused-variable -Wno-unused-value -Wno-unused-function -Wno-tautological-compare -Wno-invalid-offsetof -std=gnu++11 -MD -MT ilasm/CMakeFiles/ilasm.dir/portable_pdb.cpp.o -MF CMakeFiles/ilasm.dir/portable_pdb.cpp.o.d -c /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/portable_pdb.cpp -o CMakeFiles/ilasm.dir/portable_pdb.cpp.o' failed (returned 1)
  1 error generated.
  1 error generated.
  1 error generated.
  em++: error: '/usr/local/Cellar/emscripten/3.1.25/libexec/llvm/bin/clang++ -target wasm32-unknown-emscripten -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -DEMSCRIPTEN -I/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot/include/SDL --sysroot=/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot -Xclang -iwithsysroot/include/compat -DDEBUGGING_SUPPORTED -DDISABLE_CONTRACTS -DEnC_SUPPORTED -DFEATURE_64BIT_ALIGNMENT=1 -DFEATURE_ARRAYSTUB_AS_IL -DFEATURE_BASICFREEZE -DFEATURE_CODE_VERSIONING -DFEATURE_COLLECTIBLE_TYPES -DFEATURE_COMWRAPPERS -DFEATURE_CORECLR -DFEATURE_CORESYSTEM -DFEATURE_DBGIPC_TRANSPORT_DI -DFEATURE_DBGIPC_TRANSPORT_VM -DFEATURE_DEFAULT_INTERFACES -DFEATURE_EH_FUNCLETS -DFEATURE_HIJACK -DFEATURE_ICASTABLE -DFEATURE_INSTANTIATINGSTUB_AS_IL -DFEATURE_ISYM_READER -DFEATURE_MANAGED_ETW_CHANNELS -DFEATURE_METADATA_EMIT_PORTABLE_PDB -DFEATURE_MULTICASTSTUB_AS_IL -DFEATURE_MULTICOREJIT -DFEATURE_PAL_ANSI -DFEATURE_PGO -DFEATURE_PORTABLE_SHUFFLE_THUNKS -DFEATURE_PROFAPI_ATTACH_DETACH -DFEATURE_READYTORUN -DFEATURE_REJIT -DFEATURE_STUBS_AS_IL -DFEATURE_SVR_GC -DFEATURE_SYMDIFF -DFEATURE_TIERED_COMPILATION -DFEATURE_USE_ASM_GC_WRITE_BARRIERS -DHOST_WASM=1 -DNDEBUG -DPROFILING_SUPPORTED -DTARGET_32BIT -DTARGET_UNIX -DTARGET_WASM -DUNICODE -DURTBLDENV_FRIENDLY=Retail -D_BLD_CLR -D_FEATURE_NO_HOST -D_FILE_OFFSET_BITS=64 -D_SECURE_SCL=0 -D_UNICODE -D__ILASM__ -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/pal/prebuilt/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/../../artifacts/obj/coreclr -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/wasm -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/dump -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/md/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/bcltype -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/cryptography -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/inc -I/Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/hosts/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/minipal -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/. -O3 -DNDEBUG -fms-extensions -Wno-unused-variable -Wno-unused-value -Wno-unused-function -Wno-tautological-compare -Wno-invalid-offsetof -std=gnu++11 -MD -MT ilasm/CMakeFiles/ilasm.dir/assem.cpp.o -MF CMakeFiles/ilasm.dir/assem.cpp.o.d -c /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/assem.cpp -o CMakeFiles/ilasm.dir/assem.cpp.o' failed (returned 1)
  em++: error: '/usr/local/Cellar/emscripten/3.1.25/libexec/llvm/bin/clang++ -target wasm32-unknown-emscripten -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -DEMSCRIPTEN -I/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot/include/SDL --sysroot=/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot -Xclang -iwithsysroot/include/compat -DDEBUGGING_SUPPORTED -DDISABLE_CONTRACTS -DEnC_SUPPORTED -DFEATURE_64BIT_ALIGNMENT=1 -DFEATURE_ARRAYSTUB_AS_IL -DFEATURE_BASICFREEZE -DFEATURE_CODE_VERSIONING -DFEATURE_COLLECTIBLE_TYPES -DFEATURE_COMWRAPPERS -DFEATURE_CORECLR -DFEATURE_CORESYSTEM -DFEATURE_DBGIPC_TRANSPORT_DI -DFEATURE_DBGIPC_TRANSPORT_VM -DFEATURE_DEFAULT_INTERFACES -DFEATURE_EH_FUNCLETS -DFEATURE_HIJACK -DFEATURE_ICASTABLE -DFEATURE_INSTANTIATINGSTUB_AS_IL -DFEATURE_ISYM_READER -DFEATURE_MANAGED_ETW_CHANNELS -DFEATURE_METADATA_EMIT_PORTABLE_PDB -DFEATURE_MULTICASTSTUB_AS_IL -DFEATURE_MULTICOREJIT -DFEATURE_PAL_ANSI -DFEATURE_PGO -DFEATURE_PORTABLE_SHUFFLE_THUNKS -DFEATURE_PROFAPI_ATTACH_DETACH -DFEATURE_READYTORUN -DFEATURE_REJIT -DFEATURE_STUBS_AS_IL -DFEATURE_SVR_GC -DFEATURE_SYMDIFF -DFEATURE_TIERED_COMPILATION -DFEATURE_USE_ASM_GC_WRITE_BARRIERS -DHOST_WASM=1 -DNDEBUG -DPROFILING_SUPPORTED -DTARGET_32BIT -DTARGET_UNIX -DTARGET_WASM -DUNICODE -DURTBLDENV_FRIENDLY=Retail -D_BLD_CLR -D_FEATURE_NO_HOST -D_FILE_OFFSET_BITS=64 -D_SECURE_SCL=0 -D_UNICODE -D__ILASM__ -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/pal/prebuilt/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/../../artifacts/obj/coreclr -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/wasm -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/dump -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/md/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/bcltype -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/cryptography -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/inc -I/Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/hosts/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/minipal -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/. -O3 -DNDEBUG -fms-extensions -Wno-unused-variable -Wno-unused-value -Wno-unused-function -Wno-tautological-compare -Wno-invalid-offsetof -std=gnu++11 -MD -MT ilasm/CMakeFiles/ilasm.dir/main.cpp.o -MF CMakeFiles/ilasm.dir/main.cpp.o.d -c /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/main.cpp -o CMakeFiles/ilasm.dir/main.cpp.o' failed (returned 1)
  em++: error: '/usr/local/Cellar/emscripten/3.1.25/libexec/llvm/bin/clang++ -target wasm32-unknown-emscripten -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -DEMSCRIPTEN -I/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot/include/SDL --sysroot=/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot -Xclang -iwithsysroot/include/compat -DDEBUGGING_SUPPORTED -DDISABLE_CONTRACTS -DEnC_SUPPORTED -DFEATURE_64BIT_ALIGNMENT=1 -DFEATURE_ARRAYSTUB_AS_IL -DFEATURE_BASICFREEZE -DFEATURE_CODE_VERSIONING -DFEATURE_COLLECTIBLE_TYPES -DFEATURE_COMWRAPPERS -DFEATURE_CORECLR -DFEATURE_CORESYSTEM -DFEATURE_DBGIPC_TRANSPORT_DI -DFEATURE_DBGIPC_TRANSPORT_VM -DFEATURE_DEFAULT_INTERFACES -DFEATURE_EH_FUNCLETS -DFEATURE_HIJACK -DFEATURE_ICASTABLE -DFEATURE_INSTANTIATINGSTUB_AS_IL -DFEATURE_ISYM_READER -DFEATURE_MANAGED_ETW_CHANNELS -DFEATURE_METADATA_EMIT_PORTABLE_PDB -DFEATURE_MULTICASTSTUB_AS_IL -DFEATURE_MULTICOREJIT -DFEATURE_PAL_ANSI -DFEATURE_PGO -DFEATURE_PORTABLE_SHUFFLE_THUNKS -DFEATURE_PROFAPI_ATTACH_DETACH -DFEATURE_READYTORUN -DFEATURE_REJIT -DFEATURE_STUBS_AS_IL -DFEATURE_SVR_GC -DFEATURE_SYMDIFF -DFEATURE_TIERED_COMPILATION -DFEATURE_USE_ASM_GC_WRITE_BARRIERS -DHOST_WASM=1 -DNDEBUG -DPROFILING_SUPPORTED -DTARGET_32BIT -DTARGET_UNIX -DTARGET_WASM -DUNICODE -DURTBLDENV_FRIENDLY=Retail -D_BLD_CLR -D_FEATURE_NO_HOST -D_FILE_OFFSET_BITS=64 -D_SECURE_SCL=0 -D_UNICODE -D__ILASM__ -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/pal/prebuilt/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/../../artifacts/obj/coreclr -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/wasm -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/dump -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/md/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/bcltype -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/cryptography -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/inc -I/Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/hosts/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/minipal -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/. -O3 -DNDEBUG -fms-extensions -Wno-unused-variable -Wno-unused-value -Wno-unused-function -Wno-tautological-compare -Wno-invalid-offsetof -std=gnu++11 -MD -MT ilasm/CMakeFiles/ilasm.dir/asmman.cpp.o -MF CMakeFiles/ilasm.dir/asmman.cpp.o.d -c /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/asmman.cpp -o CMakeFiles/ilasm.dir/asmman.cpp.o' failed (returned 1)
  em++: error: '/usr/local/Cellar/emscripten/3.1.25/libexec/llvm/bin/clang++ -target wasm32-unknown-emscripten -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -DEMSCRIPTEN -I/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot/include/SDL --sysroot=/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot -Xclang -iwithsysroot/include/compat -DDEBUGGING_SUPPORTED -DDISABLE_CONTRACTS -DEnC_SUPPORTED -DFEATURE_64BIT_ALIGNMENT=1 -DFEATURE_ARRAYSTUB_AS_IL -DFEATURE_BASICFREEZE -DFEATURE_CODE_VERSIONING -DFEATURE_COLLECTIBLE_TYPES -DFEATURE_COMWRAPPERS -DFEATURE_CORECLR -DFEATURE_CORESYSTEM -DFEATURE_DBGIPC_TRANSPORT_DI -DFEATURE_DBGIPC_TRANSPORT_VM -DFEATURE_DEFAULT_INTERFACES -DFEATURE_EH_FUNCLETS -DFEATURE_HIJACK -DFEATURE_ICASTABLE -DFEATURE_INSTANTIATINGSTUB_AS_IL -DFEATURE_ISYM_READER -DFEATURE_MANAGED_ETW_CHANNELS -DFEATURE_METADATA_EMIT_PORTABLE_PDB -DFEATURE_MULTICASTSTUB_AS_IL -DFEATURE_MULTICOREJIT -DFEATURE_PAL_ANSI -DFEATURE_PGO -DFEATURE_PORTABLE_SHUFFLE_THUNKS -DFEATURE_PROFAPI_ATTACH_DETACH -DFEATURE_READYTORUN -DFEATURE_REJIT -DFEATURE_STUBS_AS_IL -DFEATURE_SVR_GC -DFEATURE_SYMDIFF -DFEATURE_TIERED_COMPILATION -DFEATURE_USE_ASM_GC_WRITE_BARRIERS -DHOST_WASM=1 -DNDEBUG -DPROFILING_SUPPORTED -DTARGET_32BIT -DTARGET_UNIX -DTARGET_WASM -DUNICODE -DURTBLDENV_FRIENDLY=Retail -D_BLD_CLR -D_FEATURE_NO_HOST -D_FILE_OFFSET_BITS=64 -D_SECURE_SCL=0 -D_UNICODE -D__ILASM__ -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/pal/prebuilt/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/../../artifacts/obj/coreclr -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/wasm -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/dump -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/md/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/bcltype -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/cryptography -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/inc -I/Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/hosts/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/minipal -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/. -O3 -DNDEBUG -fms-extensions -Wno-unused-variable -Wno-unused-value -Wno-unused-function -Wno-tautological-compare -Wno-invalid-offsetof -std=gnu++11 -MD -MT ilasm/CMakeFiles/ilasm.dir/assembler.cpp.o -MF CMakeFiles/ilasm.dir/assembler.cpp.o.d -c /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/assembler.cpp -o CMakeFiles/ilasm.dir/assembler.cpp.o' failed (returned 1)
  make[3]: *** [ilasm/CMakeFiles/ilasm.dir/method.cpp.o] Error 1
  make[3]: *** Waiting for unfinished jobs....
  make[3]: *** [ilasm/CMakeFiles/ilasm.dir/writer.cpp.o] Error 1
  make[3]: *** [ilasm/CMakeFiles/ilasm.dir/portable_pdb.cpp.o] Error 1
  make[3]: *** [ilasm/CMakeFiles/ilasm.dir/assem.cpp.o] Error 1
  make[3]: *** [ilasm/CMakeFiles/ilasm.dir/main.cpp.o] Error 1
  make[3]: *** [ilasm/CMakeFiles/ilasm.dir/assembler.cpp.o] Error 1
  make[3]: *** [ilasm/CMakeFiles/ilasm.dir/asmman.cpp.o] Error 1
  1 error generated.
  em++: error: '/usr/local/Cellar/emscripten/3.1.25/libexec/llvm/bin/clang++ -target wasm32-unknown-emscripten -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -DEMSCRIPTEN -I/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot/include/SDL --sysroot=/usr/local/Cellar/emscripten/3.1.25/libexec/cache/sysroot -Xclang -iwithsysroot/include/compat -DDEBUGGING_SUPPORTED -DDISABLE_CONTRACTS -DEnC_SUPPORTED -DFEATURE_64BIT_ALIGNMENT=1 -DFEATURE_ARRAYSTUB_AS_IL -DFEATURE_BASICFREEZE -DFEATURE_CODE_VERSIONING -DFEATURE_COLLECTIBLE_TYPES -DFEATURE_COMWRAPPERS -DFEATURE_CORECLR -DFEATURE_CORESYSTEM -DFEATURE_DBGIPC_TRANSPORT_DI -DFEATURE_DBGIPC_TRANSPORT_VM -DFEATURE_DEFAULT_INTERFACES -DFEATURE_EH_FUNCLETS -DFEATURE_HIJACK -DFEATURE_ICASTABLE -DFEATURE_INSTANTIATINGSTUB_AS_IL -DFEATURE_ISYM_READER -DFEATURE_MANAGED_ETW_CHANNELS -DFEATURE_METADATA_EMIT_PORTABLE_PDB -DFEATURE_MULTICASTSTUB_AS_IL -DFEATURE_MULTICOREJIT -DFEATURE_PAL_ANSI -DFEATURE_PGO -DFEATURE_PORTABLE_SHUFFLE_THUNKS -DFEATURE_PROFAPI_ATTACH_DETACH -DFEATURE_READYTORUN -DFEATURE_REJIT -DFEATURE_STUBS_AS_IL -DFEATURE_SVR_GC -DFEATURE_SYMDIFF -DFEATURE_TIERED_COMPILATION -DFEATURE_USE_ASM_GC_WRITE_BARRIERS -DHOST_WASM=1 -DNDEBUG -DPROFILING_SUPPORTED -DTARGET_32BIT -DTARGET_UNIX -DTARGET_WASM -DUNICODE -DURTBLDENV_FRIENDLY=Retail -D_BLD_CLR -D_FEATURE_NO_HOST -D_FILE_OFFSET_BITS=64 -D_SECURE_SCL=0 -D_UNICODE -D__ILASM__ -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/pal/prebuilt/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/../../artifacts/obj/coreclr -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/wasm -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/debug/inc/dump -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/md/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/bcltype -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/cryptography -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/classlibnative/inc -I/Users/Hamish/Projects/Clones/runtimelab/artifacts/obj/coreclr/Browser.wasm.Release/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/hosts/inc -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/minipal -I/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/. -O3 -DNDEBUG -fms-extensions -Wno-unused-variable -Wno-unused-value -Wno-unused-function -Wno-tautological-compare -Wno-invalid-offsetof -std=gnu++11 -MD -MT ilasm/CMakeFiles/ilasm.dir/prebuilt/asmparse.cpp.o -MF CMakeFiles/ilasm.dir/prebuilt/asmparse.cpp.o.d -c /Users/Hamish/Projects/Clones/runtimelab/src/coreclr/ilasm/prebuilt/asmparse.cpp -o CMakeFiles/ilasm.dir/prebuilt/asmparse.cpp.o' failed (returned 1)
  make[3]: *** [ilasm/CMakeFiles/ilasm.dir/prebuilt/asmparse.cpp.o] Error 1
  make[2]: *** [ilasm/CMakeFiles/ilasm.dir/all] Error 2
  make[1]: *** [CMakeFiles/iltools.dir/rule] Error 2
  make: *** [iltools] Error 2
  ~/Projects/Clones/runtimelab/src/coreclr
  Failed to build "CoreCLR component".
/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/runtime.proj(48,5): error MSB3073: The command ""/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/build-runtime.sh" -wasm -release -os Browser -component iltools" exited with code 2.

Build FAILED.

/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/runtime.proj(48,5): error MSB3073: The command ""/Users/Hamish/Projects/Clones/runtimelab/src/coreclr/build-runtime.sh" -wasm -release -os Browser -component iltools" exited with code 2.
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:08.87
Build failed with exit code 1. Check errors above.

Not sure what ole2.h is, but it seems to be very sad it's missing. I found an ole2.h in the dotnet/runtime repo https://github.com/dotnet/runtime/blob/57bfe474518ab5b7cfe6bf7424a79ce3af9d6657/src/coreclr/pal/inc/rt/ole2.h, how would I fix it (or a different one) not being included correctly?

SingleAccretion commented 1 year ago

It looks like (some of?) the PAL is missing. Not an expert on this unfortunately, so I would not know more than you do here.

jkotas commented 1 year ago

I want to build ilasm for webassembly.

It is going to require non-trivial amount of work. You may have more luck with making it work in dotnet/runtime main branch than here. dotnet/runtime has more than year worth of CoreCLR PAL and build system cleanups. The NativeAOT-LLVM branch is not up to date with dotnet/runtime main.

hamarb123 commented 1 year ago

I tried it on the dotnet/runtime branch and got the following error:

Error
__DistroRid: browser-wasm
Downloading 'https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh'
Attempting to install dotnet from public_location.
dotnet-install: Note that the intended use of this script is for Continuous Integration (CI) scenarios, where:
dotnet-install: - The SDK needs to be installed without user interaction and without admin rights.
dotnet-install: - The SDK installation doesn't need to persist across multiple CI runs.
dotnet-install: To set up a development environment or to run apps, use installers rather than this script. Visit https://dotnet.microsoft.com/download to get the installer.

dotnet-install: Attempting to download using primary link https://dotnetcli.azureedge.net/dotnet/Sdk/7.0.100-rc.1.22431.12/dotnet-sdk-7.0.100-rc.1.22431.12-osx-x64.tar.gz
dotnet-install: Extracting zip from https://dotnetcli.azureedge.net/dotnet/Sdk/7.0.100-rc.1.22431.12/dotnet-sdk-7.0.100-rc.1.22431.12-osx-x64.tar.gz
dotnet-install: Installed version is 7.0.100-rc.1.22431.12
dotnet-install: Adding to current process PATH: `/Users/Hamish/Projects/Clones/runtime3/.dotnet`. Note: This change will be visible only when sourcing script.
dotnet-install: Note that the script does not resolve dependencies during installation.
dotnet-install: To check the list of dependencies, go to https://learn.microsoft.com/dotnet/core/install, select your operating system and check the "Dependencies" section.
dotnet-install: Installation finished successfully.
  Determining projects to restore...
  Tool 'coverlet.console' (version '3.1.2') was restored. Available commands: coverlet
  Tool 'dotnet-reportgenerator-globaltool' (version '5.0.2') was restored. Available commands: reportgenerator
  Tool 'microsoft.dotnet.xharness.cli' (version '1.0.0-prerelease.22531.1') was restored. Available commands: xharness
  Tool 'microsoft.visualstudio.slngen.tool' (version '8.5.17') was restored. Available commands: slngen
  Tool 'dotnet-format' (version '6.0.240501') was restored. Available commands: dotnet-format

  Restore was successful.
  Restored /Users/Hamish/.nuget/packages/microsoft.dotnet.arcade.sdk/8.0.0-beta.22554.2/tools/Tools.proj (in 37 ms).
  Determining projects to restore...
  Restored /Users/Hamish/Projects/Clones/runtime3/src/coreclr/runtime-prereqs.proj (in 243 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/Build.proj (in 243 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/tasks.proj (in 243 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/WasmBuildTasks/WasmBuildTasks.csproj (in 243 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj (in 243 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/installer.tasks/installer.tasks.csproj (in 243 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/WorkloadBuildTasks/WorkloadBuildTasks.csproj (in 243 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/AndroidAppBuilder/AndroidAppBuilder.csproj (in 243 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/coreclr/runtime.proj (in 243 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj (in 243 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/Crossgen2Tasks/Crossgen2Tasks.csproj (in 243 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/mono/llvm/llvm-init.proj (in 243 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/AppleAppBuilder/AppleAppBuilder.csproj (in 243 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/TestExclusionListTasks/TestExclusionListTasks.csproj (in 243 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/MonoTargetsTasks/MonoTargetsTasks.csproj (in 4.21 sec).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/MonoTargetsTasks/ILStrip/AssemblyStripper/AssemblyStripper.csproj (in 4.21 sec).
  AndroidAppBuilder -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/AndroidAppBuilder/Debug/net7.0/AndroidAppBuilder.dll
  TestExclusionListTasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/TestExclusionListTasks/Debug/net7.0/TestExclusionListTasks.dll
  AppleAppBuilder -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/AppleAppBuilder/Debug/net7.0/AppleAppBuilder.dll
  WasmBuildTasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/WasmBuildTasks/Debug/net7.0/WasmBuildTasks.dll
  AndroidAppBuilder -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/AndroidAppBuilder/Debug/net7.0/publish/
  WasmBuildTasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/WasmBuildTasks/Debug/net7.0/publish/
  installer.tasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/installer.tasks/Debug/net7.0/installer.tasks.dll
  Crossgen2Tasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/Crossgen2Tasks/Debug/net7.0/Crossgen2Tasks.dll
  WasmAppBuilder -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/WasmAppBuilder/Debug/net7.0/WasmAppBuilder.dll
  WorkloadBuildTasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/WorkloadBuildTasks/Debug/net7.0/WorkloadBuildTasks.dll
  MonoAOTCompiler -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/MonoAOTCompiler/Debug/net7.0/MonoAOTCompiler.dll
  installer.tasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/installer.tasks/Debug/net472/installer.tasks.dll
  MonoAOTCompiler -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/MonoAOTCompiler/Debug/net472/MonoAOTCompiler.dll
  WasmAppBuilder -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/WasmAppBuilder/Debug/net472/WasmAppBuilder.dll
  AssemblyStripper -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/AssemblyStripper/Debug/net472/AssemblyStripper.dll
  AssemblyStripper -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/AssemblyStripper/Debug/net7.0/AssemblyStripper.dll
  MonoTargetsTasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/MonoTargetsTasks/Debug/net472/MonoTargetsTasks.dll
  MonoTargetsTasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/MonoTargetsTasks/Debug/net7.0/MonoTargetsTasks.dll
  Executing "/Users/Hamish/Projects/Clones/runtime3/src/coreclr/build-runtime.sh" -wasm -release -os Browser -component iltools
  Commencing CoreCLR Repo build
  __DistroRid: browser-wasm
  Setting up directories for build
  Checking prerequisites...
  /usr/local/bin/pkg-config
  Commencing build of "  iltools " target in "CoreCLR component" for Browser.wasm.Release in /Users/Hamish/Projects/Clones/runtime3/artifacts/obj/coreclr/Browser.wasm.Release
  Invoking "/Users/Hamish/Projects/Clones/runtime3/eng/native/gen-buildsys.sh" "/Users/Hamish/Projects/Clones/runtime3/src/coreclr" "/Users/Hamish/Projects/Clones/runtime3/artifacts/obj/coreclr/Browser.wasm.Release" wasm clang Release ""  -DCLR_CMAKE_PGO_INSTRUMENT=0 -DCLR_CMAKE_OPTDATA_PATH= -DCLR_CMAKE_PGO_OPTIMIZE=0 
  ~/Projects/Clones/runtime3/artifacts/obj/coreclr/Browser.wasm.Release ~/Projects/Clones/runtime3/src/coreclr
  configure: /usr/local/bin/cmake --no-warn-unused-cli -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/Users/Hamish/Projects/Clones/runtime3/artifacts/bin/coreclr/Browser.wasm.Release -DCLR_CMAKE_PGO_INSTRUMENT=0 -DCLR_CMAKE_OPTDATA_PATH= -DCLR_CMAKE_PGO_OPTIMIZE=0 /Users/Hamish/Projects/Clones/runtime3/src/coreclr -DCMAKE_TOOLCHAIN_FILE=/usr/local/Cellar/emscripten/3.1.25/libexec/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_CROSSCOMPILING_EMULATOR=/usr/local/opt/node/bin/node
  Not searching for unused variables given on the command line.
  -- Performing Test COMPILER_SUPPORTS_W_IMPLICIT_FALLTHROUGH
  -- Performing Test COMPILER_SUPPORTS_W_IMPLICIT_FALLTHROUGH - Success
  -- Performing Test HAVE_LTO
  -- Performing Test HAVE_LTO - Success
  -- Performing Test COMPILER_SUPPORTS_F_ALIGNED_NEW
  -- Performing Test COMPILER_SUPPORTS_F_ALIGNED_NEW - Success
  -- Performing Test HAVE_DIRENT_D_TYPE
  -- Performing Test HAVE_DIRENT_D_TYPE - Success
  -- Looking for getauxval
  -- Looking for getauxval - not found
  -- Looking for include file GSS/GSS.h
  -- Looking for include file GSS/GSS.h - not found
  CMake Error at /Users/Hamish/Projects/Clones/runtime3/src/native/libs/System.Net.Security.Native/extra_libs.cmake:18 (message):
    Cannot find libgssapi_krb5 and System.Net.Security.Native cannot build
    without it.  Try installing libkrb5-dev (or the appropriate package for
    your platform)
  Call Stack (most recent call first):
    /Users/Hamish/Projects/Clones/runtime3/src/native/corehost/apphost/static/CMakeLists.txt:155 (append_extra_security_libs)

  -- Configuring incomplete, errors occurred!
  See also "/Users/Hamish/Projects/Clones/runtime3/artifacts/obj/coreclr/Browser.wasm.Release/CMakeFiles/CMakeOutput.log".
  See also "/Users/Hamish/Projects/Clones/runtime3/artifacts/obj/coreclr/Browser.wasm.Release/CMakeFiles/CMakeError.log".
  emcmake: error: '/usr/local/bin/cmake --no-warn-unused-cli -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/Users/Hamish/Projects/Clones/runtime3/artifacts/bin/coreclr/Browser.wasm.Release -DCLR_CMAKE_PGO_INSTRUMENT=0 -DCLR_CMAKE_OPTDATA_PATH= -DCLR_CMAKE_PGO_OPTIMIZE=0 /Users/Hamish/Projects/Clones/runtime3/src/coreclr -DCMAKE_TOOLCHAIN_FILE=/usr/local/Cellar/emscripten/3.1.25/libexec/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_CROSSCOMPILING_EMULATOR=/usr/local/opt/node/bin/node' failed (returned 1)
  ~/Projects/Clones/runtime3/src/coreclr
  ~/Projects/Clones/runtime3/artifacts/obj/coreclr/Browser.wasm.Release ~/Projects/Clones/runtime3/src/coreclr
  Executing make   iltools  -j 17
  make: *** No rule to make target `iltools'.  Stop.
  ~/Projects/Clones/runtime3/src/coreclr
  Failed to build "CoreCLR component".
/Users/Hamish/Projects/Clones/runtime3/src/coreclr/runtime.proj(61,5): error MSB3073: The command ""/Users/Hamish/Projects/Clones/runtime3/src/coreclr/build-runtime.sh" -wasm -release -os Browser -component iltools" exited with code 2.

Build FAILED.

/Users/Hamish/Projects/Clones/runtime3/src/coreclr/runtime.proj(61,5): error MSB3073: The command ""/Users/Hamish/Projects/Clones/runtime3/src/coreclr/build-runtime.sh" -wasm -release -os Browser -component iltools" exited with code 2.
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:18.82
Build failed with exit code 1. Check errors above.

I also tried it on the .NET 7 release branch, and got this (2nd attempt, got rate limited the first time lol):

Error
__DistroRid: browser-wasm
  Determining projects to restore...
  Tool 'coverlet.console' (version '3.1.2') was restored. Available commands: coverlet
  Tool 'dotnet-reportgenerator-globaltool' (version '5.0.2') was restored. Available commands: reportgenerator
  Tool 'microsoft.dotnet.xharness.cli' (version '1.0.0-prerelease.22411.1') was restored. Available commands: xharness
  Tool 'microsoft.visualstudio.slngen.tool' (version '8.1.6') was restored. Available commands: slngen
  Tool 'dotnet-format' (version '6.0.240501') was restored. Available commands: dotnet-format

  Restore was successful.
  All projects are up-to-date for restore.
  Determining projects to restore...
  Restored /Users/Hamish/Projects/Clones/runtime3/Build.proj (in 237 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/TestExclusionListTasks/TestExclusionListTasks.csproj (in 237 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/WasmBuildTasks/WasmBuildTasks.csproj (in 237 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/tasks.proj (in 237 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/AndroidAppBuilder/AndroidAppBuilder.csproj (in 237 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/WorkloadBuildTasks/WorkloadBuildTasks.csproj (in 237 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/AppleAppBuilder/AppleAppBuilder.csproj (in 237 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/mono/llvm/llvm-init.proj (in 237 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/Crossgen2Tasks/Crossgen2Tasks.csproj (in 237 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/installer.tasks/installer.tasks.csproj (in 237 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj (in 237 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj (in 237 ms).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/MonoTargetsTasks/MonoTargetsTasks.csproj (in 1.9 sec).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/tasks/MonoTargetsTasks/ILStrip/AssemblyStripper/AssemblyStripper.csproj (in 1.9 sec).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/coreclr/runtime.proj (in 8.5 sec).
  Restored /Users/Hamish/Projects/Clones/runtime3/src/coreclr/runtime-prereqs.proj (in 8.5 sec).
  installer.tasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/installer.tasks/Debug/net472/installer.tasks.dll
  AndroidAppBuilder -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/AndroidAppBuilder/Debug/net7.0/AndroidAppBuilder.dll
  installer.tasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/installer.tasks/Debug/net7.0/installer.tasks.dll
  WorkloadBuildTasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/WorkloadBuildTasks/Debug/net7.0/WorkloadBuildTasks.dll
  TestExclusionListTasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/TestExclusionListTasks/Debug/net7.0/TestExclusionListTasks.dll
  WasmBuildTasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/WasmBuildTasks/Debug/net7.0/WasmBuildTasks.dll
  AppleAppBuilder -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/AppleAppBuilder/Debug/net7.0/AppleAppBuilder.dll
  Crossgen2Tasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/Crossgen2Tasks/Debug/net7.0/Crossgen2Tasks.dll
  AndroidAppBuilder -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/AndroidAppBuilder/Debug/net7.0/publish/
  WasmBuildTasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/WasmBuildTasks/Debug/net7.0/publish/
  WorkloadBuildTasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/WorkloadBuildTasks/Debug/net7.0/publish/
  AssemblyStripper -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/AssemblyStripper/Debug/net7.0/AssemblyStripper.dll
  MonoAOTCompiler -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/MonoAOTCompiler/Debug/net7.0/MonoAOTCompiler.dll
  MonoAOTCompiler -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/MonoAOTCompiler/Debug/net472/MonoAOTCompiler.dll
  AssemblyStripper -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/AssemblyStripper/Debug/net472/AssemblyStripper.dll
  WasmAppBuilder -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/WasmAppBuilder/Debug/net7.0/WasmAppBuilder.dll
  WasmAppBuilder -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/WasmAppBuilder/Debug/net472/WasmAppBuilder.dll
  MonoTargetsTasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/MonoTargetsTasks/Debug/net472/MonoTargetsTasks.dll
  MonoTargetsTasks -> /Users/Hamish/Projects/Clones/runtime3/artifacts/bin/MonoTargetsTasks/Debug/net7.0/MonoTargetsTasks.dll
  Executing "/Users/Hamish/Projects/Clones/runtime3/src/coreclr/build-runtime.sh" -wasm -release -os Browser -component iltools
  Commencing CoreCLR Repo build
  __DistroRid: browser-wasm
  Setting up directories for build
  Checking prerequisites...
  /usr/local/bin/pkg-config
  Commencing build of "  iltools " target in "CoreCLR component" for Browser.wasm.Release in /Users/Hamish/Projects/Clones/runtime3/artifacts/obj/coreclr/Browser.wasm.Release
  Invoking "/Users/Hamish/Projects/Clones/runtime3/eng/native/gen-buildsys.sh" "/Users/Hamish/Projects/Clones/runtime3/src/coreclr" "/Users/Hamish/Projects/Clones/runtime3/artifacts/obj/coreclr/Browser.wasm.Release" wasm clang Release ""  -DCLR_CMAKE_PGO_INSTRUMENT=0 -DCLR_CMAKE_OPTDATA_PATH= -DCLR_CMAKE_PGO_OPTIMIZE=0 
  ~/Projects/Clones/runtime3/artifacts/obj/coreclr/Browser.wasm.Release ~/Projects/Clones/runtime3/src/coreclr
  configure: /usr/local/bin/cmake --no-warn-unused-cli -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/Users/Hamish/Projects/Clones/runtime3/artifacts/bin/coreclr/Browser.wasm.Release -DCLR_CMAKE_PGO_INSTRUMENT=0 -DCLR_CMAKE_OPTDATA_PATH= -DCLR_CMAKE_PGO_OPTIMIZE=0 /Users/Hamish/Projects/Clones/runtime3/src/coreclr -DCMAKE_TOOLCHAIN_FILE=/usr/local/Cellar/emscripten/3.1.25/libexec/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_CROSSCOMPILING_EMULATOR=/usr/local/opt/node/bin/node
  Not searching for unused variables given on the command line.
  -- Performing Test COMPILER_SUPPORTS_W_IMPLICIT_FALLTHROUGH
  -- Performing Test COMPILER_SUPPORTS_W_IMPLICIT_FALLTHROUGH - Success
  -- Performing Test HAVE_LTO
  -- Performing Test HAVE_LTO - Success
  -- Performing Test COMPILER_SUPPORTS_F_ALIGNED_NEW
  -- Performing Test COMPILER_SUPPORTS_F_ALIGNED_NEW - Success
  -- Performing Test HAVE_DIRENT_D_TYPE
  -- Performing Test HAVE_DIRENT_D_TYPE - Success
  -- Looking for getauxval
  -- Looking for getauxval - not found
  -- Looking for include file GSS/GSS.h
  -- Looking for include file GSS/GSS.h - not found
  CMake Error at /Users/Hamish/Projects/Clones/runtime3/src/native/libs/System.Net.Security.Native/extra_libs.cmake:18 (message):
    Cannot find libgssapi_krb5 and System.Net.Security.Native cannot build
    without it.  Try installing libkrb5-dev (or the appropriate package for
    your platform)
  Call Stack (most recent call first):
    /Users/Hamish/Projects/Clones/runtime3/src/native/corehost/apphost/static/CMakeLists.txt:155 (append_extra_security_libs)

  -- Configuring incomplete, errors occurred!
  See also "/Users/Hamish/Projects/Clones/runtime3/artifacts/obj/coreclr/Browser.wasm.Release/CMakeFiles/CMakeOutput.log".
  See also "/Users/Hamish/Projects/Clones/runtime3/artifacts/obj/coreclr/Browser.wasm.Release/CMakeFiles/CMakeError.log".
  emcmake: error: '/usr/local/bin/cmake --no-warn-unused-cli -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/Users/Hamish/Projects/Clones/runtime3/artifacts/bin/coreclr/Browser.wasm.Release -DCLR_CMAKE_PGO_INSTRUMENT=0 -DCLR_CMAKE_OPTDATA_PATH= -DCLR_CMAKE_PGO_OPTIMIZE=0 /Users/Hamish/Projects/Clones/runtime3/src/coreclr -DCMAKE_TOOLCHAIN_FILE=/usr/local/Cellar/emscripten/3.1.25/libexec/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_CROSSCOMPILING_EMULATOR=/usr/local/opt/node/bin/node' failed (returned 1)
  ~/Projects/Clones/runtime3/src/coreclr
  ~/Projects/Clones/runtime3/artifacts/obj/coreclr/Browser.wasm.Release ~/Projects/Clones/runtime3/src/coreclr
  Executing make   iltools  -j 17
  make: *** No rule to make target `iltools'.  Stop.
  ~/Projects/Clones/runtime3/src/coreclr
  Failed to build "CoreCLR component".
/Users/Hamish/Projects/Clones/runtime3/src/coreclr/runtime.proj(61,5): error MSB3073: The command ""/Users/Hamish/Projects/Clones/runtime3/src/coreclr/build-runtime.sh" -wasm -release -os Browser -component iltools" exited with code 2.

Build FAILED.

/Users/Hamish/Projects/Clones/runtime3/src/coreclr/runtime.proj(61,5): error MSB3073: The command ""/Users/Hamish/Projects/Clones/runtime3/src/coreclr/build-runtime.sh" -wasm -release -os Browser -component iltools" exited with code 2.
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:27.55
Build failed with exit code 1. Check errors above.

So it seems to be looking for libkrb5-dev, I couldn't find this on macOS, I found krb5 and installed that to no avail though.