linux-stable/scripts/mod
Masahiro Yamada d0736af811 kbuild: generate Module.symvers only when vmlinux exists
[ Upstream commit 69bc8d386a ]

The external module build shows the following warning if Module.symvers
is missing in the kernel tree.

  WARNING: Symbol version dump "Module.symvers" is missing.
           Modules may not have dependencies or modversions.

I think this is an important heads-up because the resulting modules may
not work as expected. This happens when you did not build the entire
kernel tree, for example, you might have prepared the minimal setups
for external modules by 'make defconfig && make modules_preapre'.

A problem is that 'make modules' creates Module.symvers even without
vmlinux. In this case, that warning is suppressed since Module.symvers
already exists in spite of its incomplete content.

The incomplete (i.e. invalid) Module.symvers should not be created.

This commit changes the second pass of modpost to dump symbols into
modules-only.symvers. The final Module.symvers is created by
concatenating vmlinux.symvers and modules-only.symvers if both exist.

Module.symvers is supposed to collect symbols from both vmlinux and
modules. It might be a bit confusing, and I am not quite sure if it
is an official interface, but presumably it is difficult to rename it
because some tools (e.g. kmod) parse it.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-05-19 10:12:59 +02:00
..
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
devicetable-offsets.c soundwire: extend SDW_SLAVE_ENTRY 2020-06-30 21:26:17 +05:30
empty.c
file2alias.c soundwire: extend SDW_SLAVE_ENTRY 2020-06-30 21:26:17 +05:30
Makefile kbuild: introduce hostprogs-always-y and userprogs-always-y 2020-08-10 01:32:59 +09:00
mk_elfconfig.c
modpost.c kbuild: generate Module.symvers only when vmlinux exists 2021-05-19 10:12:59 +02:00
modpost.h modpost: change elf_info->size to size_t 2020-06-06 23:39:20 +09:00
sumversion.c modpost: use read_text_file() and get_line() for reading text files 2020-06-06 23:38:13 +09:00