[llvm-dev] lld: sigbus error handling

Andrew Kelley via llvm-dev llvm-dev at lists.llvm.org
Mon Oct 23 17:28:33 PDT 2017


For Zig we use LLD as a library. So for us it would be better to avoid
global state such as SIGBUS (or any other signal handlers), instead
returning an error from the link function when linking fails. If lld can
encapsulate this signal handling and prevent the application using lld from
getting the signal directly, instead carefully handling the signal in LLD
itself and translating it into a proper error code or message, this would
be reasonable.

On Mon, Oct 23, 2017 at 6:21 PM, Rui Ueyama via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> If your system does not support fallocate(2), we use ftruncate(2) to
> create an output file. fallocate(2) succeeds even if your disk have less
> space than the requested size, because it creates a sparse file. If you
> mmap such sparse file, you'll receive a SIGBUS when the disk actually
> becomes full.
>
> So, lld can die suddenly with SIGBUS when your disk becomes full, and
> currently we are not doing anything about it. It's sometimes hard to notice
> that that was caused by the lack of disk space.
>
> I wonder if we should print out a hint (e.g. "Bus error -- disk full?")
> when we receive a SIGBUS. Any opinions?
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171023/26dc43a6/attachment.html>


More information about the llvm-dev mailing list