<div dir="auto"><div><div class="gmail_quote"><div dir="ltr">On Thu, 23 Aug 2018, 11:13 Vedant Kumar via cfe-dev, <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">> On Aug 23, 2018, at 10:59 AM, David Greene <<a href="mailto:dag@cray.com" target="_blank" rel="noreferrer">dag@cray.com</a>> wrote:<br>
> <br>
> According to Reid Kleckner over on llvm-dev sanitizers will not work at<br>
> all with a statically-linked libc, as the interceptors use dlsym to set<br>
> up calls to sigaction and the like.  That matched my findings while<br>
> debugging the problem we're seeing.<br>
<br>
Good point, that might be the issue here.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">UBSan, unlike the other sanitizers, was explicitly designed to not perform any interception. It's possible that has changed in the interim, of course ...</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> If sanitizers are supposed to work<br>
> with static linking, then it seems like the dependence on dlsym needs to<br>
> be broken.<br>
> <br>
> Otherwise, the sanitizers should catch a nullptr return value from dlsym<br>
> and report a friendly user error message.  I can write a patch to do<br>
> that if it seems like a good idea.  Even when linking dynamically, it<br>
> would be good to check the return value of dlsym and report the error to<br>
> the user.<br>
<br>
+ 1.<br>
<br>
vedant<br>
<br>
<br>
> <br>
>                           -David<br>
> <br>
> Vedant Kumar via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank" rel="noreferrer">cfe-dev@lists.llvm.org</a>> writes:<br>
> <br>
>> On some platforms it's possible to statically link against the<br>
>> ASan/UBSan runtimes using the undocumented -static-libsan option. The<br>
>> default behavior on Darwin, Android, and Fuchsia is to link against a<br>
>> DSO.<br>
>> <br>
>>    On Aug 23, 2018, at 8:57 AM, Troy Johnson via cfe-dev<br>
>>    <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank" rel="noreferrer">cfe-dev@lists.llvm.org</a>> wrote:<br>
>> <br>
>> <br>
>> <br>
>> <br>
>>    The address sanitizer is documented as not supported with static<br>
>>    linking, but UBSan does not include the same disclaimer. UBSan<br>
>>    does not work for me with statically-linked executables. Instead,<br>
>>    the executables segfault immediately when attempting to install<br>
>>    signal handlers. Is this expected?<br>
>> <br>
>> No, that's not expected :). Could you share the options you used to<br>
>> compile and link it, and the backtrace you get?<br>
>> <br>
>> vedant<br>
>> <br>
>> <br>
>> <br>
>>    -Troy<br>
>> <br>
>> <br>
>>    _______________________________________________<br>
>>    cfe-dev mailing list<br>
>>    <a href="mailto:cfe-dev@lists.llvm.org" target="_blank" rel="noreferrer">cfe-dev@lists.llvm.org</a><br>
>>    <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
>> <br>
>> <br>
>> _______________________________________________<br>
>> cfe-dev mailing list<br>
>> <a href="mailto:cfe-dev@lists.llvm.org" target="_blank" rel="noreferrer">cfe-dev@lists.llvm.org</a><br>
>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank" rel="noreferrer">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div></div></div>