No, that's not the plugin exception...
No, that's not the plugin exception...
Posted Aug 6, 2009 5:57 UTC (Thu) by lysse (guest, #3190)In reply to: No, that's not the plugin exception... by cas
Parent article: A new GCC runtime library license snag?
Aside from finding the idea of a C compiler requiring a runtime library slightly strange, presumably git doesn't particularly care which runtime code it makes use of? In which case, surely the appropriate thing for git to do is incorporate a copy of the last GPL2+-licensed version of libgcc into their own codebase, optionally customise it to suit, and simply compile with whatever option says "no default runtime, please" in future?
Or am I missing something here...?
Posted Aug 6, 2009 8:08 UTC (Thu)
by johill (subscriber, #25196)
[Link]
Yes. It's not feasible to maintain thousands of packages that way, and makes no sense technically either -- improvements of the runtime lib would never make it into that program, etc.
Posted Aug 7, 2009 23:17 UTC (Fri)
by nix (subscriber, #2304)
[Link]
The compiler generates the calls into this library as it sees fit, and
No, that's not the plugin exception...
No, that's not the plugin exception...
calls (e.g. long long maths on 32-bit systems); there is the startup code
(on Linux a complex dance of cooperation between GCC and glibc); and there
are things like binary decimal support, which has a sizeable runtime
library. There are even more nasty things like C++ exception handling,
which if it is to work across shared library boundaries needs shared data
structures and shared code to touch those data structures. (You might
think this is irrelevant to C, but C++ code can throw across C function
calls with GCC, as long as the C translation units were compiled
with -fexceptions: the relevant parts of the unwinding machinery are thus
in the C runtime library, not in the C++ one.)
links the library to the object files it generates. It's completely
compiler-dependent and often compiler-version-dependent too (although for
obvious reasons backward compatibility is very strictly maintained).