<div dir="ltr">Thanks, Peter.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jun 4, 2014 at 1:05 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">Hi Frederico,<br>
<br>
This was because of a bug in the declaration of the dfsan_add_label function<br>
(it was defined with C++ linkage instead of the expected C linkage).<br>
It should be fixed as of r210202.<br>
<br>
Peter<br>
<div class=""><br>
On Wed, Jun 04, 2014 at 12:14:34PM -0500, Frederico Araujo wrote:<br>
> Hi,<br>
><br>
</div>> When  trying to use the function *dfsan_add_label* defined in the dataflow<br>
<div class="">> sanitizer interface I get an undefined reference error. Other functions<br>
</div>> such as *dfsan_create_label* and *dfsan_set_label* work fine. I can emulate<br>
<div><div class="h5">> this function by using dfsan_union and fsan_set_label, but I'm curious to<br>
> understand why it's undefined. Any ideas?<br>
><br>
> Here is the output of compilation with -v flag:<br>
><br>
> clang version 3.5.0 (208131)<br>
> Target: x86_64-unknown-linux-gnu<br>
> Thread model: posix<br>
> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8<br>
> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.2<br>
> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9<br>
> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.0<br>
> Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8<br>
>  "/usr/local/llvm/cmakebuild/bin/clang-3.5" -cc1 -triple<br>
> x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free<br>
> -disable-llvm-verifier -main-file-name mrpoc.c -mrelocation-model pic<br>
> -pic-level 2 -pie-level 2 -mdisable-fp-elim -fmath-errno -masm-verbose<br>
> -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64<br>
> -v -resource-dir /usr/local/llvm/cmakebuild/bin/../lib/clang/3.5.0<br>
> -internal-isystem /usr/local/include -internal-isystem<br>
> /usr/local/llvm/cmakebuild/bin/../lib/clang/3.5.0/include<br>
> -internal-externc-isystem /usr/include/x86_64-linux-gnu<br>
> -internal-externc-isystem /include -internal-externc-isystem /usr/include<br>
> -fdebug-compilation-dir /home/frederico/dev/tests/llvm/mr -ferror-limit 19<br>
> -fmessage-length 116 -fsanitize=dataflow<br>
> -fsanitize-blacklist=/usr/local/llvm/cmakebuild/bin/../lib/clang/3.5.0/dfsan_abilist.txt<br>
> -mstackrealign -fobjc-runtime=gcc -fdiagnostics-show-option<br>
> -fcolor-diagnostics -o /tmp/mrpoc-da2ec3.o -x c mrpoc.c<br>
> clang -cc1 version 3.5.0 based upon LLVM 3.5.0svn default target<br>
> x86_64-unknown-linux-gnu<br>
> ignoring nonexistent directory "/include"<br>
> #include "..." search starts here:<br>
> #include <...> search starts here:<br>
>  /usr/local/include<br>
>  /usr/local/llvm/cmakebuild/bin/../lib/clang/3.5.0/include<br>
>  /usr/include/x86_64-linux-gnu<br>
>  /usr/include<br>
> End of search list.<br>
>  "/usr/bin/ld" -whole-archive<br>
> /usr/local/llvm/cmakebuild/bin/../lib/clang/3.5.0/lib/linux/libclang_rt.dfsan-x86_64.a<br>
> -no-whole-archive -pie -z relro --hash-style=gnu --build-id --eh-frame-hdr<br>
> -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o mrpoc<br>
> /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/Scrt1.o<br>
> /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o<br>
> /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbeginS.o<br>
> -L/usr/lib/gcc/x86_64-linux-gnu/4.8<br>
> -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu<br>
> -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu<br>
> -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../..<br>
> -L/usr/local/llvm/cmakebuild/bin/../lib -L/lib -L/usr/lib<br>
> /tmp/mrpoc-da2ec3.o -lpthread -lrt -lm -ldl<br>
> --dynamic-list=/usr/local/llvm/cmakebuild/bin/../lib/clang/3.5.0/lib/linux/libclang_rt.dfsan-x86_64.a.syms<br>
> -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s<br>
> --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.8/crtendS.o<br>
> /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o<br>
> /tmp/mrpoc-da2ec3.o: In function `main':<br>
> mrpoc.c:(.text+0xb3): undefined reference to `dfsan_add_label'<br>
> /tmp/mrpoc-da2ec3.o: In function `dfsw$dfsan_add_label':<br>
> mrpoc.c:(.text.dfsw$dfsan_add_label[dfsw$dfsan_add_label]+0xb): undefined<br>
> reference to `dfsan_add_label'<br>
> clang-3.5: error: linker command failed with exit code 1<br>
><br>
> Thanks,<br>
> Fred<br>
<br>
</div></div>> _______________________________________________<br>
> cfe-dev mailing list<br>
> <a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
--<br>
Peter<br>
</font></span></blockquote></div><br></div>