From c694baec336a49ede0f55703337e3cb97f6bd728 Mon Sep 17 00:00:00 2001 From: George Hahn Date: Thu, 21 Feb 2019 15:08:43 -0600 Subject: [PATCH] Disable default args when they may conflict with CFLAGS/CXXFLAGS --- src/lib.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 560c0db..bb77ce1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1098,8 +1098,13 @@ impl Build { cmd.push_cc_arg(arg.into()); } - // Disable default flag generation via environment variable - let use_defaults = self.getenv("CRATE_CC_NO_DEFAULTS").is_none(); + // Disable default flag generation via environment variable or when + // certain cross compiling arguments are set + let use_defaults = self.getenv("CRATE_CC_NO_DEFAULTS").is_none() + && !(cmd.args.iter().any(|ref a| { + let arg = a.to_str().unwrap_or(""); + arg.starts_with("-m") || arg.starts_with("/arch") || arg.starts_with("--target") + })); if use_defaults { // Non-target flags