lld: sigbus error handling

Does FreeBSD have fallocate(2) or equivalent?

FreeBSD has posix_fallocate; we do not have fallocate or fcntl(fd,
F_PREALLOCATE, ...).

If you are still interested, this is the latest patch: https://reviews.llvm.org/D39464

With this patch, disk blocks are preallocated using fallocate (Linux), posix_fallocate (other Unices), or fcntl (macOS) before mmap’ing it. If an operating system or a filesystem don’t support fallocate or equivalent, it uses an in-memory buffer instead so that a disk full error can be detected on FileOutputBuffer::commit().