Re: [PATCH v2 3/4] Kbuild: Create intermediate vmlinux build with relocations preserved

Masahiro Yamada
2025-03-13T10:30:19Z

On Thu, Mar 13, 2025 at 7:18 PM Ard Biesheuvel <ardb@kernel.org> wrote:
>
> On Thu, 13 Mar 2025 at 10:34, Ard Biesheuvel <ardb@kernel.org> wrote:
> >
> > On Thu, 13 Mar 2025 at 10:21, kernel test robot <lkp@intel.com> wrote:
> > >
> > > Hi Ard,
> > >
> > > kernel test robot noticed the following build errors:
> > >
> > > [auto build test ERROR on masahiroy-kbuild/for-next]
> > > [also build test ERROR on masahiroy-kbuild/fixes tip/x86/core s390/features linus/master v6.14-rc6 next-20250312]
> > > [If your patch is applied to the wrong git tree, kindly drop us a note.
> > > And when submitting patch, we suggest to use '--base' as documented in
> > > https://git-scm.com/docs/git-format-patch#_base_tree_information]
> > >
> > > url: https://github.com/intel-lab-lkp/linux/commits/Ard-Biesheuvel/Kbuild-link-vmlinux-sh-Make-output-file-name-configurable/20250311-190926
> > > base: https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git for-next
> > > patch link: https://lore.kernel.org/r/20250311110616.148682-9-ardb%2Bgit%40google.com
> > > patch subject: [PATCH v2 3/4] Kbuild: Create intermediate vmlinux build with relocations preserved
> > > config: x86_64-randconfig-076-20250313 (https://download.01.org/0day-ci/archive/20250313/202503131715.Fb6CfjhT-lkp@intel.com/config)
> > > compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
> > > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250313/202503131715.Fb6CfjhT-lkp@intel.com/reproduce)
> > >
> > > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > > the same patch/commit), kindly add following tags
> > > | Reported-by: kernel test robot <lkp@intel.com>
> > > | Closes: https://lore.kernel.org/oe-kbuild-all/202503131715.Fb6CfjhT-lkp@intel.com/
> > >
> > > All errors (new ones prefixed by >>):
> > >
> > > >> gawk: scripts/generate_builtin_ranges.awk:82: fatal: cannot open file `vmlinux.map' for reading: No such file or directory
> > >
> >
> > Hmm it seems I missed some things in link-vmlinux.sh - I will take a look.
>
> We'd need something like the below applied on top - shall I send a v3?

I will insert this before you patch set.
https://lore.kernel.org/linux-kbuild/20250313102604.1491732-1-masahiroy@kernel.org/T/#u

I would have done this earlier.
That is simply because I always run out of my time
and I do not have time to fix issues before someone stumbles on them.

>
> --- a/scripts/link-vmlinux.sh
> +++ b/scripts/link-vmlinux.sh
> @@ -46,6 +46,7 @@
>
> # Link of vmlinux
> # ${1} - output file
> +# ${2} - map file
> vmlinux_link()
> {
> local output=${1}
> @@ -99,7 +100,7 @@ vmlinux_link()
> fi
>
> if is_enabled CONFIG_VMLINUX_MAP; then
> - ldflags="${ldflags} ${wl}-Map=${output}.map"
> + ldflags="${ldflags} ${wl}-Map=${2}"
> fi
>
> ${ld} ${ldflags} -o ${output} \
> @@ -185,7 +186,7 @@
> {
> rm -f .btf.*
> rm -f System.map
> - rm -f vmlinux
> + rm -f ${VMLINUX}
> rm -f vmlinux.map
> }
>
> @@ -224,7 +225,7 @@
> strip_debug=1
> fi
>
> - vmlinux_link .tmp_vmlinux1
> + vmlinux_link .tmp_vmlinux1 .tmp_vmlinux1.map
> fi
>
> if is_enabled CONFIG_DEBUG_INFO_BTF; then
> @@ -267,19 +268,19 @@
> sysmap_and_kallsyms .tmp_vmlinux1
> size1=$(${CONFIG_SHELL} "${srctree}/scripts/file-size.sh" ${kallsymso})
>
> - vmlinux_link .tmp_vmlinux2
> + vmlinux_link .tmp_vmlinux2 .tmp_vmlinux2.map
> sysmap_and_kallsyms .tmp_vmlinux2
> size2=$(${CONFIG_SHELL} "${srctree}/scripts/file-size.sh" ${kallsymso})
>
> if [ $size1 -ne $size2 ] || [ -n "${KALLSYMS_EXTRA_PASS}" ]; then
> - vmlinux_link .tmp_vmlinux3
> + vmlinux_link .tmp_vmlinux3 .tmp_vmlinux3.map
> sysmap_and_kallsyms .tmp_vmlinux3
> fi
> fi
>
> strip_debug=
>
> -vmlinux_link "${VMLINUX}"
> +vmlinux_link "${VMLINUX}" vmlinux.map
>
> # fill in BTF IDs
> if is_enabled CONFIG_DEBUG_INFO_BTF; then

--
Best Regards
Masahiro Yamada