GCC 4.1 seems to have an overflow bug. 4.2 has a bug where code just gets skipped. 4.3 is not yet out. This seems to be a problem with no answer yet.
Update: commenters have pointed out GPL v3, which comes with GCC 4.3, should not cause problems, contrary to the offhand mention in Stanislav Sedov’s post, linked above.
LLVM.
Why do you say GPL3 is not compatible with BSD? Of course, any “hybrid” code will be GPL3 not BSD. But the licence does not apply to the compiler output, only to the compiler code itself. It is no different from GPL2.
My understanding is that the new variety of clauses in the GPL version 3 may or may not affect use by a BSD-licensed project, and by “may or may not” I mean “a lawyer is needed to figure this out for sure”.
If you can point me at something that definitively shows that version 3 works like version 2 (in terms of inclusion in BSD-licensed projects), I’d be very grateful.
“Mere aggregation” is what happens when you include gcc in a BSD system; gcc stays GPL, this does not affect the licensing of the rest of the system. gcc-compiled binaries are not subject to the licence of gcc. This is as true for GPL3 as for GPL2. The GPL3 is here. Section 5 covers aggregation. As for compiler output, “The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work” (section 2): in other words, if the content is not GPL, the output is not covered by the GPL either.
I’d be interested to know what specific clause of GPL3 you object to. I don’t see any discussion of this on the email links you sent or on the DragonFly lists.
I don’t have a specific objection; I recall seeing people worried about the license change, and Stanislav Sedov’s post alludes to issues.
I’m trying to tread carefully here, because I am not a lawyer, and this is something of a hot button issue for some people. If a GPL v3-licensed GCC is truly a ‘drop-in’ replacement as far as licensing is concerned: yay!
I’m not a lawyer either, but anything to distract myself from assisting with an appellate brief…
It’s not really much different from distributing GPL2 code, but v3 does have a couple provisions that might require more vigilance (important), or might be ‘politically’ bothersome to some people.
re ‘vigilance:’
Section 7, “Additional Terms,” carves out some specific ways people can play with the license, including product namespace protections (7(c) and (e), “the Iceweasel clauses”), ‘reverse advertising clauses’ in 7(d), and the potential for extra notices and disclaimers and such.
None of that’s in there by default, it’s unlikely gcc will do anything particularly weird, and the way gcc gets packaged into DF or any other BSD means any extra notice files should just come with… but if they did pull the lever on 7(c) any patched version might have to be renamed to, er… cc?
…
The potentially exciting stuff for downstream users is in “3. Protecting Users’ Legal Rights From Anti-Circumvention Law” and “11. Patents.”
The anti-circumvention stuff is fairly esoteric in the context of gcc. I can think of two scenarios where it might apply:
1. Patching GCC to produce signed binaries for a system that uses DRM. Under GPL2 you might be able to keep that internal and ‘protect’ yourself with the DMCA if it leaked; GPL3 asks you to waive your right to rely on laws like the DMCA in that scenario. This is probably not a concern for DragonFly unless it starts supporting signed binaries, becomes the default OS for the Playstation and Matt cares about pleasing Sony.
2. Creating a derived system with a security model that looks like “rights-management” (especially if it’s a commercial system … this might just be the ‘signed binaries’ case again) that manages to interfere with the ability to build a modified gcc. GPLv3 asks you to “. . . disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work’s users, your or third parties’ legal rights to forbid circumvention of technological measures,” so that would be against the spirit of the license… but since it only asks you to disclaim intent, not actually cease doing or distributing anything, it’s just a good way to start an argument.
The patent stuff is pretty obvious and we all know it’s there: Don’t patch using patents that you didn’t want to grant downstream rights to. Maybe a problem for the mythical commercial user, only a problem if we really care about that user being able to distribute and then sue over his patents.
@Anonymous
LLVM, while remaining a great project is currently unable to bootstrap, and requires a frontend, thus we would still dependent on GCC.