From f6d8d38e4837e063a412f99e03195478b6b8ef07 Mon Sep 17 00:00:00 2001 From: techmetx11 Date: Sat, 15 Aug 2026 19:00:56 +0100 Subject: [PATCH] Add a new environment variable for custom libgccjit path --- Readme.md | 1 + src/lib.rs | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index 9a7c624c9bc..5aae48db229 100644 --- a/Readme.md +++ b/Readme.md @@ -172,6 +172,7 @@ $ LIBRARY_PATH="[gcc-path value]" LD_LIBRARY_PATH="[gcc-path value]" rustc +$(ca * _**CG_GCCJIT_DUMP_EVERYTHING**_: Enables dumping of all intermediate representations and passes. * _**CG_GCCJIT_KEEP_INTERMEDIATES**_: Keeps intermediate files generated during the compilation process. * _**CG_GCCJIT_VERBOSE**_: Enables verbose output from the GCC driver. + * _**CG_GCCJIT_SEARCH_PATH**_: Add a custom library path to look for `libgccjit.so` in ## Extra documentation diff --git a/src/lib.rs b/src/lib.rs index 7e22d6db50c..6e7eab2b326 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -70,11 +70,11 @@ mod type_of; use std::any::Any; use std::ffi::CString; use std::fmt::Debug; -use std::fs; use std::ops::Deref; use std::path::{Path, PathBuf}; use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::{Arc, Mutex}; +use std::{env, fs}; #[cfg(feature = "master")] use gccjit::TargetInfo; @@ -210,6 +210,10 @@ impl CodegenBackend for GccCodegenBackend { lib_path.join(sess.target.llvm_target.as_ref()).join("libgccjit.so"); paths.push(llvm_target_path); } + if let Ok(custom_path) = env::var("CG_GCCJIT_SEARCH_PATH").as_deref() { + paths.push(PathBuf::from(custom_path).join("libgccjit.so")); + } + paths }