Request of clarifications on GPL license

David Brown david@westcontrol.com
Tue May 10 13:36:00 GMT 2011


On 10/05/2011 14:46, Marco Maccalli wrote:
> Dear Sirs,
>
> a client of ours is interested in using GCC in order to compile a
> proprietary application that they are currently developing. We would
> like to have a better understanding of the implication on the
> proprietary nature of our client's application related to the use of GCC
> and its associated libraries. We understand that GCC uses libraries
> available under GPL license (and not LGPL) and we would like to
> understand whether there is a risk that these GCC libraries may bring
> our client's application also under open source rules.
>
> We would be grateful if you could help us in clarifying the above and/or
> provide any guidance on how to be able to keep our client's application
> proprietary and "closed source".
>

Disclaimer - IANAL...

gcc uses various gpl'ed libraries as part of the compilation process - 
but these are used by the compiler, and are not included in the user's 
output.  Thus the gpl license on the compiler itself, and the libraries 
used by the compiler on the development machine, do not impose any 
requirements on the code compiled /using/ gcc.  (This is exactly the 
same as with commercial compilers - you are restricted in how you copy 
the compiler and tools, but not in how you use your own code.)

License are relevant for library code that ends up in the generated 
object code.  There are at least three different types of library to 
consider.  Once is libraries that are tightly integrated into gcc - this 
includes things like support functions for mathematics operations. 
These are under the GPL with a special exception to say that when they 
are used with gcc to generate compiled code, then they may be freely 
used and linked without placing any restrictions on your source code.

Then there is the basic "C" library.  This /may/ have some restrictions, 
depending on the library used.  glibc, as used on Linux systems, has no 
restrictions.  But other libraries for embedded systems may have 
requirements.  Typically these do not require the user to "open" or 
publish his source code in any way, but they may require a copyright 
notice in the users documentation.

Finally, there are other libraries - including those that typically come 
with the system, or that are provided by third parties.  They can have 
any license the author deems fit.  It may be GPL (a prime example is the 
readln libraries), leading to the requirement that the entire user 
source code is released under the GPL (if it is distributed).  Often 
such libraries are LGPL - you are then free to use them as long as you 
link dynamically to the libraries.  You cannot link statically to a LGPL 
library unless your source code (or linkable object code) is released. 
There may also be other requirements, such as copyright notices. 
Basically, you need to check the license of each such library.

Hope that helps.



More information about the Gcc-help mailing list