<div dir="ltr">Hi Peter,<div><br></div><div>It works! Thanks a lot for your help.<br></div><div><br></div><div>Regards,</div><div>Fred</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, May 7, 2014 at 6:31 PM, Peter Collingbourne <span dir="ltr"><<a href="mailto:peter@pcc.me.uk" target="_blank">peter@pcc.me.uk</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Wed, May 07, 2014 at 05:52:25PM -0500, Frederico Araujo wrote:<br>
> Hi Peter,<br>
><br>
> Thank you for your reply.<br>
><br>
> I'm still having problems even after using cmake. Please see my comments<br>
> below.<br>
><br>
> On Wed, May 7, 2014 at 4:16 PM, Peter Collingbourne <<a href="mailto:peter@pcc.me.uk">peter@pcc.me.uk</a>> wrote:<br>
><br>
> > Hi Frederico,<br>
> ><br>
> > On Wed, May 07, 2014 at 03:43:07PM -0500, Frederico Araujo wrote:<br>
> > > Hi,<br>
> > ><br>
> > > I'm trying to compile the example program from the DataFlow Sanitizer<br>
> > page (<br>
> > > <a href="http://clang.llvm.org/docs/DataFlowSanitizer.html" target="_blank">http://clang.llvm.org/docs/DataFlowSanitizer.html</a>) without success. I<br>
> > > receive a number of errors when trying to compile the example with clang:<br>
> > ><br>
> > > /> clang -fsanitize=dataflow -o labelprop labelprop.c<br>
> > [...]<br>
> > > /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/Scrt1.o: In<br>
> > > function `_start':<br>
> > > (.text+0x20): undefined reference to `main'<br>
> > [...]<br>
> > > /tmp/labelprop-bfe82e.o: In function `dfs$main':<br>
> > > labelprop.c:(.text+0x78): undefined reference to `dfs$dfsan_create_label'<br>
> ><br>
> > It looks like DFSan wasn't able to find the ABI list file. Unfortunately<br>
> > only the CMake build system currently supports building the ABI list.<br>
> > Can you please try again with CMake?<br>
> ><br>
><br>
> I created this simple CMake list file:<br>
><br>
> cmake_minimum_required (VERSION 2.6)<br>
> project (EXAMPLE)<br>
> add_executable(labelprop labelprop.c)<br>
> SET (CMAKE_C_COMPILER   "/usr/bin/clang")<br>
> SET (CMAKE_C_FLAGS "-fsanitize=dataflow")<br>
><br>
> After building the project with the above configuration, I still get the<br>
> same errors as before. Anything missing? Perhaps I should say that I'm new<br>
> to cmake :)<br>
<br>
</div></div>Sorry, I meant that you need to compile LLVM/Clang/compiler-rt with CMake<br>
following the instructions here:<br>
<br>
<a href="http://llvm.org/docs/CMake.html" target="_blank">http://llvm.org/docs/CMake.html</a><br>
<div class=""><br>
> I forgot to ask in my first email: is there any step-by-step instructions<br>
> on how to compile and get the dataflow sanitizer example working?<br>
<br>
</div>It shouldn't take any more than compiling with the -fsanitize=dataflow command<br>
line flag, but admittedly the requirement to build Clang with CMake had not<br>
been documented. I'll see about documenting it.<br>
<div class=""><br>
> > /usr/local/llvm/build/Debug+Asserts/bin/../lib/clang/3.5.0/lib/linux/libclang_rt.dfsan-x86_64.a(sanitizer_deadlock_detector1.o):(.data.rel.ro._ZTIN11__sanitizer9DDetectorE[_ZTIN11__sanitizer9DDetectorE]+0x0):<br>


> > > undefined reference to `vtable for __cxxabiv1::__class_type_info'<br>
> ><br>
> > This would appear to indicate that your sanitizer runtimes were built with<br>
> > RTTI, which is a little surprising. Did you do anything in particular to<br>
> > enable RTTI?<br>
> ><br>
><br>
> Well, no. I just followed the instructions on the clang webpage on how to<br>
> compile llvm and clang. I used the trunk versions of everything. I also<br>
> compiled the optional projects. Could it be the -fsanitizer-dataflow option?<br>
<br>
</div>So it looks like when built with Makefiles, the dfsan runtime library contains<br>
some object files that were compiled with RTTI. It isn't immediately clear why<br>
this is happening with dfsan and not with the other sanitizer runtimes. Alexey,<br>
do you have any idea?<br>
<br>
In any case, building with CMake should fix this.<br>
<br>
Thanks,<br>
<span class="HOEnZb"><font color="#888888">--<br>
Peter<br>
</font></span></blockquote></div><br></div></div>