Skip to content

Commit 0e383bf

Browse files
author
Jon Gjengset
authored
Don't let pkg-config add system lib dirs to the search path
In its default configuration, pkg-config adds system-wide library directories to the linker search path (rust-lang/pkg-config-rs#11). This causes these directories to be searched before other paths added by later crates or by -Clink-arg in rustflags. If a library is present in the system-wide directory and a later build step wants to specifically link against a different version of that library in another path, the linker will choose the library from the first search directory it finds. If the linker doesn't find a library in any of the specified search directories, it falls back on system-wide paths, so we don't need to print the path we found libssh2 in if it is in one of those system paths. See rust-lang/libz-sys#50 for the same fix to libz that landed a while back. See also alexcrichton/curl-rust#441 for the same fix to libcurl-sys.
1 parent f269dc4 commit 0e383bf

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

libgit2-sys/build.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ fn main() {
1414
let try_to_use_system_libgit2 = !vendored && !zlib_ng_compat;
1515
if try_to_use_system_libgit2 {
1616
let mut cfg = pkg_config::Config::new();
17-
if let Ok(lib) = cfg.range_version("1.4.0".."1.5.0").probe("libgit2") {
17+
if let Ok(lib) = cfg.range_version("1.4.0".."1.5.0").print_system_libs(false).probe("libgit2") {
1818
for include in &lib.include_paths {
1919
println!("cargo:root={}", include.display());
2020
}

0 commit comments

Comments
 (0)