STeve Andre' [and...@msu.edu] wrote:
> On 07/07/11 15:12, Amit Kulkarni wrote:
> >>The developers don't adopt new things just because they're new.
> >>If something isn't reasonable, useful and secure it isn't used.  This
> >>is one reason why each new release of OpenBSD doesn't have the
> >>currently released version of gcc, for example.
> >Wrong. It is because of GPL v3. Gcc in base won't be updated AFAIK.
> No, this has always been the case.  I remember back around 2.5 or
> so, seeing that OpenBSD hadn't upgraded to the latest gcc, wondering
> why.
> 
> The GPL 3 issue of today is relevant, but it extends beyond that.
> 

For GCC after 4.2.1, the license is the problem.  That is why OpenBSD has 
4.2.1+fixes instead of something newer "import of gcc-4.2.1, the last gcc 
release under GPLv2".  Same thing is happening right now with binutils 2.17.

When OpenBSD went to 2.95.3, to 3.3.5, and again to 4.2.1, the problem each 
time was the amount of effort required to make it work.  When the behavior in 
GCC changes, or when you run into new compiler bugs, it's a time-consuming 
problem that disrupt work going on in the system.

With the 4.2.1 upgrade, problems with GCC store re-ordering "optimization" 
extended into 4.8 release, affecting critical areas like bus_dmamap_sync().  Of 
course the bulk of the compiler upgrade problems were solved before 4.8.  
(Solved because people took time to track down, identify and fix those 
problems.)

It's a pain in the ass to swich compilers.  It ends up forcing people to 
troubleshoot code that isn't broken, slowing down other work until the actual 
compiler problem is identified and workaround applied.

OpenBSD historically didn't upgrade compilers until the pain of sticking with 
the existing compiler met or exceeded the pain of upgrading the compiler.

There were plenty of reasons to look at GCC 4 in base for several years now, 
but the increase in compile time (each generation of GCC is slower than the 
last) made a switch to GCC 4 less attractive.  No consensus to move to GCC 4 
was possible.

What finally pushed GCC 3.3.5 over the edge was the broken C++ compiler (also 
not ABI compatible with G++ 4, so everything that linked to a G++ 4 program had 
to also be compiled with G++ 4.  But people want their complex C++ ports to 
work)

Four or five years from now when GCC 4.2.1+fixes becomes too painful, OpenBSD 
may adopt something new, who knows, maybe llvm or pcc will support more 
architectures by then? Maybe the GPL 3 will become OK? GCC 4.2.1 is working 
pretty damn well now.

Reply via email to