Geir Magnusson Jr. wrote:
In the past, we've talked about what versions of GCC we will consider as
our "supported" toolchain. We noted that it's useful to keep using
other versions, such as 3.x, to make sure we're not inadvertently hiding
bugs through compiler bugs.
I'd like to tighten up this degree of freedom a little.
What's the harm if we declare 4.x as our default compiler version? What
potential platforms do we lose, or who do we inconvenience because
requiring stdc++.so.6?
AFAIK there are no Linux distributions which have versions that don't
have gcc 4.x included, it is the default compiler in all last distros
versions. So all last (and maybe some before last) versions of Linux
distros should have no problems with libstdc++.so.6.
This is a question of how old software (and hardware) we're going to
support. Probably interested parties could backport the code to the old
systems which is not only old Linux distros but also platforms like old
Windows versions.
For the officially built binaries which are supposed to be certified I
think gcc 4.x is the right choice because soon it may happen that some
platforms won't include even compatibility packages of libstdc++.so.5.
For the unofficial distribution builds which insist on using 3.x (if
they exist at all) they may send us patches to enable building on 3.x if
they encounter problems.
I ran into this playing with Harmony on OLPC, and a developer expressed
a little surprise that we were still using 3.x. I don't follow the gcc
ecosystem at all, so I don't know what issues there are w/ 4.x, and why
we wouldn't move forward to it as a general (not strict) policy.
I am surprised too. I tried to push moving to gcc 4.x because I use it
on all systems and we've had cases when code which compiles on 3.x
failed to compiled on 4.x because of more strict syntax checks.
--
Gregory