Re: linux-next: manual merge of the tip tree with the kbuild tree

From: Masahiro Yamada
Date: Thu May 26 2022 - 22:21:46 EST


Hi Stephen, Josh,

On Tue, May 24, 2022 at 1:23 AM Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:
>
> On Mon, May 23, 2022 at 03:47:58PM +1000, Stephen Rothwell wrote:
> > Hi all,
> >
> > On Mon, 23 May 2022 14:24:31 +1000 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
> > >
> > > Today's linux-next merge of the tip tree got a conflict in:
> > >
> > > scripts/Makefile.build
> > >
> > > between commit:
> > >
> > > 0212301af7bb ("kbuild: do not create *.prelink.o for Clang LTO or IBT")
> > >
> > > from the kbuild tree and commit:
> > >
> > > 753da4179d08 ("objtool: Remove --lto and --vmlinux in favor of --link")
> > >
> > > from the tip tree.
> > >
> > > I am not sure if I fixed this up correctly, please check the final result
> > > when linux-next is released.
> > >
> > > I fixed it up (I used the former version) and can carry the fix as
> > > necessary. This is now fixed as far as linux-next is concerned, but any
> > > non trivial conflicts should be mentioned to your upstream maintainer
> > > when your tree is submitted for merging. You may also want to consider
> > > cooperating with the maintainer of the conflicting tree to minimise any
> > > particularly complex conflicts.
> >
> > That produced may warnings :-( so I tried the below resolution instead.
>
> Looks good to me. I guess the confusing bit was that in most cases,
> CONFIG_STACK_VALIDATION has been replaced with CONFIG_OBJTOOL.
>
> --
> Josh


Is this really a correct fix up?

I checked the linux-next.

It added:

$(obj)/%.o: linked-object := y

so, --linked is always passed.


Apparently, it changed the behavior.



[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.






Josh,
Could you tell me:
when should --linked be added?
(and when should --linked not be added?)








--
Best Regards
Masahiro Yamada