[llvm-dev] RFC #2: Improving license & patent issues in the LLVM community

Chris Lattner via llvm-dev llvm-dev at lists.llvm.org
Mon Sep 12 10:58:56 PDT 2016

On Sep 12, 2016, at 10:10 AM, Ed Schouten <ed at nuxi.nl> wrote:
>> ---- end ---
> Just to make sure I get this straight, I can substitute 'this
> Software' by the names of components provided by the LLVM project.

This is the literal license text that will be included with each of these projects, so no, you cannot literally make that substitution.

However, yes, this will cover all parts of the LLVM project including LLVM, Clang, LLDB, libc++ etc if that’s what you’re asking.

> For
> example:
>> As an exception, if you use LLVM, Clang and/or DragonEgg to compile your source code and portions of compiler-rt, libc++, libc++abi and/or libunwind are embedded into the binary product as a result, you may redistribute such product without providing attribution as would otherwise be required by Sections 4(a), 4(b) and 4(d) of the License.

The license specifically does not make a distinction between LLVM/clang and libc++/compiler-rt.  You should be able to embed LLVM or clang code into a binary without having to provide attribution.

> I've got a couple of questions about this.
> - Now that we're also in the business of providing other kinds of
> tools that are not compilers (e.g., LLD being a linker), are we sure
> that this will cover all of our needs?

Yes, I don’t see anything functionally or use-case different between LLD and Clang or LLDB.

> - What about derived software?

You need to specify what you mean by derived, I’ll answer the specific questions below to the best of my knowledge.  However, it would be great for someone like DannyB to confirm this.

> Would this also apply if I'd be using
> the Swift compiler to generate an executable that contains some bits
> from compiler-rt?

Yes, the runtime exception clause covers the code being embedded (compiler-rt) not relating to how it got embedded.

FWIW, Swift already uses the Apache 2 license with the runtime exception clause, but that isn’t important for the question.  

> What if I'd be using GCC, but added a tiny fraction
> of LLVM's source code to it? What about a stock version of GCC that is
> linked against compiler-rt?

Both are fine, the compiler-rt code is covered regardless of how it gets embedded.  You could use a fully proprietary compiler like Intel’s ICC and that would also be fine.

> Sorry if some of these questions may seem hypothetical or silly; I'm
> merely interested in knowing where the boundary is and how this
> licensing exception will work in practice.

No problem at all,


More information about the llvm-dev mailing list