RFR: 8151841: Build needs additional flags to compile with GCC 6
Erik Joelsson
erik.joelsson at oracle.com
Fri Mar 18 08:26:56 UTC 2016
Looks good to me.
/Erik
On 2016-03-18 05:42, Andrew Hughes wrote:
>
> ----- Original Message -----
>> On 2016-03-16 05:25, Andrew Hughes wrote:
>>> ----- Original Message -----
>>>> Hello,
>>>>
>>>> As representative for the build-infra group creating the new Hotspot
>>>> build, I appreciate that the changes are made in configure. That will at
>>>> least automatically force me to merge them correctly when they hit the
>>>> build-infra forest and will make the merge easier. The idea is to start
>>>> getting the new Hotspot build in soon after Jigsaw M3 is integrated. If
>>>> the GCC 6 changes get in soon enough in jdk9/dev I will be able to merge
>>>> and convert in time.
>>>>
>>> When is M3 due to happen? I couldn't see anything regarding the milestones
>>> on http://openjdk.java.net/projects/jdk9/. Hopefully we can get this change
>>> in this week.
>> See http://mail.openjdk.java.net/pipermail/jdk9-dev/2016-March/003877.html
>>
> Ah ok, I think I did see this mail.
>
>> If you get in this week, it should be fine.
>>>> I like the refactoring of the FLAGS_COMPILER_CHECK_ARGUMENTS. Disabling
>>>> optimizations that have obviously worked fine for a long time doesn't
>>>> seem like a good idea though. I would prefer putting a conditional on
>>>> the GCC version in those cases, but still keep the proposed flag check
>>>> as well. There should be a toolchain version variable to compare
>>>> against.
>>> I agree that will lower the potential impact of this change. I've
>>> added:
>>>
>>> + TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: 6, IF_AT_LEAST:
>>> FLAGS_SETUP_GCC6_COMPILER_FLAGS)
>>>
>>> and moved the -fno-lifetime-dse and -fno-delete-null-pointer-checks
>>> into this new macro, FLAGS_SETUP_GCC6_COMPILER_FLAGS. I'll post the
>>> revised version once I've done more testing with GCC 6. With GCC 5.3,
>>> I can confirm the tests and additions are gone with this change.
>> Nice, I haven't kept up to date with the recent improvements Magnus made
>> to configure here. That macro made the change very simple.
> Yes, I was glad to find this. It will mean that chunks of these
> earlier changesets will also need to be backported for 8u though.
>
>> /Erik
> Here's the revised webrev:
>
> http://cr.openjdk.java.net/~andrew/8151841/webrev.02/
>
> Changes:
>
> 1. GCC 6 check added as mentioned earlier. The two optimisation flags
> are now handled in a GCC 6 macro, FLAGS_SETUP_GCC6_COMPILER_FLAGS.
> 2. Copyright updated in hotspot-spec.gmk.in
> 3. Line break added in hotspot-spec.gmk.in
> 4. Typos fixed in toolchain.m4
> 5. Version number regular expression updated in toolchain.m4. The
> previous version expected the version number to always be followed
> by a space i.e. "x.y.z " which is not true for some pre-release
> versions (e.g. Gentoo's GCC 6 reports 6.0.0-alpha20160306) so instead
> it now matches the first character that is not a number or a '.'.
> It works as before with released versions.
>
> This should fix all concerns raised so far. Tested on both
> GCC 5.3.0 and 6.0.0 successfully.
>
> Incidentally, it may be worth sanity-checking COMPILER_VERSION_NUMBER
> as, when it was mis-parsed, configure still carried on, with it set
> to the entire first line of the version output, thus causing the later
> version tests to return incorrect results.
>
> Thanks,
More information about the build-dev
mailing list