Re: [PATCH] Optimize generic get_unaligned / put_unaligned implementations.

From: Ralf Baechle
Date: Thu Feb 15 2007 - 19:43:49 EST


On Thu, Feb 15, 2007 at 03:38:23PM -0800, Andrew Morton wrote:

> hm. So if I have
>
> struct bar {
> unsigned long b;
> } __attribute__((packed));
>
> struct foo {
> unsigned long u;
> struct bar b;
> };
>
> then the compiler can see that foo.b.b is well-aligned, regardless of the
> packedness.
>
> Plus some crazy people compile the kernel with icc (or at least they used
> to). What happens there?

A quick grep for __attribute__((packed)) and __packed find around 900 hits,
I'd probably find more if I'd look for syntactical variations. Some hits
are in arch/{i386,x86_64,ia64}. At a glance it seems hard to configure a
useful x86 kernel that doesn't involve any packed attribute. I take that
as statistical proof that icc either has doesn't really work for building
the kernel or groks packing. Any compiler not implementing gcc extensions
is lost at building the kernel but that's old news.

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