Re: [PATCH] x86/boot/compressed/64: Define __force_order only when CONFIG_RANDOMIZE_BASE is unset

From: Kees Cook
Date: Mon Dec 30 2019 - 13:34:12 EST


On Mon, Dec 30, 2019 at 01:12:31PM +0100, Arnd Bergmann wrote:
> On Tue, Dec 24, 2019 at 12:08 AM Kirill A. Shutemov
> <kirill@xxxxxxxxxxxxx> wrote:
> > On Mon, Dec 23, 2019 at 02:25:02PM -0800, Khem Raj wrote:
> > > On Mon, Dec 23, 2019 at 9:10 AM Kirill A. Shutemov <kirill@xxxxxxxxxxxxx> wrote:
> > > >
> > > > On Sat, Dec 21, 2019 at 07:18:13AM -0800, Khem Raj wrote:
> > > > > Since arch/x86/boot/compressed/Makefile overrides global CFLAGS it loses
> > > > > -fno-common option which would have caught this
> > > >
> > > > If this doesn't cause any visible problems, why bother?
> > > >
> > >
> > > it does break builds with gcc trunk as of now e.g.
> > >
> > > > Hopefully, we will be able to drop it altogether once we ditch GCC 4.X
> > > > support.
> > > >
> > >
> > > gcc10 is switching defaults to -fno-common so we need to solve this one way or
> > > other, I am not sure if gcc 4.x will be dropped before gcc10 release
> > > which would be
> > > in mid of 2020
> >
> > Okay, it makes sense then. Please include this info into the commit
> > message.
> >
> > Also, I wounder if it would be cleaner to define both of them as __weak?
>
> Or maybe make the #ifdef check for gcc < 5 instead of checking for
> CONFIG_RANDOMIZE_BASE? That way it will be found by whoever
> cleans up the code when we increase the minimum compiler
> version to one that doesn't require the hack.

I agree: that seems a better way to do this.

--
Kees Cook