Re: 4.14.9 doesn't boot (regression)

From: Jiri Kosina
Date: Sat Dec 30 2017 - 08:15:33 EST


On Sat, 30 Dec 2017, Toralf Förster wrote:

> This made the issue go away :
>
> diff --git a/Makefile b/Makefile
> index ac8c441866b7..11a12947c550 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -414,7 +414,7 @@ LINUXINCLUDE := \
>
> KBUILD_AFLAGS := -D__ASSEMBLY__
> KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
> - -fno-strict-aliasing -fno-common -fshort-wchar \
> + -fno-strict-aliasing -fno-common -fshort-wchar -fstack-check=no \
> -Werror-implicit-function-declaration \
> -Wno-format-security \
> -std=gnu89
>
> But this doesn't solve the root cause, right ? So if the root cause is
> "Gentoo hardened GCC is broken" please just let me know this - FWIW I'm
> in #gentoo-dev on freenode.

-fstack-check for kernel is never going to work properly.

That option is purely for userspace, and assumes all the logic around
'stack guard gap' and the auto-growing semantics being in place; which is
there for user stack VMA, but definitely not for kernel stack.

It's probably the "hardened" flavor of your distro trying to push
'-fstack-check' to everything it compiles; so I actually think the
Makefile patch, sanitizing CFLAGS by force-disabling -fstack-check is
exactly what we should be doing.

Thanks,

--
Jiri Kosina
SUSE Labs