Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754170AbZKSSig (ORCPT ); Thu, 19 Nov 2009 13:38:36 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753451AbZKSSif (ORCPT ); Thu, 19 Nov 2009 13:38:35 -0500 Received: from mx1.redhat.com ([209.132.183.28]:14064 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753439AbZKSSif (ORCPT ); Thu, 19 Nov 2009 13:38:35 -0500 Message-ID: <4B05903B.5080708@redhat.com> Date: Thu, 19 Nov 2009 18:36:43 +0000 From: Andrew Haley User-Agent: Thunderbird 2.0.0.23 (X11/20090825) MIME-Version: 1.0 To: rostedt@goodmis.org CC: Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , LKML , Andrew Morton , Heiko Carstens , feng.tang@intel.com, Fr??d??ric Weisbecker , Peter Zijlstra , jakub@redhat.com, gcc@gcc.gnu.org Subject: Re: BUG: GCC-4.4.x changes the function frame on some functions References: <20091119072040.GA23579@elte.hu> <4B058C76.9090609@redhat.com> <1258655585.22249.751.camel@gandalf.stny.rr.com> In-Reply-To: <1258655585.22249.751.camel@gandalf.stny.rr.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1011 Lines: 33 Steven Rostedt wrote: > On Thu, 2009-11-19 at 18:20 +0000, Andrew Haley wrote: > >> OK, I found it. There is a struct defined as >> >> struct entry { >> ... >> } __attribute__((__aligned__((1 << (4))))); >> >> and then in timer_stats_update_stats you have a local variable of type >> struct entry: >> >> void timer_stats_update_stats() >> { >> spinlock_t *lock; >> struct entry *entry, input; >> >> So, gcc has to 16-align the stack pointer to satisfy the alignment >> for struct entry. > > It has to align the entire stack? Why not just the variable within the > stack? How?. gcc has to know, at compile time, the offset from sp of each variable. So, it of course makes sure that offset is 16-aligned, but it also has to 16-align the stack pointer. Andrew. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/