lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 3 Sep 2021 09:39:14 +0900 From: Masahiro Yamada <masahiroy@...nel.org> To: Kees Cook <keescook@...omium.org> Cc: Linux Kbuild mailing list <linux-kbuild@...r.kernel.org>, Michal Marek <michal.lkml@...kovi.net>, Nathan Chancellor <nathan@...nel.org>, Nick Desaulniers <ndesaulniers@...gle.com>, clang-built-linux <clang-built-linux@...glegroups.com>, Linux Kernel Mailing List <linux-kernel@...r.kernel.org> Subject: Re: [PATCH v2 06/13] kbuild: reuse $(cmd_objtool) for cmd_cc_lto_link_modules On Wed, Sep 1, 2021 at 2:35 AM Kees Cook <keescook@...omium.org> wrote: > > On Tue, Aug 31, 2021 at 04:39:57PM +0900, Masahiro Yamada wrote: > > For CONFIG_LTO_CLANG=y, the objtool processing is not possible at the > > compilation, hence postponed by the link time. > > > > Reuse $(cmd_objtool) for CONFIG_LTO_CLANG=y by defining objtool-enabled > > properly. > > > > For CONFIG_LTO_CLANG=y: > > > > objtool-enabled is off for %.o compilation > > objtool-enabled is on for %.lto link > > > > For CONFIG_LTO_CLANG=n: > > > > objtool-enabled is on for %.o compilation > > (but, it depends on OBJECT_FILE_NON_STANDARD) > > > > Set part-of-module := y for %.lto.o to avoid repeating --module. > > > > Signed-off-by: Masahiro Yamada <masahiroy@...nel.org> > > --- > > > > scripts/Makefile.build | 28 +++++++++++++++++----------- > > 1 file changed, 17 insertions(+), 11 deletions(-) > > > > diff --git a/scripts/Makefile.build b/scripts/Makefile.build > > index 21b55f37a23f..afc906cd7256 100644 > > --- a/scripts/Makefile.build > > +++ b/scripts/Makefile.build > > @@ -236,20 +236,26 @@ objtool_args = \ > > $(if $(CONFIG_X86_SMAP), --uaccess) \ > > $(if $(CONFIG_FTRACE_MCOUNT_USE_OBJTOOL), --mcount) > > > > -ifndef CONFIG_LTO_CLANG > > +cmd_objtool = $(if $(objtool-enabled), ; $(objtool) $(objtool_args) $@) > > +cmd_gen_objtooldep = $(if $(objtool-enabled), { echo ; echo '$@: $$(wildcard $(objtool))' ; } >> $(dot-target).cmd) > > + > > +endif # CONFIG_STACK_VALIDATION > > + > > +ifdef CONFIG_LTO_CLANG > > + > > +# Skip objtool for LLVM bitcode > > +$(obj)/%o: objtool-enabled := > > Is this intentionally "%o" instead of "%.o"? Good catch. No, it is not intentional. I will fix "%o" to "%.o" > (And it later overridden by the "%.lto.o" rule? No, opposite. While building %.lto.o, we want to set objtool-enabled. But, we want to cancel it for %.o -- Best Regards Masahiro Yamada
Powered by blists - more mailing lists