[Gluster-devel] C99 requirement in Gluster ?

Michael Scherer mscherer at redhat.com
Mon Feb 20 13:07:57 UTC 2017

Le lundi 20 février 2017 à 06:33 -0500, Kaleb Keithley a écrit :
> ----- Original Message -----
> > From: "Michael Scherer" <mscherer at redhat.com>
> > 
> > so I was reading coverty scan reports (as Nigel tricked me into looking
> > them), and one of the first is this:
> > https://download.gluster.org/pub/gluster/glusterfs/static-analysis/master/glusterfs-coverity/2017-02-07-3c86d946/html/1/8rpc-transport.c.html#error
> > 
> > at first, i was wondering why/what is the issue.
> > 
> > But, after searching, int8_t is a C99 type, which is signed when
> > compiled on C99 compiler, and likely unsigned when compiled using a non
> > C99 compiler (as I see in ./contrib/argp-standalone/acinclude.m4 , it
> > will be defined to "char" on non c99 platform, which also make no
> > garantee on being signed or unsigned, according to
> > https://stackoverflow.com/questions/4337217/difference-between-signed-unsigned-char
> > ).
> > 
> > So, to fix that, should we force to use c99, or update argp-standalone ?
> argp-standalone is contrib. Are there newer sources available somewhere?
> > 
> > (and if we do requires c99 already, how come coverty do not use it ?)
> >  
> (For Community Gluster) 
> I'm not aware of any "official" policy to require C99. 
> And how would we enforce it in a community project?

In configure. We can just verify that the compiler is able to compile
C99, and there, we can declare that we are able to use C99 since
supported natively by compiler.

> What we use depends on the platform. For "official" builds we have 3 Fedora 
> platforms, 3 CentOS platforms, 2 or 3 Debian platforms, Ubuntu 4-5 platforms, 
> SuSE 2 or 3 platforms, plus NetBSD (still gcc?) and FreeBSD (clang).  We also 
> compile with clang on Linux (and probably nobody ever looks at the results.)  
> And then there's whatever the individual developers are developing on, but that's 
> probably one of the above.
> On top of that the various packaging building configs on those platforms add more options.

Sure, but so, what is the minimal C standard we should support, and
then, how do we know we do not requires a newer standard ?

If it was C11, I can see why it would be problematic, but C99 should be
rather straight forward.
Michael Scherer
Sysadmin, Community Infrastructure and Platform, OSAS

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.gluster.org/pipermail/gluster-devel/attachments/20170220/b793e1d2/attachment.sig>

More information about the Gluster-devel mailing list