Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Nov 2006 19:07:58 +0100
From:      Giorgos Keramidas <keramida@freebsd.org>
To:        Ruslan Ermilov <ru@freebsd.org>
Cc:        arm@freebsd.org, current@freebsd.org
Subject:   Re: [head tinderbox] failure on arm/arm
Message-ID:  <20061112180758.GD4237@kobe.laptop>
In-Reply-To: <20061112171436.GF50349@rambler-co.ru>
References:  <20061112140010.GA47660@rambler-co.ru> <20061112142710.GE91556@wombat.fafoe.narf.at> <20061112133929.9194773068@freebsd-current.sentex.ca> <20061112140010.GA47660@rambler-co.ru> <20061112144230.GC2331@kobe.laptop> <20061112145151.GC49703@rambler-co.ru> <20061112151150.GA2988@kobe.laptop> <20061112155723.GB50349@rambler-co.ru> <20061112165904.GP6501@plum.flirble.org> <20061112171436.GF50349@rambler-co.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2006-11-12 20:14, Ruslan Ermilov <ru@freebsd.org> wrote:
>On Sun, Nov 12, 2006 at 04:59:04PM +0000, Nicholas Clark wrote:
>>On Sun, Nov 12, 2006 at 06:57:23PM +0300, Ruslan Ermilov wrote:
>>> So your sizeof() argument, well...  I don't understand it and it
>>> doesn't make things clearer at least to me.  I still believe this
>>> is bug in GCC that the alignment requirement is so high for a
>>> "struct foo { char x; }" (there's no real reason for this!).
>>
>> It is no bug in GCC. ANSI C gives extreme flexibility for the compiler to
>> align (or pad) structures. The assumptions in the code you presented are not
>> portable. The problem tends to be that ARM is the only common platform that
>> does structure alignment this way, so tends to trip up a lot of code that
>> has worked just fine in many other places.
>>
>> There is a lot more detail in
>> http://netwinder.osuosl.org/users/b/brianbr/public_html/alignment.html
>> including how gcc's __packed__ extention can be used to tell gcc to align
>> structures in different ways.
>
> Thanks!  Item 2 at this URL has an answer to my question.

Perfect!

Now it's obvious why GCC prefers '4-byte accesses' on ARM.
Nicholas, thank you so much :)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061112180758.GD4237>