> >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? Best regards, Matthias > -----Original Message----- > From: David Holmes <david.hol...@oracle.com> > Sent: Dienstag, 11. Dezember 2018 23:16 > To: Erik Joelsson <erik.joels...@oracle.com>; Baesken, Matthias > <matthias.baes...@sap.com>; 'build-dev@openjdk.java.net' <build- > d...@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