Author: Timo Teräs POSIX says the behaviour is undefined if atexit callback calls exit(). On glibc it works, but on musl it does not. Call instead _exit() which is guaranteed to work. --- make-4.0/output.c.orig 2013-10-06 02:12:24.000000000 +0300 +++ make-4.0/output.c 2013-10-18 15:43:23.502563018 +0300 @@ -515,7 +515,7 @@ error (NILF, _("write error: %s"), strerror (errno)); else error (NILF, _("write error")); - exit (EXIT_FAILURE); + _exit (EXIT_FAILURE); } }