Skip to content
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

Improve README.md #331

Merged
merged 2 commits into from
Jun 23, 2023
Merged

Improve README.md #331

merged 2 commits into from
Jun 23, 2023

Conversation

abrown
Copy link
Collaborator

@abrown abrown commented Jun 23, 2023

This changes the front-page documentation to:

  • use out-of-line links in more places
  • mention the need for libclang_rt.builtins-wasm32.a when using
    standard Clang
  • mention how to use a wasi-libc sysroot
  • explain the experimental status of `wasm32-wasi-threads

This changes the front-page documentation to:
- use out-of-line links in more places
- mention the need for `libclang_rt.builtins-wasm32.a` when using
  standard Clang
- mention how to use a `wasi-libc` sysroot
- explain the experimental status of `wasm32-wasi-threads
Copy link
Member

@sbc100 sbc100 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

README.md Outdated Show resolved Hide resolved
--sysroot=/path/to/sysroot`. In this scenario, one would also need the
`libclang_rt.builtins-wasm32.a` objects available separately in the [release
downloads][releases] which must be extracted into
`$CLANG_INSTALL_DIR/$CLANG_VERSION/lib/wasi/`.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, is this true? I know this is true for building wasi-libc (see building from source) from having to do this myself but is it the case for the average program?

Copy link
Member

@sbc100 sbc100 Jun 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure exactly what you mean.

If your question is "can you get away without libclang_rt.builtins-wasm32.a" then the answer is no. All programs pretty much end up depending on this library and clang adds it to the link line by default.

Also, wasi-libc is not a program (its just a static library) so technically you don't need libclang_rt.builtins-wasm32.a to build wasi-libc.. but in order to use wasi-libc in any kind of normal program, that is when you would need the builtins library (i.e. when you actually want to link something).

Or did I misunderstand your question?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, yeah, your response makes sense:

If your question is "can you get away without libclang_rt.builtins-wasm32.a" then the answer is no

That's what I thought but I started to confuse myself. So the language I'm using here does make sense: we need the builtins to just use vanilla Clang — it isn't as easy as "just point to a sysroot" as we previously had documented here.

Separately,

technically you don't need libclang_rt.builtins-wasm32.a to build wasi-libc

But the "we need the builtins" is documented in the wasi-libc instructions; maybe we should discuss that in WebAssembly/wasi-libc#425?

@abrown abrown merged commit 00cb3b2 into WebAssembly:main Jun 23, 2023
5 checks passed
@abrown abrown deleted the improve-readme branch June 23, 2023 21:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants