<div dir="ltr">OK, looks like some of the necessary patches mailed by Viktor are still being reviewed. For now, let me disable<div>building sanitizer runtimes on FreeBSD until we have all the patches in, to avoid breaking the compiler-rt build.</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Feb 26, 2014 at 2:19 AM, Roman Divacky <span dir="ltr"><<a href="mailto:rdivacky@freebsd.org" target="_blank">rdivacky@freebsd.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I tried to use ubsan and<br>
<br>
1) compiler-rt doesnt compile for me, I need this patch:<br>
<br>
Index: ../projects/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h<br>
===================================================================<br>
--- ../projects/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h      (revision 202195)<br>
+++ ../projects/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h      (working copy)<br>
@@ -378,6 +378,10 @@<br>
     // The size is determined by looking at sizeof of real sigset_t on linux.<br>
     uptr val[128 / sizeof(uptr)];<br>
   };<br>
+#elif SANITIZER_FREEBSD<br>
+  struct __sanitizer_sigset_t {<br>
+    u32 val[4];<br>
+  };<br>
 #endif<br>
<br>
   // Linux system headers define the 'sa_handler' and 'sa_sigaction' macros.<br>
<br>
2) the clang driver doesnt add sanitizer arguments:<br>
<br>
Index: ../tools/clang/lib/Driver/Tools.cpp<br>
===================================================================<br>
--- ../tools/clang/lib/Driver/Tools.cpp (revision 202180)<br>
+++ ../tools/clang/lib/Driver/Tools.cpp (working copy)<br>
@@ -6172,6 +6172,7 @@<br>
     CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtn.o")));<br>
   }<br>
<br>
+  addSanitizerRuntimes(getToolChain(), Args, CmdArgs);<br>
   addProfileRT(ToolChain, Args, CmdArgs);<br>
<br>
   const char *Exec =<br>
<br>
3) Even with the above, it doesnt work because addSanitizerRuntimes() is not adjusted<br>
for freebsd (ie. it looks for sanitizer libs in freebsd9.2 instead of freebsd dir and<br>
tries to add -ldl which doesn exist on freebsd)<br>
<br>
4) even when I correct that (manually), ubsan doesnt link with lots of undefined symbols,<br>
eg.:<br>
<br>
__sanitizer::StackTrace::SlowUnwindStackWithContext etc.<br>
<br>
<br>
Can you shed some light on the status?<br>
<div class="HOEnZb"><div class="h5"><br>
On Tue, Feb 25, 2014 at 08:29:36AM -0000, Alexey Samsonov wrote:<br>
> Author: samsonov<br>
> Date: Tue Feb 25 02:29:36 2014<br>
> New Revision: 202122<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=202122&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=202122&view=rev</a><br>
> Log:<br>
> Enable UBSan on FreeBSD. Patch by Viktor Kutuzov.<br>
><br>
> Modified:<br>
>     compiler-rt/trunk/lib/ubsan/ubsan_value.h<br>
><br>
> Modified: compiler-rt/trunk/lib/ubsan/ubsan_value.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/ubsan/ubsan_value.h?rev=202122&r1=202121&r2=202122&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/ubsan/ubsan_value.h?rev=202122&r1=202121&r2=202122&view=diff</a><br>

> ==============================================================================<br>
> --- compiler-rt/trunk/lib/ubsan/ubsan_value.h (original)<br>
> +++ compiler-rt/trunk/lib/ubsan/ubsan_value.h Tue Feb 25 02:29:36 2014<br>
> @@ -14,9 +14,9 @@<br>
>  #ifndef UBSAN_VALUE_H<br>
>  #define UBSAN_VALUE_H<br>
><br>
> -// For now, only support linux and darwin. Other platforms should be easy to<br>
> -// add, and probably work as-is.<br>
> -#if !defined(__linux__) && !defined(__APPLE__)<br>
> +// For now, only support Linux, FreeBSD and Darwin. Other platforms should<br>
> +// be easy to add, and probably work as-is.<br>
> +#if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__APPLE__)<br>
>  #error "UBSan not supported for this platform!"<br>
>  #endif<br>
><br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Alexey Samsonov, MSK</div>
</div>