-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Create nuget package for WASI-SDK #82788
Comments
Tagging subscribers to 'arch-wasm': @lewing Issue DetailsRef. #65895 We need a way to ship the WASI SDK to users (as a nupkg). Currently, for builds, we're using binaries shipped out of the WebAssembly wasi-sdk.git releases page. I'm investigating this process. wasi-sdk consists of three git submodules:
These are used to build FIVE projects in turn (or three, depending on how you count):
The existing metabuild system in charge of dispatching the above builds is GNU Make. This needs replacing with something we support, e.g. MSBuild (we have experience using MSBuild as a metabuild system, e.g. for LLVM or ICU) There are a few approaches we can take on how best to get this built.
I'm starting to lean towards option 2, with a "damn the consequences" approach to command line flags, but I think the discussion is worth having.
|
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
/cc @akoeplinger @radical |
We could also add another metabuild layer on top and just call the Makefile from MSBuild :) I'm also leaning towards option 2. |
Tagging subscribers to this area: @directhex Issue DetailsRef. #65895 We need a way to ship the WASI SDK to users (as a nupkg). Currently, for builds, we're using binaries shipped out of the WebAssembly wasi-sdk.git releases page. I'm investigating this process. wasi-sdk consists of three git submodules:
These are used to build FIVE projects in turn (or three, depending on how you count):
The existing metabuild system in charge of dispatching the above builds is GNU Make. This needs replacing with something we support, e.g. MSBuild (we have experience using MSBuild as a metabuild system, e.g. for LLVM or ICU) There are a few approaches we can take on how best to get this built.
I'm starting to lean towards option 2, with a "damn the consequences" approach to command line flags, but I think the discussion is worth having.
|
OK, so, first real crossroads in option 2: We need to build three things from the llvm-project.git repo:
I have successfully built 1 from dotnet/llvm-project - version 14 - and 2/3 from wasi-sdk/src/llvm(llvm/llvm-project) - version 15. It seems to work, for now. We can't just build compiler-rt and libcxx out of our llvm repo build, because we need to link against wasi-libc (so we would need to submodule wasi-libc into our llvm fork, and we're deep on a road to madness here). So our options are:
|
Option 2 here is the current planned route. |
I think we are close here @steveisok |
Ref. #65895
We need a way to ship the WASI SDK to users (as a nupkg). Currently, for builds, we're using binaries shipped out of the WebAssembly wasi-sdk.git releases page.
I'm investigating this process.
wasi-sdk consists of three git submodules:
llvm/llvm-project.git
WebAssembly/wasi-libc.git
https://git.savannah.gnu.org/git/config.git
(GNUconfig.guess
/config.sub
scripts)These are used to build FIVE projects in turn (or three, depending on how you count):
lld;clang;clang-tools-extra
subsets) withWebAssembly
codegen andwasm32-wasi
default compiler triple. This needs to be built once for every platform we want to be able to build Wasi apps onlibclang_rt.builtins-wasm32.a
). This only needs to be built once, and can be consumed on any OSThe existing metabuild system in charge of dispatching the above builds is GNU Make. This needs replacing with something we support, e.g. MSBuild (we have experience using MSBuild as a metabuild system, e.g. for LLVM or ICU)
There are a few approaches we can take on how best to get this built.
I'm starting to lean towards option 2, with a "damn the consequences" approach to command line flags, but I think the discussion is worth having.
The text was updated successfully, but these errors were encountered: