On Thu, Apr 2, 2020 at 10:02 AM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote: > > Hi Kees, > > On Thu, Apr 2, 2020 at 5:18 PM Kees Cook <keescook@xxxxxxxxxxxx> wrote: > > > > When doing Clang builds of the kernel, it is possible to link with > > either ld.bfd (binutils) or ld.lld (LLVM), but it is not possible to > > discover this from a running kernel. Add the "$LD -v" output to > > /proc/version. > > > > Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx> > > --- > > init/Makefile | 2 +- > > scripts/mkcompile_h | 8 ++++++-- > > 2 files changed, 7 insertions(+), 3 deletions(-) > > > > diff --git a/init/Makefile b/init/Makefile > > index 6246a06364d0..82c15bdb42d7 100644 > > --- a/init/Makefile > > +++ b/init/Makefile > > @@ -35,4 +35,4 @@ include/generated/compile.h: FORCE > > @$($(quiet)chk_compile.h) > > $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \ > > "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" \ > > - "$(CONFIG_PREEMPT_RT)" "$(CC) $(KBUILD_CFLAGS)" > > + "$(CONFIG_PREEMPT_RT)" "$(LD)" "$(CC) $(KBUILD_CFLAGS)" > > diff --git a/scripts/mkcompile_h b/scripts/mkcompile_h > > index 3a5a4b210c86..f98c07709370 100755 > > --- a/scripts/mkcompile_h > > +++ b/scripts/mkcompile_h > > @@ -6,7 +6,8 @@ ARCH=$2 > > SMP=$3 > > PREEMPT=$4 > > PREEMPT_RT=$5 > > -CC=$6 > > +LD=$6 > > +CC=$7 > > > Just a nit. > > If you just append 'LD', > you do not need to touch the 'CC=$6' line. > > > If you do not mind, I will fold the following > on top of your patch. With Kees patch + Masahiro's diff applied: $ cat /proc/version Linux version 5.6.0-rc7-next-20200330+ (ndesaulniers@<hostname scrubbed>) (clang version 11.0.0 (git@xxxxxxxxxx:llvm/llvm-project.git 6d71daed03ced011cd25f4e4f4122a368fdc757d), LLD 11.0.0 (git@xxxxxxxxxx:llvm/llvm-project.git 6d71daed03ced011cd25f4e4f4122a368fdc757d)) #167 SMP Thu Apr 2 11:17:36 PDT 2020 Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> Tested-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> We could actually use this in Android for a VTS test I've, uh, been meaning to write. Also, LOL at scrubbing the "compatible with" part, reminds me of user agent strings in the browser, which are god awful. > --- a/init/Makefile > +++ b/init/Makefile > @@ -35,4 +35,4 @@ include/generated/compile.h: FORCE > @$($(quiet)chk_compile.h) > $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \ > "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" \ > - "$(CONFIG_PREEMPT_RT)" "$(LD)" "$(CC) $(KBUILD_CFLAGS)" > + "$(CONFIG_PREEMPT_RT)" "$(CC) $(KBUILD_CFLAGS)" "$(LD)" > diff --git a/scripts/mkcompile_h b/scripts/mkcompile_h > index 8b38a96163e2..5b80a4699740 100755 > --- a/scripts/mkcompile_h > +++ b/scripts/mkcompile_h > @@ -6,8 +6,8 @@ ARCH=$2 > SMP=$3 > PREEMPT=$4 > PREEMPT_RT=$5 > -LD=$6 > -CC=$7 > +CC=$6 > +LD=$7 -- Thanks, ~Nick Desaulniers