summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/markdown/Reference-tables.md1
-rw-r--r--docs/markdown/snippets/zig_ld.md18
2 files changed, 19 insertions, 0 deletions
diff --git a/docs/markdown/Reference-tables.md b/docs/markdown/Reference-tables.md
index 7e0d6cffc..e4e964c2d 100644
--- a/docs/markdown/Reference-tables.md
+++ b/docs/markdown/Reference-tables.md
@@ -62,6 +62,7 @@ These are return values of the `get_linker_id` method in a compiler object.
| ld.mold | The fast MOLD linker |
| ld.solaris | Solaris and illumos |
| ld.wasm | emscripten's wasm-ld linker |
+| ld.zigcc | The Zig linker (C/C++ frontend; GNU-like) |
| ld64 | Apple ld64 |
| ld64.lld | The LLVM linker, with the ld64 interface |
| link | MSVC linker |
diff --git a/docs/markdown/snippets/zig_ld.md b/docs/markdown/snippets/zig_ld.md
new file mode 100644
index 000000000..8835c38ca
--- /dev/null
+++ b/docs/markdown/snippets/zig_ld.md
@@ -0,0 +1,18 @@
+## Zig 0.11 can be used as a C/C++ compiler frontend
+
+Zig offers
+[a C/C++ frontend](https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html) as a drop-in replacement for Clang. It worked fine with Meson up to Zig 0.10. Since 0.11, Zig's
+dynamic linker reports itself as `zig ld`, which wasn't known to Meson. Meson now correctly handles
+Zig's linker.
+
+You can use Zig's frontend via a [machine file](Machine-files.md):
+
+```ini
+[binaries]
+c = ['zig', 'cc']
+cpp = ['zig', 'c++']
+ar = ['zig', 'ar']
+ranlib = ['zig', 'ranlib']
+lib = ['zig', 'lib']
+dlltool = ['zig', 'dlltool']
+```