disabled c99 in Solaris builds

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Wed Dec 12 14:11:56 UTC 2018



On 2018-12-12 14:29, Baesken, Matthias wrote:
>> I'd recommend a separate change to remove the -xc99=%none%. That's
>> trivial and can be done immediately, to the benefit of everyone. Getting
>> C++14 working is not happening quickly.
> Ok, do you prefer just removing the old setting or setting
>
> https://docs.oracle.com/cd/E37069_01/html/E37074/bjapp.html#OSSCGgnjmw
>
> –std=value  (–std=c99)
>
> ?
>
> Best regards, Matthias
Erm, I don't know. :-) No preference, really. But setting -std=c99 is 
fine, I think.

/Magnus
>
>
>
>> -----Original Message-----
>> From: Magnus Ihse Bursie <magnus.ihse.bursie at oracle.com>
>> Sent: Mittwoch, 12. Dezember 2018 14:22
>> To: Baesken, Matthias <matthias.baesken at sap.com>; David Holmes
>> <david.holmes at oracle.com>; Erik Joelsson <erik.joelsson at oracle.com>;
>> 'build-dev at openjdk.java.net' <build-dev at openjdk.java.net>; Kim Barrett
>> <kim.barrett at oracle.com>
>> Subject: Re: disabled c99 in Solaris builds
>>
>> On 2018-12-12 09:24, Baesken, Matthias wrote:
>>>> FWIW, in my in-development patch set for JEP 347
>>>> (https://bugs.openjdk.java.net/browse/JDK-8208089)
>>>>
>>>> the -xc99=%none% option has been removed and -std=c99 added (for C
>>>> code). (C++14 includes C99 by reference, so I made that change for
>>>> consistency in case there were any ABI differences.)
>>>>
>>> Hello Kim , do you have an estimation when your patch will be in  ?
>>>
>>> Or would you suggest to do a separate change and bring in into  jdk/jdk
>> (and  jdk12) already?
>> I'd recommend a separate change to remove the -xc99=%none%. That's
>> trivial and can be done immediately, to the benefit of everyone. Getting
>> C++14 working is not happening quickly.
>>
>> /Magnus
>>> Best regards, Matthias
>>>
>>>
>>>> -----Original Message-----
>>>> From: David Holmes <david.holmes at oracle.com>
>>>> Sent: Dienstag, 11. Dezember 2018 23:16
>>>> To: Erik Joelsson <erik.joelsson at oracle.com>; Baesken, Matthias
>>>> <matthias.baesken at sap.com>; 'build-dev at openjdk.java.net' <build-
>>>> dev at openjdk.java.net>
>>>> Subject: Re: disabled c99 in Solaris builds
>>>>
>>>> On 12/12/2018 3:27 am, Erik Joelsson wrote:
>>>>> Hello,
>>>>>
>>>>> I do not know why this flag was introduced, but it has been there for a
>>>>> long time. In JDK7 it's listed in jdk/make/common/Defs-solaris.gmk:
>>>>>
>>>>> #       -xc99=%none     Do NOT allow for c99 extensions to be used.
>>>>> #                       e.g. declarations must precede statements
>>>>>
>>>>> and was there since the first mercurial change.
>>>> I can reasonably imagine that this was added to prevent introducing
>>>> shared code, developed on Solaris, that would not compile on Windows.
>>>> But those days are long gone.
>>>>
>>>> I was bitten by this just this week when an enum declaration compiled
>>>> fine everywhere but Solaris!
>>>>
>>>>> I personally wouldn't mind ditching it.
>>>> +1
>>>>
>>>> David
>>>>
>>>>> /Erik
>>>>>
>>>>> On 2018-12-11 08:17, Baesken, Matthias wrote:
>>>>>> Hello , it  seems that currently the Solaris  Oracle Studio Build
>>>>>> environment is the only one  that explicitly
>>>>>> forbids C99 C code  by setting  -xc99=%none .
>>>>>> The current Linux/Mac/AIX/Windows build envs had no issues with the
>>>>>> coding.
>>>>>>
>>>>>> For example I was running into an error with the C variable
>>>>>> declaration order issue (small example below) today in my coding.
>>>>>> Is this still a wanted behavior ? What was the reason behind setting
>>>>>> -xc99=%none , and is  the reason  still valid ?
>>>>>> I remember we had issues with C99 compatibility back then when
>> VS2010
>>>>>> was used on Windows, but I think these  days we use VS2013+, is this
>>>>>> correct ?
>>>>>>
>>>>>> The example program  mixes declarations and "other statements" ,
>>>>>> which needs C99,  I compile with Oracle Studio 12u4 .
>>>>>>
>>>>>> /compiler/SS12u4-Oct2017/SUNWspro/bin/cc  vardecl.c -o vardecl
>>>>>>
>>>>>> No settings -> works nicely
>>>>>>
>>>>>>
>>>>>> - with C99 disabled as OpenJDK does :
>>>>>> ----------------------------------------------------------
>>>>>>
>>>>>> /compiler/SS12u4-Oct2017/SUNWspro/bin/cc -xc99=%none   vardecl.c -
>> o
>>>>>> vardecl
>>>>>> "vardecl.c", line 8: warning: declaration can not follow a statement
>>>>>>
>>>>>>
>>>>>> - with C99 disabled + errwarn as OpenJDK does :
>>>>>> ------------------------------------------------------------------------
>>>>>>
>>>>>> /compiler/SS12u4-Oct2017/SUNWspro/bin/cc -xc99=%none  -
>>>> errwarn=%all
>>>>>> vardecl.c -o vardecl
>>>>>> "vardecl.c", line 8: declaration can not follow a statement
>>>>>> cc: acomp failed for vardecl.c
>>>>>>
>>>>>> example program :
>>>>>> ---------------------------------------
>>>>>>
>>>>>> bash-3.2$ more vardecl.c
>>>>>> #include <stdio.h>
>>>>>>
>>>>>> int main(void) {
>>>>>>      int a = 0;
>>>>>>      printf("a: %d \n", a);
>>>>>>
>>>>>>      int b = 1;
>>>>>>      printf("b: %d \n", b);
>>>>>>      return 0;
>>>>>> }
>>>>>>
>>>>>>
>>>>>> Best regards, Matthias




More information about the build-dev mailing list