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

From: Kees Cook
Date: Fri Aug 16 2019 - 14:03:31 EST


On Thu, Aug 15, 2019 at 10:21:29PM -0700, Andrii Nakryiko wrote:
> On Thu, Aug 15, 2019 at 7:42 PM Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
> >
> > Hi all,
> >
> > Today's linux-next merge of the net-next tree got a conflict in:
> >
> > scripts/link-vmlinux.sh
> >
> > between commit:
> >
> > e167191e4a8a ("kbuild: Parameterize kallsyms generation and correct reporting")
> >
> > from the kbuild tree and commits:
> >
> > 341dfcf8d78e ("btf: expose BTF info through sysfs")
> > 7fd785685e22 ("btf: rename /sys/kernel/btf/kernel into /sys/kernel/btf/vmlinux")
> >
> > from the net-next tree.
> >
> > I fixed it up (I think - see below) and can carry the fix as necessary.
>
> Thanks, Stephen! Looks good except one minor issue below.
>
> > 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.
> >
> > --
> > Cheers,
> > Stephen Rothwell
> >
> > diff --cc scripts/link-vmlinux.sh
> > index 2438a9faf3f1,c31193340108..000000000000
> > --- a/scripts/link-vmlinux.sh
> > +++ b/scripts/link-vmlinux.sh
> > @@@ -56,11 -56,10 +56,11 @@@ modpost_link(
> > }
> >
> > # Link of vmlinux
> > - # ${1} - optional extra .o files
> > - # ${2} - output file
> > + # ${1} - output file
> > + # ${@:2} - optional extra .o files
> > vmlinux_link()
> > {
> > + info LD ${2}
>
> This needs to be ${1}.
>
> > local lds="${objtree}/${KBUILD_LDS}"
> > local objects
> >
> > @@@ -139,18 -149,6 +150,18 @@@ kallsyms(
> > ${CC} ${aflags} -c -o ${2} ${afile}
> > }
> >
> > +# Perform one step in kallsyms generation, including temporary linking of
> > +# vmlinux.
> > +kallsyms_step()
> > +{
> > + kallsymso_prev=${kallsymso}
> > + kallsymso=.tmp_kallsyms${1}.o
> > + kallsyms_vmlinux=.tmp_vmlinux${1}
> > +
> > - vmlinux_link "${kallsymso_prev}" ${kallsyms_vmlinux}
> > ++ vmlinux_link ${kallsyms_vmlinux} "${kallsymso_prev}" ${btf_vmlinux_bin_o}

Good cleanup on the "optional .o files" reordering! With your ordering
change, I think the ""s around ${kallsymso_prev} here are no longer needed
(which makes it read a bit more nicely).

> > + kallsyms ${kallsyms_vmlinux} ${kallsymso}
> > +}
> > +
> > # Create map file with all symbols from ${1}
> > # See mksymap for additional details
> > mksysmap()
> > @@@ -228,8 -227,14 +240,15 @@@ ${MAKE} -f "${srctree}/scripts/Makefile
> > info MODINFO modules.builtin.modinfo
> > ${OBJCOPY} -j .modinfo -O binary vmlinux.o modules.builtin.modinfo
> >
> > + btf_vmlinux_bin_o=""
> > + if [ -n "${CONFIG_DEBUG_INFO_BTF}" ]; then
> > + if gen_btf .tmp_vmlinux.btf .btf.vmlinux.bin.o ; then
> > + btf_vmlinux_bin_o=.btf.vmlinux.bin.o
> > + fi
> > + fi
> > +
> > kallsymso=""
> > +kallsymso_prev=""
> > kallsyms_vmlinux=""
> > if [ -n "${CONFIG_KALLSYMS}" ]; then
> >
> > @@@ -268,11 -285,8 +287,7 @@@
> > fi
> > fi
> >
> > - vmlinux_link "${kallsymso}" vmlinux
> > -
> > - if [ -n "${CONFIG_DEBUG_INFO_BTF}" ]; then
> > - gen_btf vmlinux
> > - fi
> > -info LD vmlinux
> > + vmlinux_link vmlinux "${kallsymso}" "${btf_vmlinux_bin_o}"

And, I think, also not here for either trailing argument.

> >
> > if [ -n "${CONFIG_BUILDTIME_EXTABLE_SORT}" ]; then
> > info SORTEX vmlinux

-Kees

--
Kees Cook