All Projects → jedisct1 → libclang_rt.builtins-wasm32.a

jedisct1 / libclang_rt.builtins-wasm32.a

Licence: other
The missing libclang_rt.builtins-wasm32.a file to compile to WebAssembly.

Projects that are alternatives of or similar to libclang rt.builtins-wasm32.a

etheryal-kernel
Open Source Rust kernel; Runs WASM and WASI as lightweight containers.
Stars: ✭ 32 (+28%)
Mutual labels:  wasi
wazero
wazero: the zero dependency WebAssembly runtime for Go developers
Stars: ✭ 2,065 (+8160%)
Mutual labels:  wasi
krustlet
Kubernetes Rust Kubelet
Stars: ✭ 3,154 (+12516%)
Mutual labels:  wasi
wasi-experimental-http
Experimental outbound HTTP support for WebAssembly and WASI
Stars: ✭ 107 (+328%)
Mutual labels:  wasi
chimera-admission
A Kubernetes dynamic admission controller that uses WebAssembly policies to validate incoming requests
Stars: ✭ 25 (+0%)
Mutual labels:  wasi
Krustlet
Kubernetes Rust Kubelet
Stars: ✭ 2,391 (+9464%)
Mutual labels:  wasi
Lunatic
Lunatic is an Erlang-inspired runtime for WebAssembly
Stars: ✭ 2,074 (+8196%)
Mutual labels:  wasi
Wasmer
🚀 The leading WebAssembly Runtime supporting WASI and Emscripten
Stars: ✭ 11,047 (+44088%)
Mutual labels:  wasi
Tinygo
Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
Stars: ✭ 9,068 (+36172%)
Mutual labels:  wasi
Wasmtime
Standalone JIT-style runtime for WebAssembly, using Cranelift
Stars: ✭ 6,413 (+25552%)
Mutual labels:  wasi
Lucet
Lucet, the Sandboxing WebAssembly Compiler.
Stars: ✭ 4,006 (+15924%)
Mutual labels:  wasi
node-wasm-trace
Instruments wasm files and traces execution
Stars: ✭ 24 (-4%)
Mutual labels:  wasi
wasmer-zig
Zig bindings for the Wasmer WebAssembly runtime
Stars: ✭ 24 (-4%)
Mutual labels:  wasi
oasis-rs
A humane blockchain programming framework.
Stars: ✭ 71 (+184%)
Mutual labels:  wasi
wasi-worker
WASM / WASI interface for browser service workers
Stars: ✭ 31 (+24%)
Mutual labels:  wasi
node-wasi
WASI for Node.js
Stars: ✭ 64 (+156%)
Mutual labels:  wasi
webassembly-tour
⚙️ Take you through a tour of WebAssembly (WASM targets on WASI) with wasmCloud, Krustlet, WAGI, etc. 🌟 Give it a star if you like it.
Stars: ✭ 111 (+344%)
Mutual labels:  wasi

libclang_rt.builtins-wasm32.a

Note: as of 2022, you should probably use the Zig SDK instead of this.

The zig cc command supports cross-compilation to WASI out of the box, without having to install these builtins or the WASI SDK.

zig cc --target=wasm32-wasi -shared -Os -o module.wasm module.c

--

Starting with version 8 (and version 9 if you need WASI), LLVM can compile to WebAssembly out of the box.

If you are using macOS with Homebrew, or any operating system with up-to-date LLVM packages, you're all set.

Almost.

Unless your WebAssembly application is compute-only, you still need some kind of interface with the runtime, namely WASI.

In order to do so, you may want to download and extract wasi-sysroot. Note that you don't need wasi-sdk if you already have LLVM, only wasi-sysroot.

Now you should be all set. Just replace /opt/wasi-sysroot with the location you extracted wasi-sysroot to.

clang --target=wasm32-wasi --sysroot=/opt/wasi-sysroot -O2 test.c

Dang. You may see clang now complaining about a missing file:

wasm-ld: error: cannot open .../lib/wasi/libclang_rt.builtins-wasm32.a: No such file or directory

The missing libclang_rt.builtins-wasm32.a can be obtained by recompiling compiler_rt from LLVM.

Or directly download that file here: libclang_rt.builtins-wasm32.a.

It is now also distributed with the WASI SDK releases, as a separate tarball.

Copy libclang_rt.builtins-wasm32.a from the tarball into the path expected by clang, creating the lib and wasi directories if necessary, and you'll be all set!

This has been tested with:

  • LLVM 10
  • LLVM 11
  • LLVM 12
  • LLVM 13
  • LLVM 14
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].