From: Peter Zijlstra > Sent: 17 March 2022 19:45 > > On Wed, Mar 16, 2022 at 01:28:08AM +0900, Masahiro Yamada wrote: > > On Tue, Mar 15, 2022 at 5:15 PM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > > > Index: linux-2.6/scripts/Makefile.build > > > =================================================================== > > > --- linux-2.6.orig/scripts/Makefile.build > > > +++ linux-2.6/scripts/Makefile.build > > > @@ -86,12 +86,18 @@ ifdef need-builtin > > > targets-for-builtin += $(obj)/built-in.a > > > endif > > > > > > -targets-for-modules := $(patsubst %.o, %.mod, $(filter %.o, $(obj-m))) > > > +targets-for-modules := > > > > > > Why do you need to change this line? > > > > > > > > > > > > ifdef CONFIG_LTO_CLANG > > > targets-for-modules += $(patsubst %.o, %.lto.o, $(filter %.o, $(obj-m))) > > > endif > > > > > > +ifdef CONFIG_X86_KERNEL_IBT > > > +targets-for-modules += $(patsubst %.o, %.objtool, $(filter %.o, $(obj-m))) > > > +endif > > > + > > > +targets-for-modules += $(patsubst %.o, %.mod, $(filter %.o, $(obj-m))) > > > + > > > ifdef need-modorder > > > targets-for-modules += $(obj)/modules.order > > > endif > > The thinking was that by having the .objtool rule before the .mod rule, > objtool runs first. If mod runs before objtool, objtool will change the > timestamp and then mod will get remade, even if nothing's changed. I don't think it should make any difference. A quick peruse didn't show where targets-for-modules actually ends up being used (after being added to targets). But in a makefile, if you have: x: a b nothing requires make to generate 'a' before or after 'b'. gmake might have something similar to nmake's .ORDER directive but I don't remember seeing it defined anywhere. You can add 'b: a' to force the order (which is how .ORDER ends up being implemented). But I didn't spot anything of that nature. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)