[PATCH] kbuild: do not generate .tmp_vmlinux*.map when CONFIG_VMLINUX_MAP=y

From: Masahiro Yamada
Date: Thu Mar 13 2025 - 06:26:46 EST


Commit 5cc124720461 ("kbuild: add CONFIG_VMLINUX_MAP expert option")
mentioned that "the .map file can be rather large (several MB), and
that's a waste of space when one isn't interested in these things."

If that is the case, generating map files for the intermediate
tmp_vmlinux* files is also a waste of space. It is unlikely that
anyone would be interested in the .tmp_vmlinux.map* files.

This commit stops passing the -Map= option when linking the .tmp_vmlinux*
intermediates.

I also hard-coded the file name 'vmlinux.map' instead of ${output}.map
because a later commit will introduce vmlinux.unstripped but I want to
keep the name of the map file.

Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
---

scripts/link-vmlinux.sh | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
index e55026128e05..7cbbfa3efbca 100755
--- a/scripts/link-vmlinux.sh
+++ b/scripts/link-vmlinux.sh
@@ -98,8 +98,8 @@ vmlinux_link()
ldflags="${ldflags} ${wl}--strip-debug"
fi

- if is_enabled CONFIG_VMLINUX_MAP; then
- ldflags="${ldflags} ${wl}-Map=${output}.map"
+ if [ -n "${generate_map}" ]; then
+ ldflags="${ldflags} ${wl}-Map=vmlinux.map"
fi

${ld} ${ldflags} -o ${output} \
@@ -211,6 +211,7 @@ fi
btf_vmlinux_bin_o=
kallsymso=
strip_debug=
+generate_map=

if is_enabled CONFIG_KALLSYMS; then
true > .tmp_vmlinux0.syms
@@ -279,6 +280,10 @@ fi

strip_debug=

+if is_enabled CONFIG_VMLINUX_MAP; then
+ generate_map=1
+fi
+
vmlinux_link "${VMLINUX}"

# fill in BTF IDs
--
2.43.0