From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
To: Thomas Monjalon <thomas@monjalon.net>
Cc: Stephen Hemminger <stephen@networkplumber.org>,
"Patil, Harish" <Harish.Patil@cavium.com>,
"liang.j.ma@intel.com" <liang.j.ma@intel.com>,
"peter.mccarthy@intel.com" <peter.mccarthy@intel.com>,
jerin.jacob@caviumnetworks.com, dev@dpdk.org,
ferruh.yigit@intel.com
Subject: Re: Compilation errors in drivers/event/opdl/
Date: Fri, 26 Jan 2018 18:39:33 +0100 [thread overview]
Message-ID: <20180126173933.GB4256@6wind.com> (raw)
In-Reply-To: <5211400.X7DXXCoju3@xps>
(Replying since you added me to this thread)
On Sun, Jan 21, 2018 at 06:49:13PM +0100, Thomas Monjalon wrote:
> 21/01/2018 18:34, Stephen Hemminger:
> > On Sat, 20 Jan 2018 09:44:46 +0100
> > Thomas Monjalon <thomas@monjalon.net> wrote:
> >
> > > 20/01/2018 06:18, Patil, Harish:
> > > > Hi,
> > > >
> > > > I am seeing below compilation errors in drivers/event/opdl/, this is with
> > > > cloned latest DPDK (git clone http://dpdk.org/git/dpdk).
> > > >
> > > > ..
> > > > ..
> > > > /home2/hpatil/e4/jan19-inbox-submit/dpdk/drivers/event/opdl/opdl_evdev_xsta
> > > > ts.c: In function ‘opdl_xstats_get_names’:
> > > > /home2/hpatil/e4/jan19-inbox-submit/dpdk/drivers/event/opdl/opdl_evdev_xsta
> > > > ts.c:89:2: error: ‘for’ loop initial declarations are only allowed in
> > > > C99 mode
> > > > for (uint32_t j = 0; j < max_num_port_xstat; j++) {
> > > > ^
> > >
> > > My compiler does not raise this error.
> > > What is your compiler?
> > >
> > > Anyone to fix it QUICKLY please? today?
> > >
> > > Harish, do you think we should revert if not fixed?
> >
> > Using declaration in for loop is a C++ thing which was inherited into C99.
> > Does DPDK require C99 mode?
>
> No DPDK is not generally C99.
Except we use enough C99isms (named initializers anyone?) that I think it's
safe to say DPDK won't ever compile in C90 mode.
>
> > Putting loop variables in for() looks better, but the rest of DPDK
> > doesn't use that style.
>
> C99 was forced for this driver as a quick fix.
>
> Either the coding style guideline is updated to C99,
> or this driver must be adapted to the DPDK coding style.
> I have no strong opinion.
When -std is not specified, depending on its version GCC defaults either to
gnu90, gnu99 or gnu11, all based on the C standard in question with a number
of GNU extensions.
Named initializers typically never fail because they're otherwise part of
the GNU extensions. Others such as the "for" declaration above apparently
aren't considered part of gnu90.
> Is C99 well supported in all compilers we want to use (including Windows)?
If by Windows you mean MSVC, from memory (likely outdated) it's actually a
C++ compiler that only provides limited support for C99, this fact will
trigger many other issues. The above loop won't be one of them though.
On the GCC/clang side, -std=gnu99 is what we assume in DPDK today without
explicitly documenting it. Exported headers conform a stricter standard,
they are compatible with -std=c99 with GNU extensions explicitly tagged
whenever they can't be worked around.
--
Adrien Mazarguil
6WIND
next prev parent reply other threads:[~2018-01-26 17:39 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-20 5:18 Compilation errors in drivers/event/opdl/ Patil, Harish
2018-01-20 8:44 ` Thomas Monjalon
2018-01-21 17:34 ` Stephen Hemminger
2018-01-21 17:49 ` Thomas Monjalon
2018-01-26 17:39 ` Adrien Mazarguil [this message]
2018-01-20 8:56 ` Jerin Jacob
2018-01-22 18:38 ` Patil, Harish
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180126173933.GB4256@6wind.com \
--to=adrien.mazarguil@6wind.com \
--cc=Harish.Patil@cavium.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=jerin.jacob@caviumnetworks.com \
--cc=liang.j.ma@intel.com \
--cc=peter.mccarthy@intel.com \
--cc=stephen@networkplumber.org \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.