From e490b29620f3bcba4f9106c3ef41ca28a7c6d82e Mon Sep 17 00:00:00 2001 From: etienne-k <2804556+etienne-k@users.noreply.github.com> Date: Sat, 19 Nov 2022 15:07:55 +0100 Subject: [PATCH 1/5] fix(build): never statically link against the C standard library --- .cargo/config.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.cargo/config.toml b/.cargo/config.toml index b016eca31aec..4a9d4bd8b37b 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,3 +1,9 @@ [alias] xtask = "run --package xtask --" integration-test = "test --features integration --profile integration --workspace --test integration" + +[build] +# By default, on musl linux, statically linked binaries are produced. +# But such binaries do not support loading libraries using `dlopen()` ("libloading" crate), +# which is required for loading treesitter grammars. +rustflags = ["-C", "target-feature=-crt-static"] From b5e4212ba5be3398b23fa3f3fd573193afdc5761 Mon Sep 17 00:00:00 2001 From: etienne-k <2804556+etienne-k@users.noreply.github.com> Date: Sun, 26 Mar 2023 17:50:34 +0200 Subject: [PATCH 2/5] fix(build): compile flags for the required target only --- .cargo/config.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 4a9d4bd8b37b..4a792197dd5f 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -2,7 +2,7 @@ xtask = "run --package xtask --" integration-test = "test --features integration --profile integration --workspace --test integration" -[build] +[target.aarch64-unknown-linux-musl] # By default, on musl linux, statically linked binaries are produced. # But such binaries do not support loading libraries using `dlopen()` ("libloading" crate), # which is required for loading treesitter grammars. From 503954c447d12f129b024e1937fd5d3d959c203c Mon Sep 17 00:00:00 2001 From: etienne-k <2804556+etienne-k@users.noreply.github.com> Date: Sun, 26 Mar 2023 18:01:29 +0200 Subject: [PATCH 3/5] fix(build): add compile flags for some more musl targets --- .cargo/config.toml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 4a792197dd5f..f451a7fa3f70 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -2,8 +2,16 @@ xtask = "run --package xtask --" integration-test = "test --features integration --profile integration --workspace --test integration" -[target.aarch64-unknown-linux-musl] # By default, on musl linux, statically linked binaries are produced. # But such binaries do not support loading libraries using `dlopen()` ("libloading" crate), # which is required for loading treesitter grammars. +[target.arm-unknown-linux-musleabihf] +rustflags = ["-C", "target-feature=-crt-static"] +[target.armv7-unknown-linux-musleabihf] +rustflags = ["-C", "target-feature=-crt-static"] +[target.aarch64-unknown-linux-musl] +rustflags = ["-C", "target-feature=-crt-static"] +[target.i686-unknown-linux-musl] +rustflags = ["-C", "target-feature=-crt-static"] +[target.x86_64-unknown-linux-musl] rustflags = ["-C", "target-feature=-crt-static"] From 97e8c731f614df5b1e550a1f3be067353a06f633 Mon Sep 17 00:00:00 2001 From: usagi-flow <2804556+usagi-flow@users.noreply.github.com> Date: Thu, 21 Dec 2023 12:05:43 +0100 Subject: [PATCH 4/5] fix(build): simply indicate the target_env instead of hardcoding various musl targets --- .cargo/config.toml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index f451a7fa3f70..4a6b2671693a 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -5,13 +5,5 @@ integration-test = "test --features integration --profile integration --workspac # By default, on musl linux, statically linked binaries are produced. # But such binaries do not support loading libraries using `dlopen()` ("libloading" crate), # which is required for loading treesitter grammars. -[target.arm-unknown-linux-musleabihf] -rustflags = ["-C", "target-feature=-crt-static"] -[target.armv7-unknown-linux-musleabihf] -rustflags = ["-C", "target-feature=-crt-static"] -[target.aarch64-unknown-linux-musl] -rustflags = ["-C", "target-feature=-crt-static"] -[target.i686-unknown-linux-musl] -rustflags = ["-C", "target-feature=-crt-static"] -[target.x86_64-unknown-linux-musl] +[target.'cfg(target_env = "musl")'] rustflags = ["-C", "target-feature=-crt-static"] From f554a0cbc0b934b6551f4f1ee5ccd02f8fbda0fc Mon Sep 17 00:00:00 2001 From: usagi-flow <2804556+usagi-flow@users.noreply.github.com> Date: Thu, 21 Dec 2023 12:14:28 +0100 Subject: [PATCH 5/5] fix(build): pass flags as a string instead of an array --- .cargo/config.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 4a6b2671693a..02f71e926c98 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -6,4 +6,4 @@ integration-test = "test --features integration --profile integration --workspac # But such binaries do not support loading libraries using `dlopen()` ("libloading" crate), # which is required for loading treesitter grammars. [target.'cfg(target_env = "musl")'] -rustflags = ["-C", "target-feature=-crt-static"] +rustflags = "-C target-feature=-crt-static"