Re: [PATCH 1/1] kbuild: upgrade the orphan section warning to an error if CONFIG_WERROR is set

From: Kees Cook
Date: Mon Oct 24 2022 - 15:03:05 EST


On Mon, Oct 24, 2022 at 10:29:55AM -0700, Nathan Chancellor wrote:
> On Fri, Oct 21, 2022 at 08:05:19PM -0700, Xin Li wrote:
> > Andrew Cooper suggested upgrading the orphan section warning to a hard link
> > error. However Nathan Chancellor said outright turning the warning into an
> > error with no escape hatch might be too aggressive, as we have had these
> > warnings triggered by new compiler generated sections, and suggested turning
> > orphan sections into an error only if CONFIG_WERROR is set. Kees Cook echoed
> > and emphasized that the mandate from Linus is that we should avoid breaking
> > builds. It wrecks bisection, it causes problems across compiler versions, etc.
> >
> > Thus upgrade the orphan section warning to a hard link error only if
> > CONFIG_WERROR is set.
> >
> > Suggested-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> > Suggested-by: Nathan Chancellor <nathan@xxxxxxxxxx>
> > Signed-off-by: Xin Li <xin3.li@xxxxxxxxx>
>
> Thanks for the patch!
>
> Reviewed-by: Nathan Chancellor <nathan@xxxxxxxxxx>
> Tested-by: Nathan Chancellor <nathan@xxxxxxxxxx>
>
> We could deduplicate the '$(if $(CONFIG_WERROR),error,warn)' logic if we
> hoisted it into Kconfig by having something like
>
> config LD_ORPHAN_WARN_LEVEL
> string
> depends on LD_ORPHAN_WARN
> default "error" if WERROR
> default "warn"
>
> in init/Kconfig then using it everywhere like
>
> --orphan-handling=$(CONFIG_LD_ORPHAN_WARN_LEVEL)
>
> but I will let others decide if they would prefer that over the
> direction we went here.

I think this makes it look cleaner, yeah.

--
Kees Cook