summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2025-11-12 13:37:47 +0100
committerDylan Baker <dylan@pnwbakers.com>2025-11-12 14:56:22 -0800
commitc53317f7580a3cb8d92e832159ae38a1a278dba0 (patch)
tree30722fd5e16432cc539ea8b17cca59cf579df1a8
parent2ea823c80a89c8fca258a1fc3580bd27c5eec3be (diff)
downloadmeson-c53317f7580a3cb8d92e832159ae38a1a278dba0.tar.gz
rust: always pass -C default-linker-libraries
This is often needed for mixed Rust/C programs, and in particular always needed with sanitizers. Add it always. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--docs/markdown/snippets/rust-default-linker-libs.md5
-rw-r--r--mesonbuild/compilers/rust.py2
2 files changed, 6 insertions, 1 deletions
diff --git a/docs/markdown/snippets/rust-default-linker-libs.md b/docs/markdown/snippets/rust-default-linker-libs.md
new file mode 100644
index 000000000..9e54c0f49
--- /dev/null
+++ b/docs/markdown/snippets/rust-default-linker-libs.md
@@ -0,0 +1,5 @@
+## Passing `-C default-linker-libraries` to rustc
+
+When calling rustc, Meson now passes the `-C default-linker-libraries` option.
+While rustc passes the necessary libraries for Rust programs, they are rarely
+enough for mixed Rust/C programs.
diff --git a/mesonbuild/compilers/rust.py b/mesonbuild/compilers/rust.py
index 32b8d8dae..a32499ce8 100644
--- a/mesonbuild/compilers/rust.py
+++ b/mesonbuild/compilers/rust.py
@@ -338,7 +338,7 @@ class RustCompiler(Compiler):
@functools.lru_cache(maxsize=None)
def get_linker_always_args(self) -> T.List[str]:
- return rustc_link_args(super().get_linker_always_args())
+ return rustc_link_args(super().get_linker_always_args()) + ['-Cdefault-linker-libraries']
def get_embed_bitcode_args(self, bitcode: bool, lto: bool) -> T.List[str]:
if bitcode: