xtask: Avoid lossy string conversion

pull/639/head
Tamir Duberstein 1 year ago
parent 5a2906a6c9
commit 7067db450a
No known key found for this signature in database

@ -1,5 +1,8 @@
use std::{ use std::{
env, fs, borrow::Cow,
env,
ffi::{OsStr, OsString},
fs,
path::{Path, PathBuf}, path::{Path, PathBuf},
process::Command, process::Command,
}; };
@ -77,9 +80,12 @@ fn build_rust_ebpf(opts: &BuildEbpfOptions) -> anyhow::Result<()> {
fn get_libbpf_headers<P: AsRef<Path>>(libbpf_dir: P, include_path: P) -> anyhow::Result<()> { fn get_libbpf_headers<P: AsRef<Path>>(libbpf_dir: P, include_path: P) -> anyhow::Result<()> {
let dir = include_path.as_ref(); let dir = include_path.as_ref();
fs::create_dir_all(dir)?; fs::create_dir_all(dir)?;
let mut includedir = OsString::new();
includedir.push("INCLUDEDIR=");
includedir.push(dir.as_os_str());
let status = Command::new("make") let status = Command::new("make")
.current_dir(libbpf_dir.as_ref().join("src")) .current_dir(libbpf_dir.as_ref().join("src"))
.arg(format!("INCLUDEDIR={}", dir.as_os_str().to_string_lossy())) .arg(includedir)
.arg("install_headers") .arg("install_headers")
.status() .status()
.expect("failed to build get libbpf headers"); .expect("failed to build get libbpf headers");
@ -119,17 +125,18 @@ fn compile_with_clang<P: Clone + AsRef<Path>>(
out: P, out: P,
include_path: P, include_path: P,
) -> anyhow::Result<()> { ) -> anyhow::Result<()> {
let clang = match env::var("CLANG") { let clang: Cow<'_, _> = match env::var_os("CLANG") {
Ok(val) => val, Some(val) => val.into(),
Err(_) => String::from("/usr/bin/clang"), None => OsStr::new("/usr/bin/clang").into(),
}; };
let arch = match std::env::consts::ARCH { let arch = match env::consts::ARCH {
"x86_64" => "x86", "x86_64" => "x86",
"aarch64" => "arm64", "aarch64" => "arm64",
_ => std::env::consts::ARCH, arch => arch,
}; };
let mut cmd = Command::new(clang); let mut cmd = Command::new(clang);
cmd.arg(format!("-I{}", include_path.as_ref().to_string_lossy())) cmd.arg("-I")
.arg(include_path.as_ref())
.arg("-g") .arg("-g")
.arg("-O2") .arg("-O2")
.arg("-target") .arg("-target")

Loading…
Cancel
Save