From c33f6237199cd3ae6f884f5fe0f6ccf57f805a28 Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Mon, 23 Oct 2023 12:01:27 -0400 Subject: [PATCH] cargo: explicitly configure musl to be statically linked It looks like the musl target will, at some point, default to be dynamically linked. This config knob should make it so that it's always statically linked. Ref https://github.com/rust-lang/compiler-team/issues/422 Ref https://github.com/rust-lang/compiler-team/issues/422#issuecomment-812135847 --- .cargo/config.toml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.cargo/config.toml b/.cargo/config.toml index 7db936b49..9e5430116 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -6,3 +6,16 @@ rustflags = ["-C", "target-feature=+crt-static"] [target.i686-pc-windows-msvc] rustflags = ["-C", "target-feature=+crt-static"] + +# Do the same for MUSL targets. At the time of writing (2023-10-23), this is +# the default. But the plan is for the default to change to dynamic linking. +# The whole point of MUSL with respect to ripgrep is to create a fully +# statically linked executable. +# +# See: https://github.com/rust-lang/compiler-team/issues/422 +# See: https://github.com/rust-lang/compiler-team/issues/422#issuecomment-812135847 +[target.x86_64-unknown-linux-musl] +rustflags = [ + "-C", "target-feature=+crt-static", + "-C", "link-self-contained=yes", +]