Hacker News new | past | comments | ask | show | jobs | submit login

It's not, if it's contained to just the linker itself (which it is now), that's not why I stopped using it. I did so because it seems like they don't understand that much about AGPL and licensing in general and could change their license terms at any point to say something like "we claim AGPL propagates to the linker's output" which is very legally tenuous itself to claim so.



Tenuous or not, I believe GCC explicitly has a licensing exception that states that compiler output is not considered a derivative work of the compiler, and thus must also be licensed under the GPL. So the GNU/FSF folks at least thought it was a concerning enough legal idea to explicitly account for it.

Not sure we can say that a linker is the same as a compiler in this sense, but if so, maybe it is indeed worrisome.


It does not look like binutils (including ld.gold) has that exception[0], so I don't think the FSF would agree.

[0] https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=READ...


If I recall correctly it is the standard libraries(such as libstdc++) that need this exception and not the compiler itself.


That exception exists because compilers have a tendency to leave little bits of itself in code that they compile. For example, if you're compiling to a target that doesn't have a division instruction, you're going to be using a compiler-provided division routine that gets combined in with the source code. And that routine is a clear part of the compiler's source code.

The standard compiler license exception (this applies to LLVM to, e.g.) says that any such code that gets combined in with your application code doesn't count. Note that it's still a potential license violation to use that code elsewhere (say, using those routines in another compiler).

This isn't a concern for linkers because linkers don't really provide anything in the way of code, everything being provided by the compiler as a compiler or language support library. The largest code it might add to your program is probably the PLT stub code, at best a couple of instructions long.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: