On Thu, Nov 06, 2014 at 06:40:15PM +0100, Sylvain BERTRAND wrote:
> On Thu, Nov 06, 2014 at 05:09:44PM +0000, Dimitris Papastamos wrote:
> > On Thu, Nov 06, 2014 at 05:56:55PM +0100, Sylvain BERTRAND wrote:
> > > On Thu, Nov 06, 2014 at 03:40:56PM +0000, Dimitris Papastamos wrote:
> > > > On Thu, Nov 06, 2014 at 04:38:20PM +0100, Sylvain BERTRAND wrote:
> > > > > On a personnal level, I port some of my C99 projects back to C89, 
> > > > > since it
> > > > > seems a C89 compiler is easier to write than a C99 compiler, and some 
> > > > > part of
> > > > > my code could go in C89 only project (i.e. the linux kernel).
> > > > 
> > > > the linux kernel is built with gnu99 iirc.
> > > 
> > > Documentation/HOWTO:
> > > "The kernel is written using GNU C and the GNU toolchain.  While it
> > > adheres to the ISO C89 standard, it uses a number of extensions that are
> > > not featured in the standard.  The kernel is a freestanding C
> > > environment, with no reliance on the standard C library, so some
> > > portions of the C standard are not supported.  Arbitrary long long
> > > divisions and floating point are not allowed.  It can sometimes be
> > > difficult to understand the assumptions the kernel has on the toolchain
> > > and the extensions that it uses, and unfortunately there is no
> > > definitive reference for them.  Please check the gcc info pages (`info
> > > gcc`) for some information on them."
> > 
> > It uses a *lot* of extensions.  If I remember correctly, a significant 
> > number
> > of gcc extensions were initially driven by the needs of linux kernel 
> > programmers.
> > 
> > A C89 only compiler would have no hope to build the kernel in any way
> > so I do not see how C89 is relevant here anymore.
> 
> 1 - because it's easier to port to C89/C90 + gnu extensions from C89/C90 than
>     C99 (moving variable declarations back at the beginning of each block is
>     already a pain)

There's many instances in the kernel code where variables are not
declared at the beginning of the function block.

Reply via email to