linux-yocto/Documentation/dontdiff
Masahiro Yamada 69bc8d386a kbuild: generate Module.symvers only when vmlinux exists
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>
2021-04-25 05:17:02 +09:00

2.6 KiB

*.a *.aux *.bc *.bin .bz2 .c.[012]. *.cis *.cpio *.csp *.dsp *.dvi *.elf *.eps *.fw *.gcno *.gcov *.gen.S *.gif *.grep *.grp *.gz *.html .i .jpeg .ko .ll .log .lst .lzma .lzo .mo .moc .mod .mod.c .o .o. .order .orig .out .patch .pdf .plist .png .pot .ps .rej .s .sgml .so .so.dbg .symtypes .tab.c .tab.h .tex .ver .xml .xz .zst _MODULES _vga16.c ~ ## .9 . ..d .mm 53c700_d.h CVS ChangeSet GPATH GRTAGS GSYMS GTAGS Image Module.markers Module.symvers PENDING SCCS System.map TAGS aconf af_names.h aic7reg.h aic7reg_print.c aic7seq.h aicasm aicdb.h altivec.c asm-offsets.h asm_offsets.h autoconf.h av_permissions.h bbootsect bin2c binkernel.spec bootsect bounds.h bsetup btfixupprep build bvmlinux bzImage capability_names.h capflags.c classlist.h comp.log compile.h conf config config- config.mak config.mak.autogen conmakehash consolemap_deftbl.c cpustr.h crc32table.h cscope. defkeymap.c devlist.h devicetable-offsets.h dnotify_test dslm dtc elf2ecoff elfconfig.h evergreen_reg_safe.h fixdep flask.h fore200e_mkfirm fore200e_pca_fw.c gconf gconf-cfg gen-devlist gen_crc32table gen_init_cpio generated genheaders genksyms _gray256.c hpet_example hugepage-mmap hugepage-shm ihex2fw inat-tables.c initramfs_list int16.c int1.c int2.c int32.c int4.c int8.c kallsyms keywords.c ksym.c ksym.h lex.c lex..c linux logo_.c logo_clut224.c logo_mono.c mach-types mach-types.h machtypes.h map map_hugetlb mconf mconf-cfg miboot mk_elfconfig mkboot mkbugboot mkcpustr mkdep mkprep mkregtable mktables mktree mkutf8data modpost modules-only.symvers modules.builtin modules.builtin.modinfo modules.nsdeps modules.order modversions.h nconf nconf-cfg ncscope. offset.h oui.c page-types parse.c parse.h patches pca200e.bin pca200e_ecd.bin2 perf.data perf.data.old perf-archive piggyback piggy.gzip piggy.S pnmtologo ppc_defs.h pss_boot.h qconf qconf-cfg r100_reg_safe.h r200_reg_safe.h r300_reg_safe.h r420_reg_safe.h r600_reg_safe.h randomize_layout_hash.h randomize_layout_seed.h recordmcount relocs rlim_names.h rn50_reg_safe.h rs600_reg_safe.h rv515_reg_safe.h series setup setup.bin setup.elf sortextable sImage sm_tbl split-include syscalltab.h tables.c tags test_get_len tftpboot.img timeconst.h times.h trix_boot.h utsrelease.h vdso-syms.lds vdso.lds vdso32-int80-syms.lds vdso32-syms.lds vdso32-syscall-syms.lds vdso32-sysenter-syms.lds vdso32.lds vdso32.so.dbg vdso64.lds vdso64.so.dbg version.h vmImage vmlinux vmlinux- vmlinux.aout vmlinux.bin.all vmlinux.lds vmlinux.map vmlinux.symvers vmlinuz voffset.h vsyscall.lds vsyscall_32.lds wanxlfw.inc uImage unifdef utf8data.h wakeup.bin wakeup.elf wakeup.lds zImage zoffset.h