Re: [PATCH] 2.4.21-rc1: byteorder.h breaks with __STRICT_ANSI__defined (trivial)

From: David S. Miller
Date: Thu Nov 06 2003 - 16:26:32 EST


On Thu, 06 Nov 2003 23:18:55 +0200
Martin Schlemmer <azarah@xxxxxxxxxx> wrote:

> Ok - say for instance then you were to write the abi headers - how would
> you handle a case like this that -ansi forbid type long long, but it
> have to be in the struct userspace uses to pass data to the
> kernel/device ?

I can tell you what cannot happen. You absolutely can't consider
ideas like using '__u32 val[2];' and accessor macros, long long or
whatever type the platform uses for __u64 has different alignment
constraints than the '__u32 val[2]' array thing would.

I believe there is a way to work around this by using the
__extension__ keyword when defining the __u64 typedefs. Someone
should try playing with that. But this is only going to work when
the compiler is GCC.

-
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/