[syslinux] [PATCH 0/2] Do not use the "red zone" on EFI

Gene Cumm gene.cumm at gmail.com
Sun Dec 6 04:40:38 PST 2015


On Fri, Dec 4, 2015 at 7:37 PM, Gene Cumm <gene.cumm at gmail.com> wrote:
> On Nov 27, 2015 5:44 PM, "celelibi--- via Syslinux" <syslinux at zytor.com>
> wrote:
>>
>> From: Sylvain Gault <sylvain.gault at gmail.com>
>>
>> The System V ABI for x86-64 specify that a "red zone" is an area of 128
>> bytes
>> above the current stack frame. This area can be used by a called function
>> in
>> order to avoid the overhead of modifying the stack pointer. The direct
>> effect
>> is that interrupt/event/signal handlers must not write to this area. In
>> the
>> UEFI calling convention, there is no such thing and the event handlers do
>> write
>> their data just above the current stack frame.
>>
>> However, gcc generate by default code that uses the red zone. This has to
>> be
>> disabled explicitely with the option -mno-red-zone. Not doing so lead to
>> some
>> functions behaving randomly once in a while.
>>
>> Fixing this revealed that some Makefiles out of the efi/ directory have
>> some
>> specific options when building for BIOS or for EFI. These Makefiles do
>> this by
>> testing the EFI_BUILD variable. However, this variable wasn't passed down
>> the
>> Makefiles making these specific options never used.
>>
>> Best regards,
>> Sylvain Gault
>
> Almost done with a round of testing and I hope to push the patch tonight or
> tomorrow.
>
> --Gene

Pushed.

-- 
-Gene


More information about the Syslinux mailing list