Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Jan 2008 14:05:29 +0100
From:      Willem Jan Withagen <wjw@digiware.nl>
To:        freebsd-arm@freebsd.org
Subject:   Re: sshd broken on arm?
Message-ID:  <4799DE99.8010207@digiware.nl>
In-Reply-To: <20080125113916.GP81396@plum.flirble.org>
References:  <479880A7.1030107@digiware.nl> <20080124.084828.1608359032.imp@bsdimp.com> <864pd386mj.fsf@ds4.des.no> <20080124.110954.179240992.imp@bsdimp.com> <47991E08.6070609@digiware.nl> <20080125041540.GA30262@zibbi.meraka.csir.co.za> <4799A2B3.4060003@digiware.nl> <86prvq5eua.fsf@ds4.des.no> <20080125113916.GP81396@plum.flirble.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Nicholas Clark wrote:
> On Fri, Jan 25, 2008 at 12:23:09PM +0100, Dag-Erling Smrgrav wrote:
> 
>> None of this matters.  What John pointed out means that the code is
>> wrong and the compiler is right.  The code is not allowed to assume that
>> an object is correctly aligned unless it is of a type that requires the
>> correct alignment.  The easiest way to do this is with a union, e.g.
> 
> Whilst that is correct, why is the compiler changing the alignment of the
> struct for different optimiser settings but all other flags identical?
> [Have I got that right?] Surely that's a compiler bug too?
> 
> (In that it is in breach of an ABI, even if ANSI permits different padding
> for any different compiler flags, making no special reference to
> "optimisation")

In the assembly output I looked at things were correctly aligned. But 
then that was still an horribly old version of GCC.
I'm in the process of getting 4.2.1 to work.

But for the moment I have the feeling that cc1 thinks it is compiling 
for C++:
cc1: warning: command line option "-Wnested-externs" is valid for C/ObjC 
but not for C++
cc1: warning: command line option "-Wstrict-prototypes" is valid for 
C/ObjC but not for C++
cc1: warning: command line option "-Wmissing-prototypes" is valid for 
C/ObjC but not for C++
cc1: warning: command line option "-Wno-pointer-sign" is valid for 
C/ObjC but not for C++
cc1: warning: command line option "-std=c99" is valid for C/ObjC but not 
for C++
cc1: warning: command line option "-ffreestanding" is valid for C/ObjC 
but not for C++

So please bare with me, I'll get there in the end. ;)

--WjW



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4799DE99.8010207>