Skip to content

Improve README.md#331

Merged
abrown merged 2 commits intoWebAssembly:mainfrom
abrown:improve-readme
Jun 23, 2023
Merged

Improve README.md#331
abrown merged 2 commits intoWebAssembly:mainfrom
abrown:improve-readme

Conversation

@abrown
Copy link
Copy Markdown
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
Copy Markdown
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!

Comment thread README.md Outdated
Comment thread README.md
--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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
@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