From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2308 invoked by alias); 15 Dec 2008 21:39:23 -0000 Received: (qmail 2293 invoked by uid 22791); 15 Dec 2008 21:39:22 -0000 X-Spam-Check-By: sourceware.org Received: from rv-out-0708.google.com (HELO rv-out-0708.google.com) (209.85.198.245) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 15 Dec 2008 21:38:23 +0000 Received: by rv-out-0708.google.com with SMTP id c5so2786758rvf.56 for ; Mon, 15 Dec 2008 13:38:21 -0800 (PST) Received: by 10.140.201.8 with SMTP id y8mr3938362rvf.101.1229377101163; Mon, 15 Dec 2008 13:38:21 -0800 (PST) Received: from ?10.83.125.46? ([32.153.153.13]) by mx.google.com with ESMTPS id c20sm7067924rvf.5.2008.12.15.13.38.14 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 15 Dec 2008 13:38:19 -0800 (PST) References: <20081215213300.32138.qmail@sourceware.org> Message-Id: <856359E8-A25C-48E7-9514-723AE924D28C@gmail.com> From: Andrew Thomas Pinski To: "gcc-bugzilla@gcc.gnu.org" In-Reply-To: <20081215213300.32138.qmail@sourceware.org> Content-Type: text/plain; charset=us-ascii; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (iPhone Mail 5G77) Subject: Re: [Bug target/38496] Gcc misaligns arrays when stack is forced follow the x8632 ABI Date: Mon, 15 Dec 2008 21:39:00 -0000 Cc: "gcc-bugs@gcc.gnu.org" X-IsSubscribed: yes Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-12/txt/msg01555.txt.bz2 Sent from my iPhone On Dec 15, 2008, at 1:33 PM, "whaley at cs dot utsa dot edu" wrote: > > > ------- Comment #15 from whaley at cs dot utsa dot edu 2008-12-15 > 21:32 ------- >> GCC chose to change the *unwritten* standard for the ABI in use for >> IA32 GNU/Linux. > > This is not true. Prior to this change, gcc followed the *written* > standard > provided by the LSB. LSB was written years after we had already did this back in gcc 3.0. Please check the history before saying gcc followed a written standard when none existed when this change was done. > You chose to violate the standard, or to put as you seem > to prefer, you chose to declare that you followed no standard, as > the written > standard previously used by pretty much all OSes on the x86 was > suddenly > unusable. > >> The SCO document may have been useful before SSE, but processor >> architecture and language developments have made it problematic for >> many years. > > This is not even trivially true. SSE requires no change in the ABI > to support: > it is purely convenience to start with a known 16-byte alignment: an > andb and a > register save/restore fixes the problem completely, without > abandoning the > standard. I believe gcc still abides by this "problematic for many > years" > standard in all respects except stack alignment, which is a trivial > problem to > solve and still abide by the standard. So, you abandoned standard > compliance > to solve a minor irritant, that you yourself have fixed in the new > 4.4 series. > From 4.4 on, you broke the standard for no gain at all, since you > have now > added the minor complexity of manually aligning the stack anyway. > > Of course the standard seems outdated to us: it is supporting an > architecture > that is decades old, and that is the strength of it. If you want > the shiny new > stuff, you go to x86-64. > > > -- > > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38496 >