From c2c2cbd02ab6b4e5f69161d77788b865a456cecd Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Sun, 16 Apr 2023 15:32:34 -0700 Subject: [PATCH] Use clang instead of gcc, which seems easier to install. --- src/backend/eval.rs | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/backend/eval.rs b/src/backend/eval.rs index 950a5a1..1218507 100644 --- a/src/backend/eval.rs +++ b/src/backend/eval.rs @@ -52,11 +52,10 @@ impl Backend { } } - #[cfg(target_family = "unix")] fn link(object_file: &Path, executable_path: &Path) -> Result<(), EvalError> { - use std::{os::unix::prelude::PermissionsExt, path::PathBuf}; + use std::path::PathBuf; - let output = std::process::Command::new("gcc") + let output = std::process::Command::new("clang") .arg( PathBuf::from(env!("CARGO_MANIFEST_DIR")) .join("runtime") @@ -67,16 +66,13 @@ impl Backend { .arg(executable_path) .output()?; - if output.stderr.is_empty() { - let mut perms = std::fs::metadata(executable_path)?.permissions(); - perms.set_mode(perms.mode() | 0o100); // user execute bit - std::fs::set_permissions(executable_path, perms)?; - Ok(()) - } else { - Err(EvalError::IO( + if !output.stderr.is_empty() { + return Err(EvalError::IO( std::string::String::from_utf8_lossy(&output.stderr).to_string(), - )) + )); } + + Ok(()) } }