On 9/19/24 4:37 PM, Jakub Jelinek wrote:
On Thu, Sep 19, 2024 at 10:21:15AM -0400, Jason Merrill wrote:
On 9/19/24 7:57 AM, Richard Biener wrote:
On Wed, Sep 18, 2024 at 6:22 PM Jason Merrill <ja...@redhat.com> wrote:

Tested x86_64-pc-linux-gnu with 5.5.0 bootstrap compiler.  Thoughts?

I'm fine with this in general - do we have needs of bumping the requirement for
GCC 15 though?  IMO we should bump once we are requiring actual C++14
in some place.

Jakub's dwarf2asm patch yesterday uses C++14 if available, and I remember

And libcpp too.

seeing a couple of other patches that would have been simpler with C++14
available.

It was just a few lines and if I removed the now never true
HAVE_DESIGNATED_INITIALIZERS cases, it wouldn't even add any new lines, just
change some to others.  Both of those patches were just minor optimizations,
it is fine if they don't happen during stage1.

We also have some spots with
#if __cpp_inline_variables < 201606L
#else
#endif
conditionals but that doesn't mean we need to bump to C++17.

Sure, bumping the required C++ version means we can remove the corresponding
conditionals, and more importantly stop worrying about working around GCC
4.8.x/4.9 bugs (I think that is actually more important).
The price is stopping to use some of the cfarm machines for testing or
using IBM Advanced Toolchain or hand-built GCC 14 there as the system
compiler there.

Looks like the affected cfarm machines would be the PPC CentOS 7 boxes: cfarm110, 112, and 135, which are still on gcc 4.8.5. Currently /opt/cfarm/gcc-latest is a dead symlink on all three. I've now installed 9.5 on cfarm110 and am building 11.5 on cfarm135.

At some point we certainly want to do that, the question is if the benefits
right now overweight the pain.

Absolutely, the question is what pain there is at this point.

As of the version requirement as you say only some minor versions of the GCC 5
series are OK I would suggest to say we recommend using GCC 6 or later
but GCC 5.5 should also work?

Aren't we already specifying a minor revision with 4.8.3 for C++11?

Another possibility would be to just say GCC 5, and adjust that upward if we
run into problems.

I think for the oldest supported version we need some CFarm machines around
with that compiler so that all people can actually test issues with it.
Dunno which distros shipped GCC 5 in long term support versions if any and
at which minor those are.

Dongsheng Song just pointed out that Ubuntu 16.04 LTS is on GCC 5.4, though the cfarm doesn't have such a system. After the

But I don't think it's necessary to have the oldest supported version be a system compiler, IMO it should be fine to use a custom-built compiler in /opt/cfarm for testing. I started installing 5.* on cfarm187, but now I see it has no system gnat. I started over on cfarm186, which has system gnat, but Ada 5.5 bootstrap fails.

On 9/20/24 8:27 AM, Richard Biener wrote:
So I'm fine with raising the requirement now and documenting the oldest working
release;  we'd just have to double-check that really does it - for example when
we document 5.4 works that might suggest people should go and download & build
5.4 while of course they should instead go and download the newest release that
had the same build requirement as 5.4 had - that's why I suggested to document
a _recommended_ version plus the oldest version that's known to work if readily
available.

As Iain was suggesting, 9.5 seems like a good universal transition between very old compilers and trunk, as it's the minimum requirement to build current D, and also the last version that just requires some version of GNAT to build Ada rather than a minimum version (currently 5.1). 9 was also the version in which we declared C++17 support stable (though it was feature-complete in 7).

Alternatively, systems (that care about Ada and D) running 4.7 could build 10.5, systems running 4.8 could build 11.5.

Jason

Reply via email to