Now
MAIN commitmail json YAML
make(1): remove USE_IOVEC
When a system call in a child process failed, there was no guarantee
that the error message would be written completely. Using writev
correctly is harder than building the string in a buffer and then
writing it in the traditional way.
According to POSIX 2004, using memory allocation or even calling
write(2) from the child process invokes undefined behavior. The
remaining code from make has done all this for several years now,
successfully, therefore adding one more of that won't hurt.
Make still tries to write the error message atomically by passing the
whole buffer at once to write(2), just as in the previous writev(2)
implementation.
When a system call in a child process failed, there was no guarantee
that the error message would be written completely. Using writev
correctly is harder than building the string in a buffer and then
writing it in the traditional way.
According to POSIX 2004, using memory allocation or even calling
write(2) from the child process invokes undefined behavior. The
remaining code from make has done all this for several years now,
successfully, therefore adding one more of that won't hurt.
Make still tries to write the error message atomically by passing the
whole buffer at once to write(2), just as in the previous writev(2)
implementation.