This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: LGPL vs GPL
Hi Shail,
Keep in mind that I'm not a lawyer, and that my understanding may be just plain wrong. Legalese is as obtuse to me as the U.S. tax code.
>1. How do I tell what GNU libraries my program is linking with (static and dynamic)?
"ldd" will tell you about all the DSO's the executable requires. Some of which will likely be OS API DSO's (e.g., libc.so, libm.so), and others will be GCC DSO's (e.g., libstdc++.so, libgcc_eh.so).
It will not tell you about:
+ SSO's the executable may require
+ archive libraries (or portions thereof) that are linked in
+ object modules (such as crt.o) that are linked in
The "-Wl,-M" linker option to generate a map may be helpful to better determine exactly what's going into your executable.
>2. How do I tell whether these libraries/header files are under GPL or under LGPL?
There are a few components that are GPL in GCC. I have a list of which ones back at my desk... I'll have to send you a follow-up.
Normally, I just delete them from GCC, just for my peace of mind. They're not needed by most people.
>Does that change from gcc version to version (e.g. from 2.95 to 3.2)?
It could.
>Is there such a list?
I do not know of a list or manifest with GCC that designates which items are GPL or LGPL or other.
My aforementioned GPL list was gleened after my investigation, which may-or-may-not be 100% accurate.
>If I understand right, with static libraries I would have to distribute either source or object code of my work to allow relinking with a newer version of "the library"...
Not entirely correct. True, at YOUR option you can comply with 6a. But at YOUR discretion, you could INSTEAD comply with 6b, or 6c, or 6d, or 6e.
>But what happens if I want to distribute the dynamic libraries along with my work in order to avoid incompatibilities?
I believe you need to comply with 6a, 6b, 6c, 6d, or 6e.
You obligations are a little more burdensome if you have also modified the LGPL components.
>4. I suppose the intent of "bringing the linked executable under LGPL" is relevant only if my work is to be used as a library as well.
No, it seems to me that it is relevant.
>5. Finally, I am totally at a loss in understanding the exception of section 6 para 1.
It says "may", which means it's your prerogative.
HTH,
--Eljay