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 <[email protected]>
---
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
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 <[email protected]>
---
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
On Mon, Nov 5, 2018 at 7:05 PM Masahiro Yamada
<[email protected]> 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 <[email protected]>
> ---
>
> 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 <[email protected]>
Tested-by: Nick Desaulniers <[email protected]>
> endif
>
> RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register
> --
> 2.7.4
>
--
Thanks,
~Nick Desaulniers
On Mon, Nov 5, 2018 at 7:05 PM Masahiro Yamada
<[email protected]> 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 <[email protected]>
> ---
>
> 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 <[email protected]>
Tested-by: Nick Desaulniers <[email protected]>
Would you mind waiting for a tested-by from Stefan, and maybe an ack
from Greg (added to cc)?
--
Thanks,
~Nick Desaulniers
On 11/09/2018 10:29 AM, Nick Desaulniers wrote:
> On Mon, Nov 5, 2018 at 7:05 PM Masahiro Yamada
> <[email protected]> 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 <[email protected]>
>> ---
>>
>> 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 <[email protected]>
> Tested-by: Nick Desaulniers <[email protected]>
>
> Would you mind waiting for a tested-by from Stefan, and maybe an ack
> from Greg (added to cc)?
>
Acked-by: Greg Hackmann <[email protected]>
On Sat, Nov 10, 2018 at 3:35 AM Greg Hackmann <[email protected]> wrote:
>
> On 11/09/2018 10:29 AM, Nick Desaulniers wrote:
> > On Mon, Nov 5, 2018 at 7:05 PM Masahiro Yamada
> > <[email protected]> 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 <[email protected]>
> >> ---
> >>
> >> 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 <[email protected]>
> > Tested-by: Nick Desaulniers <[email protected]>
> >
> > Would you mind waiting for a tested-by from Stefan, and maybe an ack
> > from Greg (added to cc)?
> >
>
> Acked-by: Greg Hackmann <[email protected]>
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
Masahiro Yamada <[email protected]> writes:
> On Sat, Nov 10, 2018 at 3:35 AM Greg Hackmann <[email protected]> wrote:
>>
>> On 11/09/2018 10:29 AM, Nick Desaulniers wrote:
>> > On Mon, Nov 5, 2018 at 7:05 PM Masahiro Yamada
>> > <[email protected]> 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 <[email protected]>
>> >> ---
>> >>
>> >> 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 <[email protected]>
>> > Tested-by: Nick Desaulniers <[email protected]>
>> >
>> > Would you mind waiting for a tested-by from Stefan, and maybe an ack
>> > from Greg (added to cc)?
>> >
>>
>> Acked-by: Greg Hackmann <[email protected]>
>
>
> 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
On Mon, Nov 12, 2018 at 10:05 AM Michael Ellerman <[email protected]> wrote:
>
> Masahiro Yamada <[email protected]> writes:
> > On Sat, Nov 10, 2018 at 3:35 AM Greg Hackmann <[email protected]> wrote:
> >>
> >> On 11/09/2018 10:29 AM, Nick Desaulniers wrote:
> >> > On Mon, Nov 5, 2018 at 7:05 PM Masahiro Yamada
> >> > <[email protected]> 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 <[email protected]>
> >> >> ---
> >> >>
> >> >> 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 <[email protected]>
> >> > Tested-by: Nick Desaulniers <[email protected]>
> >> >
> >> > Would you mind waiting for a tested-by from Stefan, and maybe an ack
> >> > from Greg (added to cc)?
> >> >
> >>
> >> Acked-by: Greg Hackmann <[email protected]>
> >
> >
> > 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
On Mon, 12 Nov 2018 at 13:59, Masahiro Yamada
<[email protected]> wrote:
>
> On Mon, Nov 12, 2018 at 10:05 AM Michael Ellerman <[email protected]> wrote:
> >
> > Masahiro Yamada <[email protected]> writes:
> > > On Sat, Nov 10, 2018 at 3:35 AM Greg Hackmann <[email protected]> wrote:
> > >>
> > >> On 11/09/2018 10:29 AM, Nick Desaulniers wrote:
> > >> > On Mon, Nov 5, 2018 at 7:05 PM Masahiro Yamada
> > >> > <[email protected]> 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 <[email protected]>
> > >> >> ---
> > >> >>
> > >> >> 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 <[email protected]>
> > >> > Tested-by: Nick Desaulniers <[email protected]>
> > >> >
> > >> > Would you mind waiting for a tested-by from Stefan, and maybe an ack
> > >> > from Greg (added to cc)?
> > >> >
> > >>
> > >> Acked-by: Greg Hackmann <[email protected]>
> > >
> > >
> > > 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
On Tue, Nov 6, 2018 at 12:06 PM Masahiro Yamada
<[email protected]> 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 <[email protected]>
> ---
Applied to linux-kbuild.
>
> 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
On Tue, Nov 6, 2018 at 12:06 PM Masahiro Yamada
<[email protected]> 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 <[email protected]>
> ---
Applied to linux-kbuild.
> 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