diff --git a/bin/build.sh b/bin/build.sh
index 487744611df6ea21deba3fbc3c75c89d63ecc59a..73a0a1fdfde5e27ed60d82dfde56ab72aca2605e 100755
--- a/bin/build.sh
+++ b/bin/build.sh
@@ -262,8 +262,10 @@ $TARGET/lisp/lisp -noinit -nositeinit -batch << EOF || exit 3
 (compile-file "modules:defsystem/defsystem")
 (intl::install)
 (ext:without-package-locks
-  (compile-file #-linux "modules:unix/unix"
-                #+linux "modules:unix/unix-glibc2"))
+  (let ((path #-linux "modules:unix/unix"
+              #+linux "modules:unix/unix-glibc2"))
+    (ensure-directories-exist (compile-file-pathname path))
+    (compile-file path)))
 EOF