This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GPL and loading/saving RTL (was: Beginner's question:Are there any inter-procedural optimizationin GCC backend ?)
- From: Joe Buck <jbuck at synopsys dot com>
- To: Benjamin Geer <benjamin dot geer at misys dot com>
- Cc: Jim Wilson <wilson at specifixinc dot com>, gcc at gcc dot gnu dot org
- Date: Fri, 7 Nov 2003 10:05:17 -0800
- Subject: Re: GPL and loading/saving RTL (was: Beginner's question:Are there any inter-procedural optimizationin GCC backend ?)
- References: <3FABB315.7070102@misys.com>
On Fri, Nov 07, 2003 at 02:58:29PM +0000, Benjamin Geer wrote:
> Jim Wilson wrote:
> > There are political problems that have obstructed our
> > implementation of inter procedural optimizations, as
> > FSF policy forbids us from having a way to store/load RTL
> > to/from files. This policy exists to prevent people from
> > subverting the GPL, but as side effect is that it prevents
> > us from having inter procedural optimizations, except within
> > files.
>
> Forbidding the development of certain features seems like an odd way to
> protect software freedom. Could someone explain the rationale for this
> policy? How would the ability to load and save RTL enable someone to
> subvert the GPL? In any case, what's to stop someone from forking GCC
> and adding this feature themselves?
The FSF does not forbid the development of certain features, it simply has
decided not to accept such features in its version of GCC. The SC has
(reluctantly) agreed to go along with this, because we need good relations
with the FSF (they own the copyright on the code, after all). There is
nothing to stop someone from forking the compiler and doing work that the
FSF does not approve of; of course the FSF will criticize people who do
this but that is their free speech right.
> If the GPL doesn't adequately protect the freedom of GCC, doesn't this
> mean that the GPL itself needs improvement, or perhaps that it should
> have an additional clause when used as the licence of GCC?
RMS likes to point to the existence of GNU C++ and GNU Objective-C. Both
were developed by people whose employers initially sought ways of making
them proprietary. Had there been a method to dump and read trees or RTL
from files, Mike Tiemann's initial g++, and NeXT's original Objective-C
compiler, might have been proprietary software. Certainly their lawyers
tried to figure out ways of doing this (at one time NeXT was going to use
a script that downloaded the FSF gcc, patched it, and built it for the
user), but gave up and ended up assigning the code to the FSF. So, RMS
would argue that keeping GCC non-modular has served users by leveraging
more free software.
However, it's clear to me that the FSF is going to have to open up. If
we can't get more information into and out of the compiler, we are limited
in our ability to do interprocedural optimization, and it's difficult to
write integrated development environments that understand code structure.
Instead of repeatedly having this argument here, I would prefer for people
who want to build tools that need introspection capability, or
optimizations that need to cross compilation unit boundaries, to contact
RMS directly and have a discussion of how they can do what they need to do
while addressing RMS's concerns. RMS has agreed to information export
where it is required by language standards (e.g. Ada), and implementation
of C++ "export" for templates will probably require this as well.