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

Justin Bogner via llvm-dev llvm-dev at lists.llvm.org
Wed May 3 12:10:48 PDT 2017


Kostya Serebryany <kcc at google.com> writes:
> On Tue, May 2, 2017 at 9:34 PM, Justin Bogner <mail at justinbogner.com> wrote:
>
>> Reid Kleckner via llvm-dev <llvm-dev at lists.llvm.org> writes:
>> > On Tue, May 2, 2017 at 4:28 PM, Kostya Serebryany via llvm-dev <
>> > llvm-dev at lists.llvm.org> wrote:
>> >
>> >> On Tue, May 2, 2017 at 12:26 PM, George Karpenkov <ekarpenkov at apple.com
>> >
>> >> wrote:
>> >>
>> >>> From my understanding, all these problems can be solved entirely
>> >>>
>> >> by moving libfuzzer to compiler-rt, where (other) sanitizers already
>> >>> reside.
>> >>>
>> >>
>> >> Yes, that might be a reasonable thing to do.
>> >> I am trying to remember the reasons why we've put libFuzzer into llvm
>> and
>> >> not into compiler-rt in the first place, and failing to do so.
>> >>
>> >
>> > IIRC you thought libFuzzer would be more tightly coupled to LLVM
>> > instrumentation, so the goal was to reap monorepo-like productivity
>> > developments without waiting for it to happen?
>> >
>> > Maybe it was a licensing concern, UIUC vs dual UIUC/MIT?
>> >
>> >
>> >> 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.
>> >>>
>> >>
>> >> This would cause some annoyance for me and maybe some users, but nothing
>> >> we can't tolerate.
>> >> Still what are our other options?
>> >>
>> >> * wait for the mono repo to happen, then we'll be able to make libFuzzer
>> >> depend on clang. (Or no?)
>> >> * move libFuzzer to a separate repo, parallel to compiler-rt? (not a
>> large
>> >> win, just listing as a choice)
>> >> * anything else?
>> >>
>> >> Does anyone see good reasons why libFuzzer should remain in llvm repo
>> (as
>> >> opposed to moving it to compiler-rt)?
>> >>
>> >
>> > I'd like to move libFuzzer out of llvm/lib/, since it's definitely a
>> > runtime library, and not compiler library infrastructure. compiler-rt
>> seems
>> > like the best place to put it for now, unless there are licensing
>> concerns.
>>
>> Maybe we should just move it under llvm/runtimes and set it up with a
>> fairly simple cmake config?
>
> can we?
> If we can, then we probably can also leave the code where it is, and tweak
> the cmake to use just-built-clang. No?

Absolutely - this shouldn't be all that hard. I'd thought about taking a
crack at it a while ago but I haven't had the time.

The only complicated part is deciding what to do when we're not building
clang - should we build libFuzzer with the host compiler in this case,
or not build it at all?


More information about the llvm-dev mailing list