3

One of the requirements of the LGPL v2.1 license is:

You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License.

Since a lot of C projects use glibc, it seems like they would need to include some attribution. In practice, I don't see this.

I guess that it is because the source code isn't specifically designed to use glibc so much as any implementation of libc.

So in source form, I believe the source code is just work that uses the Library. Once compiled and linked against glibc (even dynamically), it should become a derivative work of the Library.

However, when you build a program with gcc on virtually any major Linux distribution, it links to glibc explicitly -- I don't believe you could simply replace the .so with another libc and expect it to work.

Doesn't linking with glibc then make the resulting binary have attribution requirements for glibc? If not, why?

3
  • 1
    Most Linux C projects don't include a copy of glibc, so section 6 is irrelevant... did you read the first sentence of section 6? Section 6 is not about derivative works of the Library
    – user253751
    Feb 5 at 5:44
  • Yes, I have read the first sentence of section 6. I think it's also relevant to mention section 5: "However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables." "Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. "
    – PatrickB
    Feb 5 at 17:31
  • Does your executable contain glibc?
    – user253751
    Feb 6 at 23:52
1

Usually, you ship an executable that can dynamically-load a C runtime library, and you don't link the library into the executable. When you do that, the user may runtime-link against any C library they have available, and you have no need to reproduce the notice.

If you statically-link your binary, then you are distributing the covered work, and you must include the notice (and also ensure your program is available in unlinked form, so that users may update/replace the standard library objects within it).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.