[PATCH 2/4] kbuild: remove cc-option test of -fno-merge-all-constants

0 views
Skip to first unread message

Masahiro Yamada

unread,
Sep 10, 2020, 9:52:25 AM9/10/20
to linux-...@vger.kernel.org, Ingo Molnar, Masahiro Yamada, Michal Marek, Nathan Chancellor, Nick Desaulniers, clang-bu...@googlegroups.com, linux-...@vger.kernel.org
The minimal compiler versions, GCC 4.9 and Clang 10 support this flag.

Here is the godbolt:
https://godbolt.org/z/8T4177

Signed-off-by: Masahiro Yamada <masa...@kernel.org>
---

Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 059b36f2ea53..1b6abecc5cab 100644
--- a/Makefile
+++ b/Makefile
@@ -927,7 +927,7 @@ KBUILD_CFLAGS += -fno-strict-overflow
# clang sets -fmerge-all-constants by default as optimization, but this
# is non-conforming behavior for C and in fact breaks the kernel, so we
# need to disable it here generally.
-KBUILD_CFLAGS += $(call cc-option,-fno-merge-all-constants)
+KBUILD_CFLAGS += -fno-merge-all-constants

# for gcc -fno-merge-all-constants disables everything, but it is fine
# to have actual conforming behavior enabled.
--
2.25.1

Nathan Chancellor

unread,
Sep 10, 2020, 12:33:16 PM9/10/20
to Masahiro Yamada, linux-...@vger.kernel.org, Ingo Molnar, Michal Marek, Nick Desaulniers, clang-bu...@googlegroups.com, linux-...@vger.kernel.org
On Thu, Sep 10, 2020 at 10:51:18PM +0900, Masahiro Yamada wrote:
> The minimal compiler versions, GCC 4.9 and Clang 10 support this flag.
>
> Here is the godbolt:
> https://godbolt.org/z/8T4177
>
> Signed-off-by: Masahiro Yamada <masa...@kernel.org>

For what it's worth, the commit that introduced this block is going to
be reverted:

https://lore.kernel.org/mm-commits/20200903201518.JKrRS%25a...@linux-foundation.org/

Regardless, it was introduced in LLVM 2.7.0 in commit
f9d41df0930986c52e198292cf875eb5d1761ece.

Reviewed-by: Nathan Chancellor <natecha...@gmail.com>

Masahiro Yamada

unread,
Sep 10, 2020, 12:42:40 PM9/10/20
to Nathan Chancellor, Linux Kbuild mailing list, Ingo Molnar, Michal Marek, Nick Desaulniers, clang-built-linux, Linux Kernel Mailing List
On Fri, Sep 11, 2020 at 1:33 AM Nathan Chancellor
<natecha...@gmail.com> wrote:
>
> On Thu, Sep 10, 2020 at 10:51:18PM +0900, Masahiro Yamada wrote:
> > The minimal compiler versions, GCC 4.9 and Clang 10 support this flag.
> >
> > Here is the godbolt:
> > https://godbolt.org/z/8T4177
> >
> > Signed-off-by: Masahiro Yamada <masa...@kernel.org>
>
> For what it's worth, the commit that introduced this block is going to
> be reverted:
>
> https://lore.kernel.org/mm-commits/20200903201518.JKrRS%25a...@linux-foundation.org/


My bad - you are right.
This hunk has already gone by Nick's patch.

Thanks.



> Regardless, it was introduced in LLVM 2.7.0 in commit
> f9d41df0930986c52e198292cf875eb5d1761ece.
>
> Reviewed-by: Nathan Chancellor <natecha...@gmail.com>
>
> > ---
> >
> > Makefile | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/Makefile b/Makefile
> > index 059b36f2ea53..1b6abecc5cab 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -927,7 +927,7 @@ KBUILD_CFLAGS += -fno-strict-overflow
> > # clang sets -fmerge-all-constants by default as optimization, but this
> > # is non-conforming behavior for C and in fact breaks the kernel, so we
> > # need to disable it here generally.
> > -KBUILD_CFLAGS += $(call cc-option,-fno-merge-all-constants)
> > +KBUILD_CFLAGS += -fno-merge-all-constants
> >
> > # for gcc -fno-merge-all-constants disables everything, but it is fine
> > # to have actual conforming behavior enabled.
> > --
> > 2.25.1
> >
>
> --
> You received this message because you are subscribed to the Google Groups "Clang Built Linux" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-li...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20200910163311.GB3119896%40ubuntu-n2-xlarge-x86.



--
Best Regards
Masahiro Yamada
Reply all
Reply to author
Forward
0 new messages