diff --git a/generate-stublib.sh b/generate-stublib.sh
index 6f1a67431bf5bf8dda932bb3902714f6a56f5573..a5422b4d0ccedce014298887303d44228d0fc777 100755
--- a/generate-stublib.sh
+++ b/generate-stublib.sh
@@ -38,10 +38,18 @@ exec >$proxy_src;
 
 cat $top/capsule-shim.h;
 
-for pt in $proxied_dso $(cat $proxy_extra);
-do
-    $top/print-libstubs $pt;
-done > $symbol_file;
+if (for pt in $proxied_dso $(cat $proxy_extra);
+    do
+        $top/print-libstubs $pt || exit 1;
+    done) > $symbol_file.tmp;
+then
+    mv $symbol_file.tmp $symbol_file;
+else
+    code=$?;
+    rm $symbol_file.tmp
+    exit $code;
+fi
+
 
 while read symbol version dependency;
 do