On Wed, May 03, 2023 at 04:39:14PM +0100, Ferruh Yigit wrote:
> On 5/3/2023 4:14 PM, Bruce Richardson wrote:
> > Add a deprecation notice informing users that we will require a C11
> > compiler from 23.11 release onwards. This requirement was agreed by
> > technical board to enable use of newer C language features, e.g.
> > standard atomics. [1]
> > 
> > [1] 
> > http://inbox.dpdk.org/dev/dbapr08mb58148cec3e1454e8848a938998...@dbapr08mb5814.eurprd08.prod.outlook.com/
> > 
> > Signed-off-by: Bruce Richardson <bruce.richard...@intel.com>
> > ---
> >  doc/guides/rel_notes/deprecation.rst | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/doc/guides/rel_notes/deprecation.rst 
> > b/doc/guides/rel_notes/deprecation.rst
> > index dcc1ca1696..9a391d2c49 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -11,6 +11,12 @@ here.
> >  Deprecation Notices
> >  -------------------
> >  
> > +* C Compiler: From DPDK 23.11 onwards,
> > +  building DPDK will require a C compiler which supports the C11 standard, 
> > or later.
> > +  Please note:
> > +     - C11 is supported from GCC version 5 onwards, and is the default 
> > language version in that release
> > +     - C11 is the default compilation mode in Clang from version 3.6
> > +
> >  * kvargs: The function ``rte_kvargs_process`` will get a new parameter
> >    for returning key match count. It will ease handling of no-match case.
> >  
> 
> This only applies to DPDK internals, right?
> Application linked with DPDK library won't have this requirement,
> meaning DPDK public headers won't rely on C99 and C11 features.
>
No, AFAIK, that is not correct. Originally I had thought that that would be
the case - hence the special-case tests for the headers in my previous C99
patch - but the consensus at the DPDK techboard was that we won't require
all headers to remain C89 compatible.

Originally, I was unsure about this, but now I agree with this position, on
the basis that since GCC 5, unless you have been explicitly requesting an
older standard, the compiler is using C11 rules. Therefore, everyone using
these later GCC versions is already using C11+.

/Bruce 

Reply via email to