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

Hal Finkel via llvm-dev llvm-dev at lists.llvm.org
Tue Apr 18 04:45:57 PDT 2017

On 04/18/2017 02:36 AM, David Chisnall via llvm-dev wrote:
> Hi Chris,
> On 17 Apr 2017, at 15:37, Chris Lattner via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>> ---- Exceptions to the Apache 2.0 License: ——
>> As an exception, if, as a result of your compiling your source code, portions of this Software are embedded into an Object form of such source code, you may redistribute such embedded portions in such Object form without complying with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
>> In addition, if you combine or link compiled forms of this Software with software that is licensed under the GPLv2 (“Combined Software”) and if a court of competent jurisdiction determines that the patent provision (Section 3), the indemnity provision (Section 9) or other Section of the License conflicts with the conditions of the GPLv2, you may retroactively and prospectively choose to deem waived or otherwise exclude such Section(s) of the License, but only in their entirety and only with respect to the Combined Software.
>> ---- end —
>> Despite the effort required to reach this point, this is only a small shift from the second round proposal.  We believe that this will resolve the issue of LLVM runtime libraries being used by proprietary and other non-LLVM compilers, and the wording has been carefully vetted by a team of super-smart legal folks, led by Heather (who represents the interests of the LLVM community).
>> We expect that we will need to have a name for this wording, and propose the name "Apache 2.0 License with LLVM Exception” to align the naming with the other exception clauses listed in the SPDX database (https://spdx.org/licenses/exceptions-index.html).  Several other approaches to naming were considered, but we believe that, in this case at least, the most obvious answer is the best.
>> At this point, we’re fairly confident that this wording covers all of the known bases.  That said, we welcome comments and questions on this thread, because while we know that it is impossible to please everyone, we want to know if we’ve missed the mark in a significant way.
> It’s not clear to me that this covers the case of code (e.g. template definitions) in libc++ headers being included in programs.  With this license, if I compile a program that uses C++ standard library #includes on a platform (e.g. macOS, FreeBSD) where libc++ is the default C++ standard library implementation, am I required to add explicit LLVM attribution to binaries that I distribute?  I’m happy with the platform that ships libc++ having to include an attribution in its docs somewhere, but requiring the attribution for every C++ program is very difficult to comply with.

The intent is not to require attribution for all users of libc++. Can 
you explain why you feel that it might not cover this case?

In case it helps, I'll point out that the Apache 2 license's definition 
of Object form is very general: ""Object" form shall mean any form 
resulting from mechanical transformation or translation of a Source 
form, including but not limited to..."


> David
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory

More information about the llvm-dev mailing list