From c3d2b7090f10dd9bbb3b8f2284c1e7aab3a740c8 Mon Sep 17 00:00:00 2001 From: bjorn3 Date: Thu, 9 Jul 2020 12:10:01 +0200 Subject: [PATCH] Check for proc_macro before -Ctarget-features=+crt-static This makes it possible to compile proc macros when -Ctarget-features=+crt-static is used --- src/librustc_session/session.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/librustc_session/session.rs b/src/librustc_session/session.rs index fcd5dab94a6c2..ce239bb2825ed 100644 --- a/src/librustc_session/session.rs +++ b/src/librustc_session/session.rs @@ -679,15 +679,15 @@ impl Session { let found_negative = requested_features.clone().any(|r| r == "-crt-static"); let found_positive = requested_features.clone().any(|r| r == "+crt-static"); - if found_positive || found_negative { - found_positive - } else if crate_type == Some(CrateType::ProcMacro) + if crate_type == Some(CrateType::ProcMacro) || crate_type == None && self.opts.crate_types.contains(&CrateType::ProcMacro) { // FIXME: When crate_type is not available, // we use compiler options to determine the crate_type. // We can't check `#![crate_type = "proc-macro"]` here. false + } else if found_positive || found_negative { + found_positive } else { self.target.target.options.crt_static_default }