diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 0000000..f0b8114 --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,16 @@ +# Statically link the vcruntime +# https://users.rust-lang.org/t/static-vcruntime-distribute-windows-msvc-binaries-without-needing-to-deploy-vcruntime-dll/57599 +[target.'cfg(all(windows, target_env = "msvc"))'] +rustflags = [ + "-C", + "link-args=/DEFAULTLIB:ucrt.lib /DEFAULTLIB:libvcruntime.lib libcmt.lib", + "-C", + "link-args=/NODEFAULTLIB:libvcruntimed.lib /NODEFAULTLIB:vcruntime.lib /NODEFAULTLIB:vcruntimed.lib", + "-C", + "link-args=/NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcrtd.lib", + "-C", + "link-args=/NODEFAULTLIB:libucrt.lib /NODEFAULTLIB:libucrtd.lib /NODEFAULTLIB:ucrtd.lib", +] + +[target.aarch64-unknown-linux-gnu] +linker = "aarch64-linux-gnu-gcc" diff --git a/Cargo.toml b/Cargo.toml index 033d340..cc103cf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -46,6 +46,7 @@ reqwest = { version = "0.11", default-features = false } # # 1. Optimize for size # 2. Automatically strip symbols from the binary +# 3. Enable link-time optimization # # Note that we could abort instead of panicking to cut down on size # even more, but because we use the filesystem & some other APIs we @@ -54,3 +55,4 @@ reqwest = { version = "0.11", default-features = false } [profile.release] opt-level = "z" strip = true +lto = true