3 ms·
> So if i compile something with gcc it is a derived work from gcc Yes. This is why the "libgcc exception" (https://www.gnu.org/licenses/gcc-exception-3.1.en.h
by cesarb 6y ago
> So if i compile something with gcc it is a derived work from gcc
Yes. This is why the "libgcc exception" (https://www.gnu.org/licenses/gcc-exception-3.1.en.html https://www.gnu.org/licenses/gcc-exception-3.1.en.html) exists. The issue is that parts of runtime libraries which come with gcc are statically linked into the compiled executable; without that exception, the result would have to be under the GPL.
The same issue happens with Linux kernel modules. Many functions they need are only defined as macros or inline functions in the headers (since ZFS is a filesystem, just take a look at how many inline functions there are in include/linux/fs.h). And even outside of these, many functions are so closely coupled to the internal data structures of the kernel (and the data structures themselves are also exposed to modules) that any module using them could be considered a derived work of the kernel.
- trasz 6y agoAre data structures copyrightable? The headers are not, and macros can be easily avoided. And in any case, there's an easy way to prove something does not constitute a derived work: just show that it can work outside of the codebase it's allegedly a derived work of. The reason NVidia is safe is that they provide the same driver for FreeBSD.
- toast0 6y agoCan you use a module compiled for Linux anywhere but a Linux host? The ZFS source code probably isn't a derived work, but the compiled module might be.
- vsl 6y agoCriteria for whether a work is copyrighted are a bit more nuanced and the word “header” doesn’t figure in it. A work needs to be original and have creativity element in it. Code in header files can - and very often does - meet that requirement. Some kind of code (whether in headers or elsewhere) can be unoriginal, but that really has nothing to do with “headers”. The parent actually explained it pretty well.