From 937e9b978935b1daa59d79f4e073cf39a5c4e662 Mon Sep 17 00:00:00 2001 From: laund Date: Fri, 30 May 2025 13:06:57 +0200 Subject: [PATCH] subsecond/cli: fix linker and passing through -fuse-ld properly (#4222) * subsecond/cli: fix passing through -fuse-ld for LinkerFlavour::Gnu * if linker isn't a relative, local path, keep it unresolved since its a command on PATH --- packages/cli/src/build/request.rs | 1 + packages/cli/src/cli/link.rs | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/build/request.rs b/packages/cli/src/build/request.rs index 31ff61d17..847b7dfd7 100644 --- a/packages/cli/src/build/request.rs +++ b/packages/cli/src/build/request.rs @@ -1488,6 +1488,7 @@ impl BuildRequest { || arg.starts_with("-m") || arg.starts_with("-Wl,--target=") || arg.starts_with("-Wl,-fuse-ld") + || arg.starts_with("-fuse-ld") { out_args.push(arg.to_string()); } diff --git a/packages/cli/src/cli/link.rs b/packages/cli/src/cli/link.rs index 57928bc69..4b8ae3940 100644 --- a/packages/cli/src/cli/link.rs +++ b/packages/cli/src/cli/link.rs @@ -98,7 +98,10 @@ impl LinkAction { if let Some(linker) = &self.linker { env_vars.push(( Self::DX_LINK_CUSTOM_LINKER, - dunce::canonicalize(linker)?.to_string_lossy().to_string(), + dunce::canonicalize(linker) + .unwrap_or(linker.clone()) + .to_string_lossy() + .to_string(), )); }