RFR: 8224087: Compile C code for at least C99 Standard compliance
Erik Joelsson
erik.joelsson at oracle.com
Mon May 20 16:15:49 UTC 2019
The updated webrev from Volker looks good to me.
Thank you David for fixing this!
/Erik
On 2019-05-20 07:05, Volker Simonis wrote:
> Hi David,
>
> thanks for considering AIX in your change.
>
> With OpenJDK 13 we've moved to XLC 16 which has a new Clang based
> frontend. The "ucs" feature-suboption [1] you're using in your change
> is only supported in the old, xlc compiler but not in the new xlclang
> any more [2]. However, the good news is that the new xlclang now
> supports the same "-std=gn99" option like gcc and clang, so you could
> easily handle the xlc case now together with gcc and clang as shown in
> this webrev:
>
> http://cr.openjdk.java.net/~simonis/webrevs/2019/8224087/
>
> Otherwise, your change looks good!
>
> Please let me know once you've pushed it. I opened "8224214: [AIX]
> Remove support for legacy xlc compiler" [3] for further cleannups
> because we still set some "-qlanglvl" options for C++ which aren't
> supported by the new compiler either.
>
> Best regards,
> Volker
>
> [1] https://www.ibm.com/support/knowledgecenter/SSGH3R_12.1.0/com.ibm.xlcpp121.aix.doc/compiler_ref/opt_langlvl.html
> [2] https://www.ibm.com/support/knowledgecenter/SSGH3R_16.1.0/com.ibm.xlcpp161.aix.doc/compiler_ref/opt_langlvl_aix.html
>
>
> On Mon, May 20, 2019 at 9:40 AM David Holmes <david.holmes at oracle.com> wrote:
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8224087
>> webrev: http://cr.openjdk.java.net/~dholmes/8224087/webrev/
>>
>> The need to remove a for-loop declaration expression to appease gcc 4.8
>> annoyed me enough to investigate setting C99 as our minimum allow
>> C-language level when compiling. It turned out to be a lot more complex
>> a situation than I thought due to toolchain quirks. See lots of details
>> in the bug report.
>>
>> To summarise the changes:
>> - gcc: force to -std=gnu99
>> - clang force to -std=gnu99
>> - Solaris studio - no effective change
>> - Visual Studio - no change
>> - xlc - no effective change (but we use the explicit flag rather than
>> accepting it as default)
>>
>> I've checked how this works with all the toolchains except xlc as I have
>> no access to that. Some assistance from someone who can verify the
>> correctness on xlc would be appreciated.
>>
>> Thanks,
>> David
More information about the build-dev
mailing list