5 ms·
As I understand it, difference is more political than technical. GCC is made to prevent people plug in nonfree parts into compiler. So you cannot plug in your d
by oselhn 9y ago
As I understand it, difference is more political than technical. GCC is made to prevent people plug in nonfree parts into compiler. So you cannot plug in your dynamic library or use part of GCC as library which is artificial restriction. See this https://gcc.gnu.org/ml/gcc/2014-01/msg00247.html https://gcc.gnu.org/ml/gcc/2014-01/msg00247.html, https://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Clang-Defending-C-from-Murphy-s-Million-Monkeys https://channel9.msdn.com/Events/GoingNative/GoingNative-201...
- deleted 9y ago[deleted]
- MaxBarraclough 9y agoIf you really wanted to, I imagine you could write a proprietary compiler that generated some serialisation of one of GCC's IRs (GENERIC or GIMPLE), and you could write a deserialiser for GCC that reads in that IR. Release the deserialiser under GPL, then you can legally use GCC as the backend for your proprietary compiler. This sort of IPC-like hackery often seems to happen when someone is looking to work around copyleft - they can then break the spirit of the GPL without breaking the legal obligations.
- pertymcpert 9y agoYou would still need to use gcc code to operate on the deserialized IR, which is GPL. Unless you then transform the IR into a proprietary one, in which case that's not breaking the spirit of the GPL.
- MaxBarraclough 9y ago> You would still need to use gcc code to operate on the deserialized IR, which is GPL The GPL's terms would not extend to the program that generated the IR. A GPL web server can't require a web browser to relicense under GPL, either. Same idea.
- sjwright 9y agoBy your logic, every single bit of code that has passed through gcc is now GPL licensed.
- favorited 9y agoThat's not too far from how the the first LLVM frontend worked, IIUC. llvm-gcc was a GCC fork (pre-Clang) that produced LLVM bitcode or IR. That IR would be fed into an LLVM backend for code generation.
- gumby 9y agoNot just political, gcc’s IR was designed in the early 1980s and “just growed.” It’s not easy to understand.