[LLVMdev] DataFlowSanitizer only for Linux

Kostya Serebryany kcc at google.com
Tue Jul 7 22:45:09 PDT 2015

+pcc , glider

On Mon, Jul 6, 2015 at 12:59 PM, Juan Ceasar <juan.d.ceasar at gmail.com>

> Afternoon,
> I had an issue with trying to link a program with the DataFlowSanitizer
> functionality, this is from the libFuzzer project, and I was seeing:
> clang++ -fsanitize=address -fsanitize-coverage=edge test_fuzzer.cc
> Fuzzer*.o
> Undefined symbols for architecture x86_64:
>   "_dfsan_create_label", referenced from:
>       fuzzer::TraceState::DFSanCmpCallback(unsigned long, unsigned long,
> unsigned long, unsigned long long, unsigned long long, unsigned short,
> unsigned short) in FuzzerTraceState.o
>       fuzzer::Fuzzer::InitializeTraceState() in FuzzerTraceState.o
>   "_dfsan_get_label_info", referenced from:
>       fuzzer::TraceState::GetLabelRange(unsigned short) in
> FuzzerTraceState.o
>   .....
> But then looking at the docs:
> http://clang.llvm.org/docs/DataFlowSanitizer.html
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__clang.llvm.org_docs_DataFlowSanitizer.html&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=Mfk2qtn1LTDThVkh6-oGglNfMADXfJdty4_bhmuhMHA&m=DuYBrpgYwv8YGoYjC8o5HfU49LwQXqvyVTXIABWvtTE&s=K41EpstDp6NwFwwzmrjj5-HivCd-_5Gt8Jr-Zyc7nxQ&e=>
> It appears that this is only supported under Linux?  Is that right?
Correct. AFAICT, DFSan was only tested on Linux.
It is quite hard to make it work on Mac because there are too many closed
source libraries there.
Nothing impossible though -- it's just that nobody has worked on it.

libFuzzer was also never tested on Mac, but I think it should be trivial to
make it work there.
I suspect that the errors you see are caused by the weak function
declarations which don't (???) work on Mac.
You'll need to #ifdef the weak functions on Mac somehow. Patches and Mac
buildbots are welcome :)


> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150707/2646d7b4/attachment.html>

More information about the llvm-dev mailing list