From 99b88b0f909352dc98957913ed161439d1fe46f5 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Mon, 2 Jul 2018 21:37:58 -0500 Subject: [PATCH 1/2] add cargo-strip --- README.md | 12 ++++++++++++ ci/script.sh | 1 + src/bin/cargo-strip.rs | 10 ++++++++++ src/lib.rs | 4 ++++ 4 files changed, 27 insertions(+) create mode 100644 src/bin/cargo-strip.rs diff --git a/README.md b/README.md index 589ef9e..16052c8 100644 --- a/README.md +++ b/README.md @@ -139,6 +139,18 @@ section size addr Total 0x531a ``` +### `strip` + +``` console +$ stat --printf="%s\n" target/release/hello +2120128 + +$ cargo-strip -- target/release/hello + +$ stat --printf="%s\n" target/release/hello +408048 +``` + ## License Licensed under either of diff --git a/ci/script.sh b/ci/script.sh index 17792f1..74a9eed 100644 --- a/ci/script.sh +++ b/ci/script.sh @@ -8,6 +8,7 @@ main() { cargo objdump -v -- -d target/release/cargo-objdump > /dev/null cargo objcopy -v -- -O binary target/release/cargo-objdump objdump.bin > /dev/null cargo size -v -- target/release/cargo-size + cargo strip -v -- target/release/cargo-strip } main diff --git a/src/bin/cargo-strip.rs b/src/bin/cargo-strip.rs new file mode 100644 index 0000000..c490dd2 --- /dev/null +++ b/src/bin/cargo-strip.rs @@ -0,0 +1,10 @@ +extern crate cargo_binutils as cbu; + +use std::process; + +fn main() { + match cbu::run(|ctxt| ctxt.strip(), false) { + Err(e) => eprintln!("error: {}", e), + Ok(ec) => process::exit(ec), + } +} diff --git a/src/lib.rs b/src/lib.rs index 456178e..1668e66 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -163,6 +163,10 @@ impl Context { self.tool("llvm-size") } + pub fn strip(&self) -> Command { + self.tool("llvm-strip") + } + pub fn tool_args(&self) -> &[String] { &self.tool_args } From 3759fafe27a16a8b5ac70ea48f5caf650b738f8a Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Sun, 15 Jul 2018 14:52:00 -0500 Subject: [PATCH 2/2] fix src/bin/cargo-strip.rs --- src/bin/cargo-strip.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/cargo-strip.rs b/src/bin/cargo-strip.rs index c490dd2..4a06b43 100644 --- a/src/bin/cargo-strip.rs +++ b/src/bin/cargo-strip.rs @@ -3,7 +3,7 @@ extern crate cargo_binutils as cbu; use std::process; fn main() { - match cbu::run(|ctxt| ctxt.strip(), false) { + match cbu::run(false, |ctxt| ctxt.strip(), |_ctxt, stdout| stdout.into()) { Err(e) => eprintln!("error: {}", e), Ok(ec) => process::exit(ec), }