------- Comment #6 from jason dot vas dot dias at gmail dot com 2010-05-01 23:13 ------- Aha ! I think I see the problem, or at least A problem :
$ strace -f gcc ~jason/t.c -o /tmp/t 2>&1 | grep sync $ Nothing is doing a fsync(int fd) for any object file written by gcc . Hence writes by gcc can be entirely to the filesystem cache, and when disk space runs out, many files may not have been sync()-ed to disk within a large make(1) build. I propose that gcc (and binutils!) should do an fsync() of each output file written before closing and returning success. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43955