Date: Wed, 4 Jun 2003 12:09:34 +0200 From: Stefan Farfeleder <stefan@fafoe.dyndns.org> To: Tony Finch <dot@dotat.at> Cc: Mike Barcroft <mike@FreeBSD.org> Subject: Re: GNU extensions on FreeBSD 5.x headers Message-ID: <20030604100934.GC584@wombat.fafoe> In-Reply-To: <20030604083821.GM18938@chiark.greenend.org.uk> References: <20030603215322.31853.qmail@web13403.mail.yahoo.com> <20030603210338.A70533@espresso.bsdmike.org> <20030604083821.GM18938@chiark.greenend.org.uk>
index | next in thread | previous in thread | raw e-mail
On Wed, Jun 04, 2003 at 09:38:21AM +0100, Tony Finch wrote:
> On Tue, Jun 03, 2003 at 09:03:38PM -0400, Mike Barcroft wrote:
> >
> > I think those of us who've played with alternative compilers are aware
> > of this requirement. I'm not sure there's anything we can do about
> > it. If anyone has any tricks to force 128-bit alignment without a
> > 128-bit type in standard C, I'd love to hear it.
>
> Not in standard C (since it doesn't allow you to express alignment and
> padding requirements), but in C-as-she-is-spoke why not insert the
> necessary padding explicitly?
By adding padding to a struct you can only align the offset of a struct
member:
struct foo {
...
char padding[N];
bar aligned;
...
};
What you cannot do with padding is to align a non-dynamically allocated
object of type struct foo as in:
struct foo f;
There's no way I can see to guarantee that f.aligned is 128-bit aligned.
Regards,
Stefan
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030604100934.GC584>
