On Tue, Feb 12, 2019 at 5:42 AM <ndesaulniers@xxxxxxxxxx> wrote: > > This is needed because clang doesn't select which linker to use based on > $LD but rather -fuse-ld=lld. This is problematic especially for > cc-ldoption, which checks for linker flag support via invoking the > compiler, rather than the linker. Sorry, please explain what kind of problem this patch solves. [1] $(LD) is used to link vmlinux, modules, etc. [2] $(CC) is used to link vdso, etc. and -fuse-ld= selects which linker is invoked from $(CC) Is it a problem to use a different type of linker for [1] and [2] ? Thanks. > Link: https://github.com/ClangBuiltLinux/linux/issues/342 > Suggested-by: Nathan Chancellor <natechancellor@xxxxxxxxx> > Reviewed-by: Nathan Chancellor <natechancellor@xxxxxxxxx> > Tested-by: Nathan Chancellor <natechancellor@xxxxxxxxx> > Signed-off-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> > --- > Changes V1->V2: > * add reviewed and tested by tags. > * move this addition up 2 statments so that it's properly added to > KBUILD_*FLAGS as per Nathan. > > Makefile | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/Makefile b/Makefile > index d3b65e96d183..00e8e01d23fc 100644 > --- a/Makefile > +++ b/Makefile > @@ -500,6 +500,9 @@ ifneq ($(GCC_TOOLCHAIN),) > CLANG_FLAGS += --gcc-toolchain=$(GCC_TOOLCHAIN) > endif > CLANG_FLAGS += -no-integrated-as > +ifneq ($(shell $(LD) --version 2>&1 | head -n 1 | grep LLD),) > +CLANG_FLAGS += -fuse-ld=lld > +endif > KBUILD_CFLAGS += $(CLANG_FLAGS) > KBUILD_AFLAGS += $(CLANG_FLAGS) > export CLANG_FLAGS > -- > 2.20.1.791.gb4d0f1c61a-goog > -- Best Regards Masahiro Yamada