[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: busybox sh broken on i386 with glibc 2.26, leads to kernel panic



On Wed, 17 Jan 2018 12:31:06 +0100 Aurelien Jarno <aurel32@debian.org> wrote:
[...]
> busybox is compiled with -mpreferred-stack-boundary=2 on i386 which has
> the same effect of reducing the default stack alignment from 16 bytes to
> 2 bytes. This comes from arch/i386/Makefile:

The argument is the log2 of the alignment, so this sets alignment to 4
bytes - which is compliant with the System V psABI for i386.

Any assumption of 16-byte stack alignment in glibc on i386 will break
not only busybox but most binaries built with old versions of gcc
(before 4.2, if the comment in busybox is correct).  So this really
ought to be fixed there.

I think that any libraries that need to maintain backward binary
compatibility will need to be compiled with the option
-mincoming-stack-boundary=2.  gcc will then fix up the stack alignment
in functions that need greater alignment for local variables.

Ben.

-- 
Ben Hutchings
Reality is just a crutch for people who can't handle science fiction.

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: