This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: LPGL (was "GCC2 merging")



> Sounds reasonable.  What do people think of this for C++?  I'd like to have
> one phrasing for both headers and .cc files.
> 
>   As a special exception, if other files use inline functions or
>   instantiate templates from this file, or you compile this file and link
>   it with other files to produce an executable, this file does not by
>   itself cause the resulting executable to be covered by the GNU General
>   Public License.  This exception does not however invalidate any other
>   reasons why the executable file might be covered by the GNU General
>   Public License.

I suggest 

"As a special exception, if other files use macros or inline functions, or
instantiate templates from this file ..."

to cover C and C-like headers as well.  But only for headers, or for
template .cc files that are generally included.

However, it may be wise to have different language for headers than for
.cc files.  The .cc files would start with

"As a special exception, if you compile this file and link
it with other files to produce an executable ..."

to make clear that the intent is for the .cc files to be used as a
library, rather than ripped up and turned into inline functions which
could then be used arbitrarily in proprietary code.

Maybe the way to think of this, from the GNU perspective, is to remember
that we want to cooperate with the non-copyleft freeware people (the BSD
folks, XFree86, Wine, etc).  They will need to use the compiler and
standard libraries and still be able to use the licenses they prefer,
and this should be acceptable to free software advocates.

However, they would be using the library as a library, not taking it apart
in re-arranging it, so they don't need permission to inline code from
the .cc files.

On the other hand, one possible concern is that with multiple variants
of special exceptions, it seems that we need permission of the copyright
owner (in this case, official FSF approval, however this is to be handled)
if any code is to be moved from a .cc file to an .h file.
So maybe it's better just to use the same one everywhere, if people don't
think a real risk is created.





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]