On Fri, May 27, 2022 at 1:47 PM Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote: > > On Fri, May 27, 2022 at 11:19:02AM +0900, Masahiro Yamada wrote: > > [1] original behavior in Josh's commit > > > > $ git checkout 753da4179d08b625d8df72e97724e22749969fd3 > > $ make defconfig > > $ make -j8 kernel/ > > $ head -n 1 kernel/.fork.o.cmd > > > > > > I do not see the "--linked" parameter in the objtool command. > > > > > > > > > > [2] behavior in linux-next > > > > > > $ git checkout next-20220523 > > $ make defconfig > > $ make -j8 kernel/ > > $ head -n 1 kernel/.fork.o.cmd > > > > I see the "--linked" parameter in the objtool command. > > > > kernel/fork.o is a direct output from GCC, > > not from linker. > > Yes, good catch. That flag should only be used for linked objects like > vmlinux.o or some_module.o. > > Objtool only runs on such objects when CONFIG_LTO_CLANG, > CONFIG_X86_KERNEL_IBT, or CONFIG_NOINSTR_VALIDATION (vmlinux.o-only) is > enabled. > > -- > Josh When CONFIG_LTO_CLANG=y or CONFIG_X86_KERNEL_IBT=y is "--linked" necessary for single-object modules? "single-object module" means a module that consists of only one object. See this figure: https://patchwork.kernel.org/project/linux-kbuild/patch/20220513113930.10488-6-masahiroy@xxxxxxxxxx/ In your commit, --linked is passed to all *.prelink.o whether it consists of a single object or links multiple objects. -- Best Regards Masahiro Yamada