From 2a5f3ee0c5b51c4d3aa4c6ab1cb7f3ffe1687c41 Mon Sep 17 00:00:00 2001 From: varkor Date: Thu, 22 Mar 2018 23:58:36 +0000 Subject: [PATCH 1/3] Make --emit=metadata output metadata regardless of link --- src/librustc_trans/back/link.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs index bdda7741221f5..168570df464e4 100644 --- a/src/librustc_trans/back/link.rs +++ b/src/librustc_trans/back/link.rs @@ -146,9 +146,7 @@ pub(crate) fn link_binary(sess: &Session, let mut out_filenames = Vec::new(); for &crate_type in sess.crate_types.borrow().iter() { // Ignore executable crates if we have -Z no-trans, as they will error. - if (sess.opts.debugging_opts.no_trans || - !sess.opts.output_types.should_trans()) && - crate_type == config::CrateTypeExecutable { + if sess.opts.debugging_opts.no_trans && crate_type == config::CrateTypeExecutable { continue; } From 8056506b1b8aef3dc1af1d6256e0665fbfc79ae9 Mon Sep 17 00:00:00 2001 From: varkor Date: Sat, 31 Mar 2018 22:12:52 +0100 Subject: [PATCH 2/3] Special-case OutputType::Metadata --- src/librustc_trans/back/link.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs index 168570df464e4..60ce0517cfabb 100644 --- a/src/librustc_trans/back/link.rs +++ b/src/librustc_trans/back/link.rs @@ -146,7 +146,10 @@ pub(crate) fn link_binary(sess: &Session, let mut out_filenames = Vec::new(); for &crate_type in sess.crate_types.borrow().iter() { // Ignore executable crates if we have -Z no-trans, as they will error. - if sess.opts.debugging_opts.no_trans && crate_type == config::CrateTypeExecutable { + let output_metadata = sess.opts.output_types.contains_key(&OutputType::Metadata); + let ignore_executable = sess.opts.debugging_opts.no_trans || + !(sess.opts.output_types.should_trans() || output_metadata); + if crate_type == config::CrateTypeExecutable && ignore_executable { continue; } From 7575d96a98dfb5d46accf6d2744529f09c83cd6c Mon Sep 17 00:00:00 2001 From: varkor Date: Tue, 10 Apr 2018 11:12:21 +0100 Subject: [PATCH 3/3] Reformat trans skip condition --- src/librustc_trans/back/link.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs index 60ce0517cfabb..514d76a4129ec 100644 --- a/src/librustc_trans/back/link.rs +++ b/src/librustc_trans/back/link.rs @@ -147,9 +147,9 @@ pub(crate) fn link_binary(sess: &Session, for &crate_type in sess.crate_types.borrow().iter() { // Ignore executable crates if we have -Z no-trans, as they will error. let output_metadata = sess.opts.output_types.contains_key(&OutputType::Metadata); - let ignore_executable = sess.opts.debugging_opts.no_trans || - !(sess.opts.output_types.should_trans() || output_metadata); - if crate_type == config::CrateTypeExecutable && ignore_executable { + if (sess.opts.debugging_opts.no_trans || !sess.opts.output_types.should_trans()) && + !output_metadata && + crate_type == config::CrateTypeExecutable { continue; }