}
if sess.target.is_like_osx {
- if let Some(option) = osx_strip_opt(sess.opts.debugging_opts.strip) {
- strip_symbols_in_osx(sess, &out_filename, option);
+ match sess.opts.debugging_opts.strip {
+ Strip::Debuginfo => strip_symbols_in_osx(sess, &out_filename, Some("-S")),
+ Strip::Symbols => strip_symbols_in_osx(sess, &out_filename, None),
+ Strip::None => {}
}
}
}
-fn strip_symbols_in_osx<'a>(sess: &'a Session, out_filename: &Path, option: &str) {
- let prog = Command::new("strip").arg(option).arg(out_filename).output();
+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.arg(option);
+ }
+ let prog = cmd.arg(out_filename).output();
match prog {
Ok(prog) => {
if !prog.status.success() {
}
}
-fn osx_strip_opt<'a>(strip: Strip) -> Option<&'a str> {
- match strip {
- Strip::Debuginfo => Some("-S"),
- Strip::Symbols => Some("-x"),
- Strip::None => None,
- }
-}
-
fn escape_string(s: &[u8]) -> String {
str::from_utf8(s).map(|s| s.to_owned()).unwrap_or_else(|_| {
let mut x = "Non-UTF-8 output: ".to_string();