cmd.env_remove(k);
}
- if sess.opts.debugging_opts.print_link_args {
+ if sess.opts.prints.contains(&PrintRequest::LinkArgs) {
println!("{:?}", &cmd);
}
SplitDebuginfo::Packed => link_dwarf_object(sess, &out_filename),
}
+ let strip = strip_value(sess);
+
if sess.target.is_like_osx {
- match sess.opts.debugging_opts.strip {
+ match strip {
Strip::Debuginfo => strip_symbols_in_osx(sess, &out_filename, Some("-S")),
Strip::Symbols => strip_symbols_in_osx(sess, &out_filename, None),
Strip::None => {}
}
}
+// Temporarily support both -Z strip and -C strip
+fn strip_value(sess: &Session) -> Strip {
+ match (sess.opts.debugging_opts.strip, sess.opts.cg.strip) {
+ (s, Strip::None) => s,
+ (_, s) => s,
+ }
+}
+
fn strip_symbols_in_osx<'a>(sess: &'a Session, out_filename: &Path, option: Option<&str>) {
let mut cmd = Command::new("strip");
if let Some(option) = option {
cmd.optimize();
// Pass debuginfo and strip flags down to the linker.
- cmd.debuginfo(sess.opts.debugging_opts.strip);
+ cmd.debuginfo(strip_value(sess));
// We want to prevent the compiler from accidentally leaking in any system libraries,
// so by default we tell linkers not to link to any default libraries.