[cfe-dev] [UBSan] Is static linking supported?

Richard Smith via cfe-dev cfe-dev at lists.llvm.org
Thu Aug 23 11:27:40 PDT 2018


On Thu, 23 Aug 2018, 11:13 Vedant Kumar via cfe-dev, <cfe-dev at lists.llvm.org>
wrote:

> > On Aug 23, 2018, at 10:59 AM, David Greene <dag at cray.com> wrote:
> >
> > According to Reid Kleckner over on llvm-dev sanitizers will not work at
> > all with a statically-linked libc, as the interceptors use dlsym to set
> > up calls to sigaction and the like.  That matched my findings while
> > debugging the problem we're seeing.
>
> Good point, that might be the issue here.
>

UBSan, unlike the other sanitizers, was explicitly designed to not perform
any interception. It's possible that has changed in the interim, of course
...

> If sanitizers are supposed to work
> > with static linking, then it seems like the dependence on dlsym needs to
> > be broken.
> >
> > Otherwise, the sanitizers should catch a nullptr return value from dlsym
> > and report a friendly user error message.  I can write a patch to do
> > that if it seems like a good idea.  Even when linking dynamically, it
> > would be good to check the return value of dlsym and report the error to
> > the user.
>
> + 1.
>
> vedant
>
>
> >
> >                           -David
> >
> > Vedant Kumar via cfe-dev <cfe-dev at lists.llvm.org> writes:
> >
> >> On some platforms it's possible to statically link against the
> >> ASan/UBSan runtimes using the undocumented -static-libsan option. The
> >> default behavior on Darwin, Android, and Fuchsia is to link against a
> >> DSO.
> >>
> >>    On Aug 23, 2018, at 8:57 AM, Troy Johnson via cfe-dev
> >>    <cfe-dev at lists.llvm.org> wrote:
> >>
> >>
> >>
> >>
> >>    The address sanitizer is documented as not supported with static
> >>    linking, but UBSan does not include the same disclaimer. UBSan
> >>    does not work for me with statically-linked executables. Instead,
> >>    the executables segfault immediately when attempting to install
> >>    signal handlers. Is this expected?
> >>
> >> No, that's not expected :). Could you share the options you used to
> >> compile and link it, and the backtrace you get?
> >>
> >> vedant
> >>
> >>
> >>
> >>    -Troy
> >>
> >>
> >>    _______________________________________________
> >>    cfe-dev mailing list
> >>    cfe-dev at lists.llvm.org
> >>    http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
> >>
> >>
> >> _______________________________________________
> >> cfe-dev mailing list
> >> cfe-dev at lists.llvm.org
> >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20180823/4368f19c/attachment.html>


More information about the cfe-dev mailing list