[Buildroot] [for-next 3/3] package/gcc: remove gcc 4.9

Peter Korsgaard peter at korsgaard.com
Wed Jun 14 07:03:33 UTC 2017


>>>>> "Arnout" == Arnout Vandecappelle <arnout at mind.be> writes:

Hi,

 >> >  GCC 4.9 (or rather, GCC 5) is a bit a special case: libstdc++ had heavy
 >> > ABI-incompatible changes. E.g. at the time Debian switched to it, it was the
 >> > only time I had major breakage in sid. So, the switch from gcc 4.9 to gcc 5
 >> > means that any binary-only C++ program will no longer be usable.
 >> 
 >> That probably is a bigger issue for a binary distribution like Debian
 >> than for Buildroot though.

 >  That's where real life comes into play... I've had quite a few customers
 > (admittedly most using something else than Buildroot) that needed to incorporate
 > some binary that comes from a supplier. Things like the calibration tool for a
 > touch screen, or a proprietary video codec. This stuff is universally crap, but
 > still less effort to use than to redevelop from scratch.

 >  TBH I've never had toolchain issues with these binaries, but I don't think any
 > of them were written in C++. So maybe this is not a real issue.

Indeed. The cases I have seen have normally been C code.


 >> True. It also breaks older u-boot and Linux kernel versions that didn't
 >> handle > gcc4.x.

 >  Fortunately you need to pull just one or two patches for these.

Indeed. Sometimes things are less trivial though - E.G. an issue I've
run into in the past was that 2.6.x kernels build but doesn't work on
ARMv6+ with gcc >= 4.6 unless you backport 8428e84d42179 (ARM: 7150/1:
Allow kernel unaligned accesses on ARMv6+ processors).


 >> But we also don't keep old libc versions around. Would they be Ok with
 >> moving to a new libc version but not to newer gcc version?

 >  Because libc is generally ABI-compatible with earlier
 > versions. There used to be issues with glibc (and I have no idea
 > about uClibc), but I think it's been at least 10 years since glibc
 > had ABI breakage. So the only thing to be afraid of is
 > regressions. But if you're afraid of that, then you shouldn't update
 > anything at all...

Indeed, or have proper testing in place to catch those regressions.




 >> >  Bottom line: I'd tend to keep gcc 4.9 around for a while. If
 >> > breakage occurs we can disallow it for some architectures. There
 >> > shouldn't be much more maintenance effort than that, I think.
 >> 
 >> I can follow you, and it is OK for me to keep 4.9 around for a little
 >> while longer. We always have this tradeoff between stability and adding
 >> new features / cleanups, and I do think people should be moving to the
 >> LTS version (and plan in time for a yearly migration to the new LTS) if
 >> they want stability and fixes for a longer period, just like they
 >> (hopefully) do for their Linux kernel.
 >> 
 >> We should imho drop 4.9 before the next LTS though.

 >  Yeah, that's another reason: if we remove 4.9 from master, than we
 > will not get any fixes for it that could be applied to the LTS
 > branch. But, well, I don't think we're testing with 4.9 at all in the
 > autobuilders so the point is kind of moot.

I haven't noticed any 4.9 fixes at least. If you are using such old
toolchain on a regular basis and find issues then please send them ;)

And no, I don't think the autobuilders are testing our internal 4.9
toolchain. 

-- 
Bye, Peter Korsgaard



More information about the buildroot mailing list