Subject: Re: Heads Up: Alignment faults enabled on arm32
To: Chris Gilbert <firstname.lastname@example.org>
From: Richard Earnshaw <email@example.com>
Date: 10/27/2003 10:54:33
> On Sat, 25 Oct 2003 20:55:11 +0100
> Steve Woodford <firstname.lastname@example.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.
Hmm, does this mean that really we shouldn't do any alignment checking if
COMPAT_16? Or was the bug introduced after we branched?