diff --git a/cook.sh b/cook.sh
index 3ec8b698c946f0f77855f885fa8d864a470e4c43..07936d1bfb2d73a33c65ec3edceb6012db921e54 100755
--- a/cook.sh
+++ b/cook.sh
@@ -6,6 +6,7 @@ source config.sh
 
 # Variables to be overriden by recipes
 export BINDIR=bin
+export CARGOBUILD=rustc
 export CARGOFLAGS=
 export DEBUG=
 export PREPARE_COPY=1
@@ -311,7 +312,7 @@ function op {
             if [ "$skip" -eq "0" ]
             then
                 cp -p "$ROOT/Xargo.toml" "Xargo.toml"
-                xargo rustc --target "$TARGET" $release_flag $CARGOFLAGS
+                xargo "$CARGOBUILD" --target "$TARGET" $release_flag $CARGOFLAGS
             fi
             popd > /dev/null
             ;;
diff --git a/recipes/drivers/recipe.sh b/recipes/drivers/recipe.sh
index eb3653f2be28c056fcc7977a337f9e89688dc8a5..4c5becb8c74462ebbc7831c096ccd283fbbc53dc 100644
--- a/recipes/drivers/recipe.sh
+++ b/recipes/drivers/recipe.sh
@@ -1,5 +1,6 @@
 GIT=https://gitlab.redox-os.org/redox-os/drivers.git
-CARGOFLAGS=--all
+CARGOBUILD="build"
+CARGOFLAGS="--all"
 
 function recipe_version {
     echo "0.1.1"
diff --git a/recipes/ipcd/recipe.sh b/recipes/ipcd/recipe.sh
index 23eadd83a09029b7a5abf66f91fd1bafd9e2ca3c..d500b6447343982e04ea051ec8ee06a7cd5515a5 100644
--- a/recipes/ipcd/recipe.sh
+++ b/recipes/ipcd/recipe.sh
@@ -1 +1,2 @@
 GIT=https://gitlab.redox-os.org/redox-os/ipcd.git
+CARGOFLAGS="--bin ipcd -- -C lto"
diff --git a/recipes/nulld/recipe.sh b/recipes/nulld/recipe.sh
index 0d8a742215943f55764449813cebd3e80bcef2a9..a5944d526089367c46070c5b29f4794579cc47ef 100644
--- a/recipes/nulld/recipe.sh
+++ b/recipes/nulld/recipe.sh
@@ -1 +1,2 @@
 GIT=https://gitlab.redox-os.org/redox-os/nulld.git
+CARGOFLAGS="--bin nulld -- -C lto"
diff --git a/recipes/orbital/recipe.sh b/recipes/orbital/recipe.sh
index 0bf99461cf4596e2960fb6b7ebaa1ab5d9ba129f..68484f398907a7b2cd95e4fab249ca8900c63b8c 100644
--- a/recipes/orbital/recipe.sh
+++ b/recipes/orbital/recipe.sh
@@ -1,2 +1,3 @@
 GIT=https://gitlab.redox-os.org/redox-os/orbital.git
+CARGOFLAGS="--bin orbital -- -C lto"
 DEPENDS="orbdata"
diff --git a/recipes/orbterm/recipe.sh b/recipes/orbterm/recipe.sh
index 5c79b26c303513e0e16fcc9de6576f9051bf9d68..9976d87ac9a0e2948d192f9c418786b1ed9e328b 100644
--- a/recipes/orbterm/recipe.sh
+++ b/recipes/orbterm/recipe.sh
@@ -1,3 +1,4 @@
 GIT=https://gitlab.redox-os.org/redox-os/orbterm.git
 BINDIR=/ui/bin
+CARGOFLAGS="--bin orbterm -- -C lto"
 DEPENDS="orbital"
diff --git a/recipes/orbutils-minimal/recipe.sh b/recipes/orbutils-background/recipe.sh
similarity index 59%
rename from recipes/orbutils-minimal/recipe.sh
rename to recipes/orbutils-background/recipe.sh
index b00327c70e858a43db5f9b9021d916ff39104786..2105db9fd73fc1e9287aa8efbd921a2cbe967bd2 100644
--- a/recipes/orbutils-minimal/recipe.sh
+++ b/recipes/orbutils-background/recipe.sh
@@ -1,4 +1,4 @@
 GIT=https://gitlab.redox-os.org/redox-os/orbutils.git
 BINDIR=/ui/bin
-CARGOFLAGS="--bin background --bin launcher --bin orblogin"
+CARGOFLAGS="--bin background -- -C lto"
 DEPENDS="orbital"
diff --git a/recipes/orbutils-launcher/recipe.sh b/recipes/orbutils-launcher/recipe.sh
new file mode 100644
index 0000000000000000000000000000000000000000..b2504a2223a56d1229cccba5eaabd7effcd5aa56
--- /dev/null
+++ b/recipes/orbutils-launcher/recipe.sh
@@ -0,0 +1,4 @@
+GIT=https://gitlab.redox-os.org/redox-os/orbutils.git
+BINDIR=/ui/bin
+CARGOFLAGS="--bin launcher -- -C lto"
+DEPENDS="orbital"
diff --git a/recipes/orbutils-orblogin/recipe.sh b/recipes/orbutils-orblogin/recipe.sh
new file mode 100644
index 0000000000000000000000000000000000000000..43aeddcd92bdb65c1ab0a7cbb4f2f0b783306b9c
--- /dev/null
+++ b/recipes/orbutils-orblogin/recipe.sh
@@ -0,0 +1,4 @@
+GIT=https://gitlab.redox-os.org/redox-os/orbutils.git
+BINDIR=/ui/bin
+CARGOFLAGS="--bin orblogin -- -C lto"
+DEPENDS="orbital"
diff --git a/recipes/ptyd/recipe.sh b/recipes/ptyd/recipe.sh
index affeb268f7be5227e8d7d140644beefe4cac42f1..558bbf5d4a7e1fc9bdb45448deec4d4c88a6140a 100644
--- a/recipes/ptyd/recipe.sh
+++ b/recipes/ptyd/recipe.sh
@@ -1 +1,2 @@
 GIT=https://gitlab.redox-os.org/redox-os/ptyd.git
+CARGOFLAGS="--bin ptyd -- -C lto"
diff --git a/recipes/randd/recipe.sh b/recipes/randd/recipe.sh
index 3767314888be4af00ae4a2528e99e8293969e689..a3e93aadae5885f68b87a68d095f3c815c22135a 100644
--- a/recipes/randd/recipe.sh
+++ b/recipes/randd/recipe.sh
@@ -1 +1,2 @@
 GIT=https://gitlab.redox-os.org/redox-os/randd.git
+CARGOFLAGS="--bin randd -- -C lto"
diff --git a/recipes/uutils/recipe.sh b/recipes/uutils/recipe.sh
index 1782913a141d8ee3ad167b00f0f1087d895c7372..67c7f51c4c007808fb36152a15b8d8be5a422a33 100644
--- a/recipes/uutils/recipe.sh
+++ b/recipes/uutils/recipe.sh
@@ -1,6 +1,6 @@
 GIT=https://gitlab.redox-os.org/redox-os/uutils.git
 GIT_UPSTREAM=https://github.com/uutils/coreutils.git
-CARGOFLAGS="--no-default-features --features redox"
+CARGOFLAGS="--no-default-features --features redox --bin uutils -- -C lto"
 
 BINS=(
   base32
diff --git a/recipes/zerod/recipe.sh b/recipes/zerod/recipe.sh
index a201dacfd956c6a7fb6da71b4fd77e00c012c843..5006bda6e4935d0af7948d69b6250620b12cd461 100644
--- a/recipes/zerod/recipe.sh
+++ b/recipes/zerod/recipe.sh
@@ -1 +1,2 @@
 GIT=https://gitlab.redox-os.org/redox-os/zerod.git
+CARGOFLAGS="--bin zerod -- -C lto"