Subject: Re: Heads Up: Alignment faults enabled on arm32
To: Chris Gilbert <chris@dokein.co.uk>
From: Richard Earnshaw <rearnsha@arm.com>
List: port-arm
Date: 10/27/2003 10:54:33
> On Sat, 25 Oct 2003 20:55:11 +0100
> Steve Woodford <scw@netbsd.org> wrote:
> 
> > Hi,
> > 
> > I've just enabled alignment faults for arm32. This will catch all 
> > misaligned loads/stores, which previously silently failed, leading to 
> > possible data corruption.
> > 
> > In order to support older a.out binaries (in which gcc made use of 
> > misaligned accesses for short ints under certain circumstances), the 
> > kernel will dynamically disable alignment faults just before executing
> > 
> > a.out userland code, and re-enable them on entry back into the kernel.
> > 
> > This feature is automatically enabled when both COMPAT_15 and
> > EXEC_AOUT are defined.
> 
> Just a heads up to anyone building a kernel with alignment faults, make
> sure your userland has Steve's fixes to strcmp in libc, from Oct 23rd
> 21:46, otherwise you find things get SIGBUS.  Normally painful things to
> miss, eg gcc.  Of course this does mean I'd not trust the output of gcc
> from -current pre the strcmp fixes.
> 
> Note I'm assuming that the strcmp bug is why gcc is failing with SIGBUS,
> kernel from before this change gcc works, after gcc doesn't.
> 
> Cheers,
> Chris


Hmm, does this mean that really we shouldn't do any alignment checking if 
COMPAT_16?  Or was the bug introduced after we branched?

R>