Maybe this has been covered, but I could not find a way to search SDCC forums that did not involve searching all of sourceforge.
The problem is as I am starting to learn how to use SDCC I ran into the crt0.c file of the pic16 port and it is GPL licensed. This is a problem because any program I write for the chip that uses that file must be GPL licensed. It does not say anything in that file about being a modified version of the GPL. As I searched on the internet I found some references to a discussion of making libraries for the ports be licensed under a Modified GPL that has a runtime exception on licensing.
So, what does this mean? Well it means SDCC is wholly unusable for any project that cannot give away the code such as in a commercial product that is not open. Unless someone were to rewrite all the libraries needed for runtime execution then software developed using SDCC with GPL libraries is stuck for free/open projects.
Please, if I am wrong on this assessment please show me where to find differing information. I have only looked at code related to the pic16 port so other ports may bot have this issue. I would like to use this compiler, but the licensing is a show stopper and could explain the relative low interest for anything other than hobby use.
As I look around I did find one other post about this issue in 2002. It was not answered as far as I can tell. In the short term I will continue to use SDCC to learn the ins and outs. I will also pay close attention to what libraries (if any) I link to so as not to tie my hands. All the code I would need I can get from Microchip and tweak to work with the SDCC compiler. It looks like some of the code in the PIC port is just that. It makes me wonder how someone could derive code from Microchip and slap a GPL license on it. It completely removes the limited license by Microchip of only using that code on Microchip hardware.
The initiative to change the sdcc library license in the way that it can be used in "closed source" projects has been started long time ago. I asked the authors if they agree with the license change and which license they prefer, but only few answered. You can see results on sddc wiki pages:
http://sourceforge.net/apps/trac/sdcc/wiki/SDCC%20Library%20Licenses and http://sdcc.sourceforge.net/wiki/index.php?page=Library+License+Selection.
I think that you can consider all files, which authors agreed to release them under GPL+LE license, as it they are already released under GPL+LE.
It would be really nice if we could solve this for the next sdcc release….
Thanks for the clarification. It is good that the libraries are moving that direction as it provides choice for the users of SDCC.
It is kind of funny, but I was already thinking about releasing the code I am working on as GPL anyway, but I may consider changing it to GPL+LE to allow the end user more freedom. As I have learned LGPL doesn't cut it due to the unique situation with embedded systems needing to be statically linked. I also find it interesting how GCC did this for this situation.
Is GPL+LE sufficient to meet the need? I recall seeing a discussion here:
which made me wonder.
I starting looking through licenses, yesterday, and I'm still reading to find what seems the more sensible. Sure seems complicated. I see issues about patent retaliation clauses and a host of other things that make me feel this is all way, way too complicated for its own good.