Re: [-mm patch] make types.h usable for non-gcc C parsers

From: Sam Ravnborg
Date: Tue Aug 28 2007 - 04:42:17 EST


On Tue, Aug 28, 2007 at 12:37:04AM -0700, Andrew Morton wrote:
> On Mon, 27 Aug 2007 23:27:43 +0200 Adrian Bunk <bunk@xxxxxxxxxx> wrote:
>
> > On Wed, Aug 22, 2007 at 03:33:27PM +0200, Gabriel C wrote:
> > >...
> > > WARNING: "div64_64" [net/netfilter/xt_connbytes.ko] has no CRC!
> > >...
> >
> > Patch below.
> >
> > > Regards,
> > >
> > > Gabriel
> >
> > cu
> > Adrian
> >
> >
> > <-- snip -->
> >
> >
> > This patch makes the 64bit integers on 32bit architectures usable for
> > all C parsers that know about "long long".
> >
> > Signed-off-by: Adrian Bunk <bunk@xxxxxxxxxx>
> >
>
> Given that this patch (hopefully) fixes a problem in the current net-2.6.24
> tree, I'm inclined to slip it into mainline immediately.
>
> But I'd like a better description, please. Which "non-gcc parser" are we
> talking about here? Something under ./scripts/. Well, please identify it,
> and describe what the problem is, and how the proposed patch will address
> it.
>
> Let's cc Sam too, as I guess he's the guy whose code just broke.

If my analysis is correct then genksyms fails to produce a CRC for div64_64 because
genksyms does not know the __extension__ keyword.
And this patch just paper over the real bug wich is in genksyms - right?

So we should fix the root cause here.

Googeling I did not find a good description of where __extension__ can be
used so I fail to see where in the parse.y file I shal add the keyword.
I think __extension__ may be used both as a part of an expression AND
as part of a typedef (as in this case) but I wonder if this is where it is limited
to be used.
I would like to have this sorted out so we do not do a half-backed solution,
and the proposed patch as it just paper over the real bug is no good.

Sam
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/