Using Zig as cross-platform C toolchain
"So, a clang wrapper?" is a common thought, so here's how Zig differs from clang out of the box:<p>* Links MachO binaries for Apple Silicon via the custom zld linker it ships. LLVM cannot do this currently.<p>* Provides (deduplicated) libc headers for pretty much every platform, including macOS and glibc/musl. <a href="https://github.com/ziglang/zig/tree/master/lib/libc/include" rel="nofollow">https://github.com/ziglang/zig/tree/master/lib/libc/include</a><p>* Provides a libc implementation (libSystem for macOS, musl and glibc, mingw for Windows, and WASI)<p>* Deals with lots of the deep depths of hell, like enabling you to target any version of glibc out of the box by building symbol mappings: <a href="https://github.com/ziglang/glibc-abi-tool/" rel="nofollow">https://github.com/ziglang/glibc-abi-tool/</a><p>And that doesn't mention the most important part, IMO, which is that it lets you cross compile _out of the box_. No fiddling with sysroots, system packages, etc. to get a cross compiling toolchain working.