[PATCH v2 1/2] kbuild: add -no-integrated-as Clang option unconditionally

Subsystems: kernel build + files below scripts/ (unless maintained elsewhere), the rest

STALE2822d

11 messages, 5 authors, 2018-11-13 · open the first message on its own page

[PATCH v2 1/2] kbuild: add -no-integrated-as Clang option unconditionally

From: Masahiro Yamada <hidden>
Date: 2018-11-06 03:06:44

We are still a way off the Clang's integrated assembler support for
the kernel. Hence, -no-integrated-as is mandatory to build the kernel
with Clang. If you had an ancient version of Clang that does not
recognize this option, you would not be able to compile the kernel
anyway.

Signed-off-by: Masahiro Yamada <redacted>
---

Changes in v2:
  - New patch

 Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 93315eb..da11700 100644
--- a/Makefile
+++ b/Makefile
@@ -497,8 +497,8 @@ CLANG_GCC_TC	:= --gcc-toolchain=$(GCC_TOOLCHAIN)
 endif
 KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
 KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_CFLAGS += $(call cc-option, -no-integrated-as)
-KBUILD_AFLAGS += $(call cc-option, -no-integrated-as)
+KBUILD_CFLAGS += -no-integrated-as
+KBUILD_AFLAGS += -no-integrated-as
 endif
 
 RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register
-- 
2.7.4

[PATCH v2 2/2] kbuild: consolidate Clang compiler flags

From: Masahiro Yamada <hidden>
Date: 2018-11-06 03:06:45

Collect basic Clang options such as --target, --prefix, --gcc-toolchain,
-no-integrated-as into a single variable CLANG_FLAGS so that it can be
easily reused in other parts of Makefile.

Signed-off-by: Masahiro Yamada <redacted>
---

Changes in v2:
 - Use := flavor instead of = because $(CLANG_FLAGS) is expanded soon anyway

 Makefile | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index da11700..e173a73 100644
--- a/Makefile
+++ b/Makefile
@@ -487,18 +487,17 @@ endif
 
 ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
 ifneq ($(CROSS_COMPILE),)
-CLANG_TARGET	:= --target=$(notdir $(CROSS_COMPILE:%-=%))
+CLANG_FLAGS	:= --target=$(notdir $(CROSS_COMPILE:%-=%))
 GCC_TOOLCHAIN_DIR := $(dir $(shell which $(LD)))
-CLANG_PREFIX	:= --prefix=$(GCC_TOOLCHAIN_DIR)
+CLANG_FLAGS	+= --prefix=$(GCC_TOOLCHAIN_DIR)
 GCC_TOOLCHAIN	:= $(realpath $(GCC_TOOLCHAIN_DIR)/..)
 endif
 ifneq ($(GCC_TOOLCHAIN),)
-CLANG_GCC_TC	:= --gcc-toolchain=$(GCC_TOOLCHAIN)
+CLANG_FLAGS	+= --gcc-toolchain=$(GCC_TOOLCHAIN)
 endif
-KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_CFLAGS += -no-integrated-as
-KBUILD_AFLAGS += -no-integrated-as
+CLANG_FLAGS	+= -no-integrated-as
+KBUILD_CFLAGS	+= $(CLANG_FLAGS)
+KBUILD_AFLAGS	+= $(CLANG_FLAGS)
 endif
 
 RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register
-- 
2.7.4

Re: [PATCH v2 1/2] kbuild: add -no-integrated-as Clang option unconditionally

From: Nick Desaulniers <ndesaulniers@google.com>
Date: 2018-11-09 18:09:08

On Mon, Nov 5, 2018 at 7:05 PM Masahiro Yamada
[off-list ref] wrote:
quoted hunk
We are still a way off the Clang's integrated assembler support for
the kernel. Hence, -no-integrated-as is mandatory to build the kernel
with Clang. If you had an ancient version of Clang that does not
recognize this option, you would not be able to compile the kernel
anyway.

Signed-off-by: Masahiro Yamada <redacted>
---

Changes in v2:
  - New patch

 Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 93315eb..da11700 100644
--- a/Makefile
+++ b/Makefile
@@ -497,8 +497,8 @@ CLANG_GCC_TC        := --gcc-toolchain=$(GCC_TOOLCHAIN)
 endif
 KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
 KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_CFLAGS += $(call cc-option, -no-integrated-as)
-KBUILD_AFLAGS += $(call cc-option, -no-integrated-as)
+KBUILD_CFLAGS += -no-integrated-as
+KBUILD_AFLAGS += -no-integrated-as
Sorry for the delay in review.
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
 endif

 RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register
--
2.7.4

-- 
Thanks,
~Nick Desaulniers

Re: [PATCH v2 2/2] kbuild: consolidate Clang compiler flags

From: Nick Desaulniers <ndesaulniers@google.com>
Date: 2018-11-09 18:29:49

On Mon, Nov 5, 2018 at 7:05 PM Masahiro Yamada
[off-list ref] wrote:
quoted hunk
Collect basic Clang options such as --target, --prefix, --gcc-toolchain,
-no-integrated-as into a single variable CLANG_FLAGS so that it can be
easily reused in other parts of Makefile.

Signed-off-by: Masahiro Yamada <redacted>
---

Changes in v2:
 - Use := flavor instead of = because $(CLANG_FLAGS) is expanded soon anyway

 Makefile | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index da11700..e173a73 100644
--- a/Makefile
+++ b/Makefile
@@ -487,18 +487,17 @@ endif

 ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
 ifneq ($(CROSS_COMPILE),)
-CLANG_TARGET   := --target=$(notdir $(CROSS_COMPILE:%-=%))
+CLANG_FLAGS    := --target=$(notdir $(CROSS_COMPILE:%-=%))
 GCC_TOOLCHAIN_DIR := $(dir $(shell which $(LD)))
-CLANG_PREFIX   := --prefix=$(GCC_TOOLCHAIN_DIR)
+CLANG_FLAGS    += --prefix=$(GCC_TOOLCHAIN_DIR)
 GCC_TOOLCHAIN  := $(realpath $(GCC_TOOLCHAIN_DIR)/..)
 endif
 ifneq ($(GCC_TOOLCHAIN),)
-CLANG_GCC_TC   := --gcc-toolchain=$(GCC_TOOLCHAIN)
+CLANG_FLAGS    += --gcc-toolchain=$(GCC_TOOLCHAIN)
 endif
-KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_CFLAGS += -no-integrated-as
-KBUILD_AFLAGS += -no-integrated-as
+CLANG_FLAGS    += -no-integrated-as
+KBUILD_CFLAGS  += $(CLANG_FLAGS)
+KBUILD_AFLAGS  += $(CLANG_FLAGS)
 endif

 RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register
--
2.7.4
Thanks for this patch, Masahiro, it's a good simplification.
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>

Would you mind waiting for a tested-by from Stefan, and maybe an ack
from Greg (added to cc)?
-- 
Thanks,
~Nick Desaulniers

Re: [PATCH v2 2/2] kbuild: consolidate Clang compiler flags

From: Greg Hackmann <hidden>
Date: 2018-11-09 18:34:27

On 11/09/2018 10:29 AM, Nick Desaulniers wrote:
On Mon, Nov 5, 2018 at 7:05 PM Masahiro Yamada
[off-list ref] wrote:
quoted
Collect basic Clang options such as --target, --prefix, --gcc-toolchain,
-no-integrated-as into a single variable CLANG_FLAGS so that it can be
easily reused in other parts of Makefile.

Signed-off-by: Masahiro Yamada <redacted>
---

Changes in v2:
  - Use := flavor instead of = because $(CLANG_FLAGS) is expanded soon anyway

  Makefile | 13 ++++++-------
  1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index da11700..e173a73 100644
--- a/Makefile
+++ b/Makefile
@@ -487,18 +487,17 @@ endif

  ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
  ifneq ($(CROSS_COMPILE),)
-CLANG_TARGET   := --target=$(notdir $(CROSS_COMPILE:%-=%))
+CLANG_FLAGS    := --target=$(notdir $(CROSS_COMPILE:%-=%))
  GCC_TOOLCHAIN_DIR := $(dir $(shell which $(LD)))
-CLANG_PREFIX   := --prefix=$(GCC_TOOLCHAIN_DIR)
+CLANG_FLAGS    += --prefix=$(GCC_TOOLCHAIN_DIR)
  GCC_TOOLCHAIN  := $(realpath $(GCC_TOOLCHAIN_DIR)/..)
  endif
  ifneq ($(GCC_TOOLCHAIN),)
-CLANG_GCC_TC   := --gcc-toolchain=$(GCC_TOOLCHAIN)
+CLANG_FLAGS    += --gcc-toolchain=$(GCC_TOOLCHAIN)
  endif
-KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_CFLAGS += -no-integrated-as
-KBUILD_AFLAGS += -no-integrated-as
+CLANG_FLAGS    += -no-integrated-as
+KBUILD_CFLAGS  += $(CLANG_FLAGS)
+KBUILD_AFLAGS  += $(CLANG_FLAGS)
  endif

  RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register
--
2.7.4
Thanks for this patch, Masahiro, it's a good simplification.
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>

Would you mind waiting for a tested-by from Stefan, and maybe an ack
from Greg (added to cc)?
Acked-by: Greg Hackmann <redacted>

Re: [PATCH v2 2/2] kbuild: consolidate Clang compiler flags

From: Masahiro Yamada <hidden>
Date: 2018-11-11 14:04:44

On Sat, Nov 10, 2018 at 3:35 AM Greg Hackmann [off-list ref] wrote:
On 11/09/2018 10:29 AM, Nick Desaulniers wrote:
quoted
On Mon, Nov 5, 2018 at 7:05 PM Masahiro Yamada
[off-list ref] wrote:
quoted
Collect basic Clang options such as --target, --prefix, --gcc-toolchain,
-no-integrated-as into a single variable CLANG_FLAGS so that it can be
easily reused in other parts of Makefile.

Signed-off-by: Masahiro Yamada <redacted>
---

Changes in v2:
  - Use := flavor instead of = because $(CLANG_FLAGS) is expanded soon anyway

  Makefile | 13 ++++++-------
  1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index da11700..e173a73 100644
--- a/Makefile
+++ b/Makefile
@@ -487,18 +487,17 @@ endif

  ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
  ifneq ($(CROSS_COMPILE),)
-CLANG_TARGET   := --target=$(notdir $(CROSS_COMPILE:%-=%))
+CLANG_FLAGS    := --target=$(notdir $(CROSS_COMPILE:%-=%))
  GCC_TOOLCHAIN_DIR := $(dir $(shell which $(LD)))
-CLANG_PREFIX   := --prefix=$(GCC_TOOLCHAIN_DIR)
+CLANG_FLAGS    += --prefix=$(GCC_TOOLCHAIN_DIR)
  GCC_TOOLCHAIN  := $(realpath $(GCC_TOOLCHAIN_DIR)/..)
  endif
  ifneq ($(GCC_TOOLCHAIN),)
-CLANG_GCC_TC   := --gcc-toolchain=$(GCC_TOOLCHAIN)
+CLANG_FLAGS    += --gcc-toolchain=$(GCC_TOOLCHAIN)
  endif
-KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_CFLAGS += -no-integrated-as
-KBUILD_AFLAGS += -no-integrated-as
+CLANG_FLAGS    += -no-integrated-as
+KBUILD_CFLAGS  += $(CLANG_FLAGS)
+KBUILD_AFLAGS  += $(CLANG_FLAGS)
  endif

  RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register
--
2.7.4
Thanks for this patch, Masahiro, it's a good simplification.
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>

Would you mind waiting for a tested-by from Stefan, and maybe an ack
from Greg (added to cc)?
Acked-by: Greg Hackmann <redacted>

Thanks for your review!


So, how to organize this series, and Joel's one together?

I'd like Joel to use this series as a base for his work.
(https://lore.kernel.org/patchwork/patch/1006696/)

It will be much cleaner.


Shall I merge all the patches to kbuild tree, or
maybe will they go through powerpc tree?




--
Best Regards
Masahiro Yamada

Re: [PATCH v2 2/2] kbuild: consolidate Clang compiler flags

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2018-11-12 01:05:24

Masahiro Yamada [off-list ref] writes:
On Sat, Nov 10, 2018 at 3:35 AM Greg Hackmann [off-list ref] wrote:
quoted
On 11/09/2018 10:29 AM, Nick Desaulniers wrote:
quoted
On Mon, Nov 5, 2018 at 7:05 PM Masahiro Yamada
[off-list ref] wrote:
quoted
Collect basic Clang options such as --target, --prefix, --gcc-toolchain,
-no-integrated-as into a single variable CLANG_FLAGS so that it can be
easily reused in other parts of Makefile.

Signed-off-by: Masahiro Yamada <redacted>
---

Changes in v2:
  - Use := flavor instead of = because $(CLANG_FLAGS) is expanded soon anyway

  Makefile | 13 ++++++-------
  1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index da11700..e173a73 100644
--- a/Makefile
+++ b/Makefile
@@ -487,18 +487,17 @@ endif

  ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
  ifneq ($(CROSS_COMPILE),)
-CLANG_TARGET   := --target=$(notdir $(CROSS_COMPILE:%-=%))
+CLANG_FLAGS    := --target=$(notdir $(CROSS_COMPILE:%-=%))
  GCC_TOOLCHAIN_DIR := $(dir $(shell which $(LD)))
-CLANG_PREFIX   := --prefix=$(GCC_TOOLCHAIN_DIR)
+CLANG_FLAGS    += --prefix=$(GCC_TOOLCHAIN_DIR)
  GCC_TOOLCHAIN  := $(realpath $(GCC_TOOLCHAIN_DIR)/..)
  endif
  ifneq ($(GCC_TOOLCHAIN),)
-CLANG_GCC_TC   := --gcc-toolchain=$(GCC_TOOLCHAIN)
+CLANG_FLAGS    += --gcc-toolchain=$(GCC_TOOLCHAIN)
  endif
-KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_CFLAGS += -no-integrated-as
-KBUILD_AFLAGS += -no-integrated-as
+CLANG_FLAGS    += -no-integrated-as
+KBUILD_CFLAGS  += $(CLANG_FLAGS)
+KBUILD_AFLAGS  += $(CLANG_FLAGS)
  endif

  RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register
--
2.7.4
Thanks for this patch, Masahiro, it's a good simplification.
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>

Would you mind waiting for a tested-by from Stefan, and maybe an ack
from Greg (added to cc)?
Acked-by: Greg Hackmann <redacted>

Thanks for your review!


So, how to organize this series, and Joel's one together?

I'd like Joel to use this series as a base for his work.
(https://lore.kernel.org/patchwork/patch/1006696/)

It will be much cleaner.


Shall I merge all the patches to kbuild tree, or
maybe will they go through powerpc tree?
Joel's changes are fairly small so you may as well merge them along with
the rest of the series, if that's OK with you and Joel.

cheers

Re: [PATCH v2 2/2] kbuild: consolidate Clang compiler flags

From: Masahiro Yamada <hidden>
Date: 2018-11-12 03:29:12

On Mon, Nov 12, 2018 at 10:05 AM Michael Ellerman [off-list ref] wrote:
Masahiro Yamada [off-list ref] writes:
quoted
On Sat, Nov 10, 2018 at 3:35 AM Greg Hackmann [off-list ref] wrote:
quoted
On 11/09/2018 10:29 AM, Nick Desaulniers wrote:
quoted
On Mon, Nov 5, 2018 at 7:05 PM Masahiro Yamada
[off-list ref] wrote:
quoted
Collect basic Clang options such as --target, --prefix, --gcc-toolchain,
-no-integrated-as into a single variable CLANG_FLAGS so that it can be
easily reused in other parts of Makefile.

Signed-off-by: Masahiro Yamada <redacted>
---

Changes in v2:
  - Use := flavor instead of = because $(CLANG_FLAGS) is expanded soon anyway

  Makefile | 13 ++++++-------
  1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index da11700..e173a73 100644
--- a/Makefile
+++ b/Makefile
@@ -487,18 +487,17 @@ endif

  ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
  ifneq ($(CROSS_COMPILE),)
-CLANG_TARGET   := --target=$(notdir $(CROSS_COMPILE:%-=%))
+CLANG_FLAGS    := --target=$(notdir $(CROSS_COMPILE:%-=%))
  GCC_TOOLCHAIN_DIR := $(dir $(shell which $(LD)))
-CLANG_PREFIX   := --prefix=$(GCC_TOOLCHAIN_DIR)
+CLANG_FLAGS    += --prefix=$(GCC_TOOLCHAIN_DIR)
  GCC_TOOLCHAIN  := $(realpath $(GCC_TOOLCHAIN_DIR)/..)
  endif
  ifneq ($(GCC_TOOLCHAIN),)
-CLANG_GCC_TC   := --gcc-toolchain=$(GCC_TOOLCHAIN)
+CLANG_FLAGS    += --gcc-toolchain=$(GCC_TOOLCHAIN)
  endif
-KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_CFLAGS += -no-integrated-as
-KBUILD_AFLAGS += -no-integrated-as
+CLANG_FLAGS    += -no-integrated-as
+KBUILD_CFLAGS  += $(CLANG_FLAGS)
+KBUILD_AFLAGS  += $(CLANG_FLAGS)
  endif

  RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register
--
2.7.4
Thanks for this patch, Masahiro, it's a good simplification.
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>

Would you mind waiting for a tested-by from Stefan, and maybe an ack
from Greg (added to cc)?
Acked-by: Greg Hackmann <redacted>

Thanks for your review!


So, how to organize this series, and Joel's one together?

I'd like Joel to use this series as a base for his work.
(https://lore.kernel.org/patchwork/patch/1006696/)

It will be much cleaner.


Shall I merge all the patches to kbuild tree, or
maybe will they go through powerpc tree?
Joel's changes are fairly small so you may as well merge them along with
the rest of the series, if that's OK with you and Joel.

OK, I will.


Joel,
If you send v2, I will merge it to kbuild tree.



Thanks.



-- 
Best Regards
Masahiro Yamada

Re: [PATCH v2 2/2] kbuild: consolidate Clang compiler flags

From: Joel Stanley <joel@jms.id.au>
Date: 2018-11-12 04:22:52

On Mon, 12 Nov 2018 at 13:59, Masahiro Yamada
[off-list ref] wrote:
On Mon, Nov 12, 2018 at 10:05 AM Michael Ellerman [off-list ref] wrote:
quoted
Masahiro Yamada [off-list ref] writes:
quoted
On Sat, Nov 10, 2018 at 3:35 AM Greg Hackmann [off-list ref] wrote:
quoted
On 11/09/2018 10:29 AM, Nick Desaulniers wrote:
quoted
On Mon, Nov 5, 2018 at 7:05 PM Masahiro Yamada
[off-list ref] wrote:
quoted
Collect basic Clang options such as --target, --prefix, --gcc-toolchain,
-no-integrated-as into a single variable CLANG_FLAGS so that it can be
easily reused in other parts of Makefile.

Signed-off-by: Masahiro Yamada <redacted>
---

Changes in v2:
  - Use := flavor instead of = because $(CLANG_FLAGS) is expanded soon anyway

  Makefile | 13 ++++++-------
  1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index da11700..e173a73 100644
--- a/Makefile
+++ b/Makefile
@@ -487,18 +487,17 @@ endif

  ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
  ifneq ($(CROSS_COMPILE),)
-CLANG_TARGET   := --target=$(notdir $(CROSS_COMPILE:%-=%))
+CLANG_FLAGS    := --target=$(notdir $(CROSS_COMPILE:%-=%))
  GCC_TOOLCHAIN_DIR := $(dir $(shell which $(LD)))
-CLANG_PREFIX   := --prefix=$(GCC_TOOLCHAIN_DIR)
+CLANG_FLAGS    += --prefix=$(GCC_TOOLCHAIN_DIR)
  GCC_TOOLCHAIN  := $(realpath $(GCC_TOOLCHAIN_DIR)/..)
  endif
  ifneq ($(GCC_TOOLCHAIN),)
-CLANG_GCC_TC   := --gcc-toolchain=$(GCC_TOOLCHAIN)
+CLANG_FLAGS    += --gcc-toolchain=$(GCC_TOOLCHAIN)
  endif
-KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_CFLAGS += -no-integrated-as
-KBUILD_AFLAGS += -no-integrated-as
+CLANG_FLAGS    += -no-integrated-as
+KBUILD_CFLAGS  += $(CLANG_FLAGS)
+KBUILD_AFLAGS  += $(CLANG_FLAGS)
  endif

  RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register
--
2.7.4
Thanks for this patch, Masahiro, it's a good simplification.
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>

Would you mind waiting for a tested-by from Stefan, and maybe an ack
from Greg (added to cc)?
Acked-by: Greg Hackmann <redacted>

Thanks for your review!


So, how to organize this series, and Joel's one together?

I'd like Joel to use this series as a base for his work.
(https://lore.kernel.org/patchwork/patch/1006696/)

It will be much cleaner.


Shall I merge all the patches to kbuild tree, or
maybe will they go through powerpc tree?
Joel's changes are fairly small so you may as well merge them along with
the rest of the series, if that's OK with you and Joel.

OK, I will.


Joel,
If you send v2, I will merge it to kbuild tree.
Thanks, I've done that now.

Cheers,

Joel

Re: [PATCH v2 1/2] kbuild: add -no-integrated-as Clang option unconditionally

From: Masahiro Yamada <hidden>
Date: 2018-11-13 23:25:09

On Tue, Nov 6, 2018 at 12:06 PM Masahiro Yamada
[off-list ref] wrote:
We are still a way off the Clang's integrated assembler support for
the kernel. Hence, -no-integrated-as is mandatory to build the kernel
with Clang. If you had an ancient version of Clang that does not
recognize this option, you would not be able to compile the kernel
anyway.

Signed-off-by: Masahiro Yamada <redacted>
---
Applied to linux-kbuild.

quoted hunk
Changes in v2:
  - New patch

 Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 93315eb..da11700 100644
--- a/Makefile
+++ b/Makefile
@@ -497,8 +497,8 @@ CLANG_GCC_TC        := --gcc-toolchain=$(GCC_TOOLCHAIN)
 endif
 KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
 KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_CFLAGS += $(call cc-option, -no-integrated-as)
-KBUILD_AFLAGS += $(call cc-option, -no-integrated-as)
+KBUILD_CFLAGS += -no-integrated-as
+KBUILD_AFLAGS += -no-integrated-as
 endif

 RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register
--
2.7.4

-- 
Best Regards
Masahiro Yamada

Re: [PATCH v2 2/2] kbuild: consolidate Clang compiler flags

From: Masahiro Yamada <hidden>
Date: 2018-11-13 23:26:00

On Tue, Nov 6, 2018 at 12:06 PM Masahiro Yamada
[off-list ref] wrote:
Collect basic Clang options such as --target, --prefix, --gcc-toolchain,
-no-integrated-as into a single variable CLANG_FLAGS so that it can be
easily reused in other parts of Makefile.

Signed-off-by: Masahiro Yamada <redacted>
---

Applied to linux-kbuild.

quoted hunk
Changes in v2:
 - Use := flavor instead of = because $(CLANG_FLAGS) is expanded soon anyway

 Makefile | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index da11700..e173a73 100644
--- a/Makefile
+++ b/Makefile
@@ -487,18 +487,17 @@ endif

 ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
 ifneq ($(CROSS_COMPILE),)
-CLANG_TARGET   := --target=$(notdir $(CROSS_COMPILE:%-=%))
+CLANG_FLAGS    := --target=$(notdir $(CROSS_COMPILE:%-=%))
 GCC_TOOLCHAIN_DIR := $(dir $(shell which $(LD)))
-CLANG_PREFIX   := --prefix=$(GCC_TOOLCHAIN_DIR)
+CLANG_FLAGS    += --prefix=$(GCC_TOOLCHAIN_DIR)
 GCC_TOOLCHAIN  := $(realpath $(GCC_TOOLCHAIN_DIR)/..)
 endif
 ifneq ($(GCC_TOOLCHAIN),)
-CLANG_GCC_TC   := --gcc-toolchain=$(GCC_TOOLCHAIN)
+CLANG_FLAGS    += --gcc-toolchain=$(GCC_TOOLCHAIN)
 endif
-KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
-KBUILD_CFLAGS += -no-integrated-as
-KBUILD_AFLAGS += -no-integrated-as
+CLANG_FLAGS    += -no-integrated-as
+KBUILD_CFLAGS  += $(CLANG_FLAGS)
+KBUILD_AFLAGS  += $(CLANG_FLAGS)
 endif

 RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register
--
2.7.4

-- 
Best Regards
Masahiro Yamada
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help