[PATCH v3] Makefile: Tell compiler to generate bare-metal code

Andre Przywara andre.przywara at arm.com
Mon Jan 17 10:25:10 PST 2022


On Mon, 17 Jan 2022 17:49:43 +0000
"Russell King (Oracle)" <linux at armlinux.org.uk> wrote:

Hi Russell,

> On Mon, Jan 17, 2022 at 03:33:48PM +0000, Andre Przywara wrote:
> > Our GCC invocation does not provide many parameters, which lets the
> > toolchain fill in its own default setup.
> > In case of a native build or when using a full-featured cross-compiler,
> > this probably means Linux userland, which is not what we want for a
> > bare-metal application like boot-wrapper.
> > 
> > Tell the compiler to forget about those standard settings, and only use
> > what we explicitly ask for. In particular that means to not use toolchain
> > provided libraries, since they might pull in more code than we want, and
> > might not run well in the boot-wrapper environment.
> > 
> > Disable the stack protector, as this adds code that relies on userland:
> > "If a guard check fails, an error message is printed and the program
> > exits." (from the gcc manpage).
> > 
> > Signed-off-by: Andre Przywara <andre.przywara at arm.com>
> > ---
> > Hi,
> > 
> > compared to [PATCH v2 3/9] this drops the more contentious options (for
> > now, at least), and focuses on what's really needed. Including
> > -fno-stack-protector, as the need for this showed up in the cleanup series
> > already.  
> 
> There is history here. -ffreestanding has been tried before. See:
> 
> https://patchwork.kernel.org/project/linux-kbuild/patch/20200817220212.338670-5-ndesaulniers@google.com/

Thanks for the link, interesting insight.

> Have the issues in that thread been addressed?

My apologies, I just see that I accidentally dropped the "boot-wrapper"
part from the subject line. So this is not a Linux patch, we just use the
mailing list for boot-wrapper discussion as well.
As the boot-wrapper is a really minimal and small code base, I don't think
we bother too much about lost optimisation opportunities, instead want to
become more robust. At the moment we really don't use any options telling
the compiler to not use the standard library (which caused issues
already), so we'd like to play safe here.

Thanks,
Andre

> If not, -ffreestanding does not belong in the top-level makefile.



More information about the linux-arm-kernel mailing list