Re: [PATCH RFC] gcc-plugins: Handle GCC version mismatch for OOT modules

Josh Poimboeuf
2021-03-05T19:19:30Z

On Sat, Mar 06, 2021 at 01:03:32AM +0900, Masahiro Yamada wrote:
> > Ok. So it sounds like the best/easiest option is the original patch in
> > this thread: when building an external module with a GCC mismatch, just
> > disable the GCC plugin, with a warning (or an error for randstruct).
>
> Just for clarification,
> I believe "the original patch" pointed to this one:
> https://lore.kernel.org/lkml/efe6b039a544da8215d5e54aa7c4b6d1986fc2b0.1611607264.git.jpoimboe@redhat.com/
>
> This is dead. Please do not come back to this.

Sorry, no. The patch may have been crap, but that doesn't make the
problem I'm trying to solve any less valid.

> See negative comments not only from me, but also from Greg, Peter,
> Christoph.

I responded to those. Summarizing my replies once again...

- "External modules aren't supported"

This doesn't even remotely match reality. Are you honestly using this
"negative comment" as a reason to NAK the patch?

- "External modules must be built with the same GCC version"

As has been stated repeatedly, by Linus and others, there's no
technical reason behind this claim. It ignores the realities of how
distros release the kernel and compiler independently, with separate
cadences. Minor variances in compiler version are ABI compatible.

Also, for features which are dependent on compiler version, many of
those are now enabled by kbuild. As I suggested to you previously,
kbuild should warn when such features get disabled (which can happen
due to a compiler/toolchain change or due to a .config copied from
another system).

--
Josh