From 6cb087a90bc8bfde04a94f1777de4d86f8778dcd Mon Sep 17 00:00:00 2001 From: panekj Date: Thu, 25 Aug 2022 17:32:53 +0200 Subject: [PATCH] fix: pass envvar which libc is used on host --- lapce-proxy/src/plugin/wasi.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/lapce-proxy/src/plugin/wasi.rs b/lapce-proxy/src/plugin/wasi.rs index a2a0484e..282511cc 100644 --- a/lapce-proxy/src/plugin/wasi.rs +++ b/lapce-proxy/src/plugin/wasi.rs @@ -310,6 +310,29 @@ pub fn start_volt( .as_ref() .ok_or_else(|| anyhow!("plugin meta doesn't have dir"))?; + #[cfg(target_os = "linux")] + let volt_libc = { + match std::process::Command::new("ldd").arg("--version").output() { + Ok(cmd) => { + if String::from_utf8_lossy(&cmd.stdout) + .to_lowercase() + .split_terminator('\n') + .next() + .unwrap_or("") + .contains("musl") + { + "musl" + } else { + "glibc" + } + } + _ => "glibc", + } + }; + + #[cfg(not(target_os = "linux"))] + let volt_libc = ""; + let stdin = Arc::new(RwLock::new(WasiPipe::new())); let stdout = Arc::new(RwLock::new(WasiPipe::new())); let stderr = Arc::new(RwLock::new(WasiPipe::new())); @@ -317,6 +340,7 @@ pub fn start_volt( .inherit_env()? .env("VOLT_OS", std::env::consts::OS)? .env("VOLT_ARCH", std::env::consts::ARCH)? + .env("VOLT_LIBC", volt_libc)? .env( "VOLT_URI", Url::from_directory_path(volt_path)