
GCC, LLVM, Copyleft, Companies, and Non-Profits (2014) - jordigh
http://ebb.org/bkuhn/blog/2014/01/26/llvm.html
======
swhipple
This article does a good job of explaining the choice of features to implement
in GPL software as a political strategy rather than a religion. Especially
good timing for this to be brought back up with the recent controversial
request by RMS for some LLVM interoperability to be blocked from Emacs. [1]

I enjoy free software, but it is painful to think that I might not be able to
use Emacs with software that I consider to be equally free (LLVM) due to
political strategies. I know RMS has been through enough of the embrace-
extend-extinguish era to be suspicious, but given the quality of free
toolchains today and the surrounding communities, I have doubts of this
history repeating itself in LLVM.

[1] [http://lists.gnu.org/archive/html/emacs-
devel/2015-02/msg003...](http://lists.gnu.org/archive/html/emacs-
devel/2015-02/msg00360.html)

~~~
amyjess
Oh, it goes deeper than that.

One of the many reasons why LLVM is taking off is because it provides an API
that lets programs hook into the compiler, which means IDEs can deeply
integrate with the compiler. For example, IDEs can highlight errors based on
where the compiler says errors are instead of having to run its own parser for
the language.

Why doesn't gcc have this feature?

Well, it was proposed, but it was shot down because RMS doesn't want
proprietary tools to be able to hook into gcc. In fact, gcc was deliberately
designed as a monolithic application with no API specifically to keep third-
party tools away from it.

So yet another reason why people are moving away from gcc is because
llvm/clang enables you to have better development tools. GNU is being killed
by its own religion.

~~~
Spivak
So why not just make that part of the license? Just require any tool that uses
the GCC API, even transitively, to be licensed under something GPL compatible.
I know there would probably be a huge number of loopholes to plug but this is
really something that should be fixed outside of the actual code.

~~~
cozzyd
I was thinking the same thing. Change the GCC license to preclude such use by
introducing a variant of the GPL for compilers and similar tools.

~~~
jeremysalwen
Linked from the original article is another piece by the author describing
precisely such a license: [http://ebb.org/bkuhn/blog/2009/01/27/gcc-
exception.html](http://ebb.org/bkuhn/blog/2009/01/27/gcc-exception.html) . I'm
rather surprised I haven't heard of this before.

~~~
belorn
Likely because it would be incompatible with GPL. Switching GCC's license to a
GPL incompatible license is not a move I think FSF are willing to do.

------
legulere
This article has quite some flaws.

It totally ignores that it was the GPLv3 that let Apple move to LLVM - with
Apple not being the only company that was kind of okay with GPLv2 but totally
avoids GPLv3.

It often looses touch with reality. It absolutely ignores that Apple was a
contributor of GCC and some of the LLVM developers were GCC developers before.
It goes on and on how LLVM is in a terrible state that will get even worse
because of a missing copyleft, when in reality LLVM is thriving because of the
many companies that are contributing.

~~~
wildfire
> It absolutely ignores that Apple was a contributor of GCC

Actually, Apple were _compelled_ to contribute to GCC.

That is one of the points of the article.

That an Objective-C compiler exists _at_ _all_ is because of GCC. The fact
that we can see and examine the source is because of the GNU GPL.

~~~
coldtea
> _That an Objective-C compiler exists at all is because of GCC. The fact that
> we can see and examine the source is because of the GNU GPL._

Yeah, no. They contribute the same to LLVM -- and even more than they did with
GCC--, while still nobody "compells" them.

Plus Apple released lots of other Open Source stuff, even when not compelled
by GPL. Nobody forced with respect to Darwin for example.

~~~
chimeracoder
> Yeah, no. They contribute the same to LLVM -- and even more than they did
> with GCC--, while still nobody "compells" them.

This does not negate OP's statement, "The fact that we can see and examine the
source [of the Objective-C compiler] is because of the GNU GPL." We have very
well-documented and undisputed evidence that NeXT wanted to make the
Objective-C compiler proprietary, and that they only backed down after the FSF
lawyers determined that that would be a violation of the license.

As far as Apple's open source contributions, according to Saurik, they often
fall short even when legally compelled, let alone their voluntary
contributions:
[https://news.ycombinator.com/item?id=2083877](https://news.ycombinator.com/item?id=2083877)

------
sanxiyn
It seems to me that many developers are against GPL projects because "I want
to use this software at work, but I can't because it's GPL". This always
seemed ironic to me because I think it is the workplace that should be blamed,
not GPL projects.

~~~
rinon
While I sometimes wish it were not the case, most companies do not exist to
improve the world... The purpose of most companies is to make profits, not to
advance free software. Making software freer can often cost companies profits,
hence, this is sub-optimal. As such, one can hardly blame the workplace for
the restriction, since it may indeed be in the company's (and, to some extent,
their employees') best interest. Perhaps no one should be blamed for the
inability to use GPLed projects: it's simply a conflict in goals.

~~~
sanxiyn
Paying employees paychecks costs companies profits, but employees love
paychecks so companies make deals. Many employees in the software industry,
and almost all of LLVM developers, love software freedom, so companies can
make deals here too.

I think the primary problem is that Apple (IMO, irrationally) refuses to make
deals with GPL projects.

~~~
sounds
The article seems to offer a hint:

    
    
      the earliest publicly discussed major GPL violation
      was by NeXT computing when Steve Jobs attempted and
      failed (thanks to RMS' GPL enforcement work) to make
      the Objective C front-end to GCC proprietary.

~~~
maxlybbert
There's a little more information about that exchange at
[http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/doc/Why-...](http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/doc/Why-
CLISP-is-under-GPL) (Stallman brought it up when enforcing the GPL on another
free software project: "They had wanted to distribute the Objective C parser
as a separate proprietary package to link with the GCC back end, but since I
didn't agree this was allowed, they made it free.").

It sounds like Stallman wasn't entirely sure the GPL would have prevented Jobs
from doing what he wanted, but was convinced by a lawyer that the FSF would
have a strong case ("It seemed to me at the time that it was [legal] ... but
since the result was very undesirable for free software, I said I would have
to ask the lawyer. What the lawyer said surprised me; he said that judges
would consider such schemes to be 'subterfuges' and would be very harsh toward
them. He said a judge would ask whether it is 'really' one program, rather
than how it is labeled.").

------
pjmlp
Swift will show the LLVM supporters the benefits of its license model.

~~~
vetinari
And that would be exactly what benefit? Proprietary front-end, running on
limited number (1) of host systems, producing code for limited number (1) of
targets?

Yes, that will show them. /s

~~~
JupiterMoon
I think you missed the sarcasm in the parent post.

~~~
vetinari
You are right.

------
anon1385
All this discussion about the GPL being the only way to protect users seems to
be ignoring the fact that the GPL is largely irrelevant in the web era. All of
us are using proprietary software that contains GPL code every single day. We
can't see the code because the GPL has no effect on networked applications.

That seems to be a much more important battle to fight, rather than trying to
stop people using GCC for code completion and refactoring in emacs.

~~~
viraptor
Isn't that exactly what AGPL is trying to stop?

~~~
justincormack
None of those web companies will use agpl software.

~~~
dengnan
Well. Lots of them use mongodb though.

~~~
anon1385
mongodb has a licence exception to allow people to use it without releasing
the code for the rest of their app:
[https://news.ycombinator.com/item?id=8966182](https://news.ycombinator.com/item?id=8966182)

------
baybal
Does anybody remember Laforce Stevens anti-GPL spam circa 2007? Were they
contracted by Apple at that time?

