Index: uspace/app/pcc/cc/cpp/cpp.c
===================================================================
--- uspace/app/pcc/cc/cpp/cpp.c	(revision 60e3e8515890b6c587b6ad358badd5f031565776)
+++ uspace/app/pcc/cc/cpp/cpp.c	(revision 0ffbed92440e33399ebe2d52bb5850ddcdafdc71)
@@ -1708,4 +1708,19 @@
 }
 
+ssize_t
+write_all(int fd, const void* buffer, size_t count)
+{
+	size_t remaining = count;
+	while (remaining > 0) {
+		ssize_t retval = write(ofd, buffer, remaining);
+		if (retval < 0) {
+			return retval;
+		}
+		remaining -= retval;
+		buffer += retval;
+	}
+	return count;
+}
+
 void
 flbuf()
@@ -1713,5 +1728,5 @@
 	if (obufp == 0)
 		return;
-	if (Mflag == 0 && write(ofd, outbuf, obufp) < 0)
+	if (Mflag == 0 && write_all(ofd, outbuf, obufp) < 0)
 		error("obuf write error");
 	lastoch = outbuf[obufp-1];
