------- Comment #14 from joseph at codesourcery dot com 2008-12-15 18:17 ------- Subject: Re: Gcc misaligns arrays when stack is forced follow the x8632 ABI
On Mon, 15 Dec 2008, whaley at cs dot utsa dot edu wrote: > And also one without application here. I am aware of no other standard for > Linux ABI other than the one in the linux standard base. Gcc did not choose > another standard, it violated the one and only existing standard. I am not GCC chose to change the *unwritten* standard for the ABI in use for IA32 GNU/Linux. The LSB is not a plausible candidate for a written standard for that ABI; the set of such candidates is presently empty. Maybe if there were a document supported by relevant stakeholders then it would be of value to follow it, but the LSB doesn't have that support (see also Ulrich's comments); it is effectively an attempt by third parties to observe the ABI and document their imperfect observations. Just because no-one has written a useful standard document in a particular area does not mean a document that is not presently useful or accurate should be followed. The ABI is undocumented; that is reality. LSB is a good-faith attempt to document it, but for LSB to be useful for its intended purpose it needs to keep playing catch-up with reality. The SCO document may have been useful before SSE, but processor architecture and language developments have made it problematic for many years. The set of ABI standards suitable for use on IA32 GNU/Linux has been empty for many years. For it to cease to be empty a document would need to be written that reflects reality and there would need to be long-term commitment from many interested parties to keep the document and the implementation in sync in future. (A document that does not reflect reality would require even more commitment, to make an incompatible break from previous ABIs in use to move to a newer cleaner ABI.) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38496