This BSD DLL depends on 3 MinGW run-time libraries (libgcc_s_sjlj-1.dll
, libgfortran-3.dll
and libquadmath-0.dll
). What if I'll compile them statically into BSD dll to eliminate dependences on MinGW libraries? Is this an Eligible Compilation Process in terms of the GCC Runtime Library Exception to GPLv3?
1 Answer
As I understand it, no, it's not. The clue is in the name: it's a runtime library exception (RTLE) not a compile-time exception. If you statically link your binary with GPLv3-plus-RTLE-covered libraries, not only will you be distributing GPLv3-covered code (the library's object files), but you will also have created a work which in many people's eyes is a derivative work of those libraries, by virtue of the static linking.
The language of the RTLE that makes it clear that it only covers dynamic linking is in s0. s1 having clarified that your code is referred to as the "Independent Module":
You have permission to propagate a work of Target Code formed by combining the Runtime Library with Independent Modules
s0 notes that
A file is an "Independent Module" if it either requires the Runtime Library for execution after a Compilation Process, or makes use of an interface provided by the Runtime Library, but is not otherwise based on the Runtime Library
You do not satisfy the first requirement (requires the library for execution after compilation) because you required the library at compile time, well before execution. Nor do you satisfy the second requirement (makes use of an interface but is otherwise not based on the library) because your work is in copyright terms a derivative of the library and is thus very much based on it. You would thus not qualify for the RTLE.
I stipulate that the question of whether static linking creates a derivative work for the purposes of copyright is a generally-unsettled one, but the FSF are clear that all kinds of linking create derivatives, and since they are also the authors of the RTLE, their exception must be read in the context of their definitions.
-
Thanks for an answer. Can you please clarify, is it possible to use BSD DLL built as a separate library (without static linking of above MinGW dll files) and distribute it as a commercial product?– AndriiAug 8, 2020 at 9:10
-
This question is about statically linking libraries and GPL RTLE - the one you now ask is a competely different question! So I think we'd be happy to answer your new question, but you need to deal with this question first, then ask a new one.– MadHatter ♦Aug 8, 2020 at 9:15