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>