Re: [PATCH] Makefile: disallow data races on gcc-10 as well

From: Jiri Kosina
Date: Mon Mar 16 2020 - 20:57:51 EST


On Tue, 17 Mar 2020, Sergei Trofimovich wrote:

> gcc-10 will rename --param=allow-store-data-races=0
> to -fno-allow-store-data-races.
>
> The flag change happened at https://gcc.gnu.org/PR92046.
>
> CC: Jiri Kosina <jkosina@xxxxxxx>
> CC: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> CC: Michal Marek <michal.lkml@xxxxxxxxxxx>
> CC: linux-kbuild@xxxxxxxxxxxxxxx
> Signed-off-by: Sergei Trofimovich <slyfox@xxxxxxxxxx>
> ---
> Makefile | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Makefile b/Makefile
> index 171f2b004c8a..9696eb2cd5a1 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -714,6 +714,7 @@ endif
>
> # Tell gcc to never replace conditional load with a non-conditional one
> KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
> +KBUILD_CFLAGS += $(call cc-option,-fno-allow-store-data-races)

I have to say I can't really read gcc sources without major cerebral pain,
so let me me dense here: what happens to gcc<10 if you pass
-fno-allow-store-data-races to it?

My expectation would be that it would just blow up in fatal error, meaning
that after we apply your patch, kernel couldn't be successfully compiled
by any compiler that doesn't understand '-fno-allow-store-data-races'
(which is just about any compiler on this planet).

Thanks,

--
Jiri Kosina
SUSE Labs