1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
From: Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
Date: Sat, 2 Oct 2021 01:08:00 +0100
Subject: d-0001-pkg-config-no-special-snowflake
Description: always enable cross compilation via pkgconf, and set the right binary name.
Forwarded: not-needed
---
vendor/pkg-config-0.3.31/src/lib.rs | 26 +++++++++++---------------
vendor/pkg-config-0.3.31/tests/test.rs | 2 --
2 files changed, 11 insertions(+), 17 deletions(-)
diff --git a/vendor/pkg-config-0.3.31/src/lib.rs b/vendor/pkg-config-0.3.31/src/lib.rs
index db693fa..9ea4f56 100644
--- a/vendor/pkg-config-0.3.31/src/lib.rs
+++ b/vendor/pkg-config-0.3.31/src/lib.rs
@@ -150,11 +150,8 @@ pub enum Error {
/// Contains the name of the responsible environment variable.
EnvNoPkgConfig(String),
- /// Detected cross compilation without a custom sysroot.
- ///
- /// Ignore the error with `PKG_CONFIG_ALLOW_CROSS=1`,
- /// which may let `pkg-config` select libraries
- /// for the host's architecture instead of the target's.
+ /// Cross compilation detected. Kept for compatibility;
+ /// the Debian package never emits this.
CrossCompilation,
/// Failed to run `pkg-config`.
@@ -269,14 +266,6 @@ impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> {
match *self {
Error::EnvNoPkgConfig(ref name) => write!(f, "Aborted because {} is set", name),
- Error::CrossCompilation => f.write_str(
- "pkg-config has not been configured to support cross-compilation.\n\
- \n\
- Install a sysroot for the target platform and configure it via\n\
- PKG_CONFIG_SYSROOT_DIR and PKG_CONFIG_PATH, or install a\n\
- cross-compiling wrapper for pkg-config and set it via\n\
- PKG_CONFIG environment variable.",
- ),
Error::Command {
ref command,
ref cause,
@@ -402,7 +391,7 @@ impl fmt::Display for Error {
)?;
format_output(output, f)
}
- Error::__Nonexhaustive => panic!(),
+ Error::CrossCompilation | Error::__Nonexhaustive => panic!(),
}
}
}
@@ -596,6 +585,8 @@ impl Config {
if host == target {
return true;
}
+ // always enable PKG_CONFIG_ALLOW_CROSS override in Debian
+ return true;
// pkg-config may not be aware of cross-compilation, and require
// a wrapper script that sets up platform-specific prefixes.
@@ -653,7 +644,12 @@ impl Config {
}
fn run(&self, name: &str, args: &[&str]) -> Result<Vec<u8>, Error> {
- let pkg_config_exe = self.targeted_env_var("PKG_CONFIG");
+ let pkg_config_exe = self.targeted_env_var("PKG_CONFIG").or_else(|| {
+ self.env_var_os("DEB_HOST_GNU_TYPE").map(|mut t| {
+ t.push(OsString::from("-pkgconf"));
+ t
+ })
+ });
let fallback_exe = if pkg_config_exe.is_none() {
Some(OsString::from("pkgconf"))
} else {
diff --git a/vendor/pkg-config-0.3.31/tests/test.rs b/vendor/pkg-config-0.3.31/tests/test.rs
index ef80fc7..dad738d 100644
--- a/vendor/pkg-config-0.3.31/tests/test.rs
+++ b/vendor/pkg-config-0.3.31/tests/test.rs
@@ -28,7 +28,6 @@ fn find(name: &str) -> Result<pkg_config::Library, Error> {
pkg_config::probe_library(name)
}
-#[test]
fn cross_disabled() {
let _g = LOCK.lock();
reset();
@@ -40,7 +39,6 @@ fn cross_disabled() {
}
}
-#[test]
fn cross_enabled() {
let _g = LOCK.lock();
reset();
|