disabled c99 in Solaris builds
David Holmes
david.holmes at oracle.com
Tue Dec 11 22:15:49 UTC 2018
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