[Bug target/38496] Gcc misaligns arrays when stack is forced follow the x8632 ABI
joseph at codesourcery dot com
gcc-bugzilla@gcc.gnu.org
Fri Dec 12 00:02:00 GMT 2008
------- Comment #7 from joseph at codesourcery dot com 2008-12-12 00:01 -------
Subject: Re: New: Gcc misaligns arrays when stack is
forced follow the x8632 ABI
On Thu, 11 Dec 2008, whaley at cs dot utsa dot edu wrote:
> I notice that gcc does not follow the 32-bit ABI for the x86, in that it forces
> the stack alignment to 16 bytes rather than the ABI-required 4 bytes. This is
> a problem when interacting with compilers that are ABI-compliant.
I suppose that by "32-bit ABI for the x86" you mean a document with
1990-1996 SCO copyrights.
This document should be considered of only marginal relevant to current
systems; it may have described an ABI for some particular system that is
now obsolete, but is not an accurate description of (for example) the ABI
used on IA32 GNU/Linux, which is a de facto ABI with no written document
corresponding precisely.
<http://groups.google.com/group/ia32-abi/browse_thread/thread/4f9b3e5069943bf1>
(and the messages linked from it) is a description of this area of the de
facto ABI.
In principle GCC's documentation should for all target systems give a
description of the ABI it is intended to implement for those systems with
links to relevant documents and descriptions of how the ABI deviates from
those documents. In practice, it does not, but it is still the case that
just because there exists a document claiming to be a psABI for a
particular processor does not mean that GCC follows it or that it would be
correct for GCC to follow it. The older the document, the less likely it
is relevant; some ABIs such as x86-64 are actively maintained (meaning
that defects in the ABI document may be fixed - a disagreement between
implementations and documents may be concluded to be a defect on either or
both sides) while others are not.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38496
More information about the Gcc-bugs
mailing list