On Thu, Aug 19, 2021 at 09:57:32AM +0900, Masahiro Yamada wrote: > Commit b1a1a1a09b46 ("kbuild: lto: postpone objtool") moved objtool_args > to Makefile.lib, so the arguments can be used in Makefile.modfinal as > well as Makefile.build. > > With commit 2b1d7fc05467 ("kbuild: Fix TRIM_UNUSED_KSYMS with > LTO_CLANG"), module LTO linking came back to scripts/Makefile.build > again. > > So, there is no more reason to keep objtool_args separately in > scripts/Makefile.lib. > > Get it back to the original place, close to the objtool command. Ah, yup. Good point. Nice cleanup. Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> -Kees > > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> > --- > > scripts/Makefile.build | 13 +++++++++++++ > scripts/Makefile.lib | 12 ------------ > 2 files changed, 13 insertions(+), 12 deletions(-) > > diff --git a/scripts/Makefile.build b/scripts/Makefile.build > index ea549579bfb7..31154e44c251 100644 > --- a/scripts/Makefile.build > +++ b/scripts/Makefile.build > @@ -222,6 +222,19 @@ cmd_record_mcount = $(if $(findstring $(strip $(CC_FLAGS_FTRACE)),$(_c_flags)), > endif # CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT > > ifdef CONFIG_STACK_VALIDATION > + > +# Objtool arguments are also needed for modfinal with LTO, so we define > +# then here to avoid duplication. > +objtool_args = \ > + $(if $(CONFIG_UNWINDER_ORC),orc generate,check) \ > + $(if $(part-of-module), --module,) \ > + $(if $(CONFIG_FRAME_POINTER),, --no-fp) \ > + $(if $(or $(CONFIG_GCOV_KERNEL),$(CONFIG_LTO_CLANG)), \ > + --no-unreachable,) \ > + $(if $(CONFIG_RETPOLINE), --retpoline,) \ > + $(if $(CONFIG_X86_SMAP), --uaccess,) \ > + $(if $(CONFIG_FTRACE_MCOUNT_USE_OBJTOOL), --mcount,) > + > ifndef CONFIG_LTO_CLANG > > __objtool_obj := $(objtree)/tools/objtool/objtool > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index af1c920a585c..34c4c11c4bc1 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -232,18 +232,6 @@ ifeq ($(CONFIG_LTO_CLANG),y) > mod-prelink-ext := .lto > endif > > -# Objtool arguments are also needed for modfinal with LTO, so we define > -# then here to avoid duplication. > -objtool_args = \ > - $(if $(CONFIG_UNWINDER_ORC),orc generate,check) \ > - $(if $(part-of-module), --module,) \ > - $(if $(CONFIG_FRAME_POINTER),, --no-fp) \ > - $(if $(or $(CONFIG_GCOV_KERNEL),$(CONFIG_LTO_CLANG)), \ > - --no-unreachable,) \ > - $(if $(CONFIG_RETPOLINE), --retpoline,) \ > - $(if $(CONFIG_X86_SMAP), --uaccess,) \ > - $(if $(CONFIG_FTRACE_MCOUNT_USE_OBJTOOL), --mcount,) > - > # Useful for describing the dependency of composite objects > # Usage: > # $(call multi_depend, multi_used_targets, suffix_to_remove, suffix_to_add) > -- > 2.30.2 > -- Kees Cook