[llvm-dev] moving libfuzzer to compiler-rt?

Johan Engelen via llvm-dev llvm-dev at lists.llvm.org
Wed Jul 12 15:07:54 PDT 2017


I'd like to add another perspective: LDC (LLVM D Compiler) can use
libFuzzer and AddressSanitizer from compiler-rt, and it'd be great if
building them would not require a fresh-built clang. I believe the only
reason libFuzzer needs a fresh-built clang is because of the dependence on
the sanitizer interface?
compiler-rt can already be built without using clang, libFuzzer is a little
more tricky: libFuzzer depends on <sanitizer/coverage_interface.h>, note
the angle brackets, meaning that you have to install compiler-rt's include
files to have libFuzzer be in version-sync with the sanitizers.
My hope is that moving libFuzzer to compiler-rt will make it possible to
build it together with the sanitizers, so that it is a little easier to
build it for non-clang use cases.

Kind regards,
  Johan


On Tue, May 2, 2017 at 9:26 PM, George Karpenkov via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Hi All,
>
> Currently libfuzzer depends on (often freshly built) clang, yet the
> dependency is not explicitly specified
> in cmake.
> That leads to various issues: for instance, it’s not possible to check out
> LLVM repo and run libfuzzer
> tests: one would often need to compile fresh clang first, and then create
> a separate build directory,
> where libfuzzer could be tested.
> For the buildbot this problem is approached by grabbing a freshly built
> binary from another buildbot
> and using that for testing.
>
> Needless to say, that could be quite annoying.
> Additionally, my recent changes start using libfuzzer from Clang driver:
> and finding the actual archive file
> requires some hardcoding of directory paths, as one would need to go up
> the tree from the Clang binary
> (in swift, for example, the situation is even worse, as the path to Clang
> is a symlink, and getting an archive file
> from the LLVM tree would require going quite a few levels up).
>
> From my understanding, all these problems can be solved entirely
> by moving libfuzzer to compiler-rt, where (other) sanitizers already
> reside.
>
> Any thoughts on the suggestion?
>
> It would be still possible to compile just libfuzzer with no dependencies,
> by simply making a partial checkout from SVN,
> and only the repo path would change.
>
> George
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170713/f78b0d49/attachment.html>


More information about the llvm-dev mailing list