mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 10:49:33 +00:00
![Masahiro Yamada](/assets/img/avatar_default.png)
The full build runs modpost twice, first for vmlinux.o and second for modules. The first pass dumps all the vmlinux symbols into Module.symvers, but the second pass parses vmlinux again instead of reusing the dump file, presumably because it needs to avoid accumulating stale symbols. Loading symbol info from a dump file is faster than parsing an ELF object. Besides, modpost deals with various issues to parse vmlinux in the second pass. A solution is to make the first pass dumps symbols into a separate file, vmlinux.symvers. The second pass reads it, and parses module .o files. The merged symbol information is dumped into Module.symvers in the same way as before. This makes further modpost cleanups possible. Also, it fixes the problem of 'make vmlinux', which previously overwrote Module.symvers, throwing away module symbols. I slightly touched scripts/link-vmlinux.sh so that vmlinux is re-linked when you cross this commit. Otherwise, vmlinux.symvers would not be generated. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
150 lines
1.8 KiB
Text
150 lines
1.8 KiB
Text
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# NOTE! Don't add files that are generated in specific
|
|
# subdirectories here. Add them in the ".gitignore" file
|
|
# in that subdirectory instead.
|
|
#
|
|
# NOTE! Please use 'git ls-files -i --exclude-standard'
|
|
# command after changing this file, to see if there are
|
|
# any tracked files which get ignored after the change.
|
|
#
|
|
# Normal rules (sorted alphabetically)
|
|
#
|
|
.*
|
|
*.a
|
|
*.asn1.[ch]
|
|
*.bin
|
|
*.bz2
|
|
*.c.[012]*.*
|
|
*.dt.yaml
|
|
*.dtb
|
|
*.dtb.S
|
|
*.dwo
|
|
*.elf
|
|
*.gcno
|
|
*.gz
|
|
*.i
|
|
*.ko
|
|
*.lex.c
|
|
*.ll
|
|
*.lst
|
|
*.lz4
|
|
*.lzma
|
|
*.lzo
|
|
*.mod
|
|
*.mod.c
|
|
*.o
|
|
*.o.*
|
|
*.patch
|
|
*.s
|
|
*.so
|
|
*.so.dbg
|
|
*.su
|
|
*.symtypes
|
|
*.tab.[ch]
|
|
*.tar
|
|
*.xz
|
|
Module.symvers
|
|
modules.builtin
|
|
modules.order
|
|
|
|
#
|
|
# Top-level generic files
|
|
#
|
|
/tags
|
|
/TAGS
|
|
/linux
|
|
/vmlinux
|
|
/vmlinux.32
|
|
/vmlinux.symvers
|
|
/vmlinux-gdb.py
|
|
/vmlinuz
|
|
/System.map
|
|
/Module.markers
|
|
/modules.builtin.modinfo
|
|
/modules.nsdeps
|
|
|
|
#
|
|
# RPM spec file (make rpm-pkg)
|
|
#
|
|
/*.spec
|
|
|
|
#
|
|
# Debian directory (make deb-pkg)
|
|
#
|
|
/debian/
|
|
|
|
#
|
|
# Snap directory (make snap-pkg)
|
|
#
|
|
/snap/
|
|
|
|
#
|
|
# tar directory (make tar*-pkg)
|
|
#
|
|
/tar-install/
|
|
|
|
#
|
|
# We don't want to ignore the following even if they are dot-files
|
|
#
|
|
!.clang-format
|
|
!.cocciconfig
|
|
!.get_maintainer.ignore
|
|
!.gitattributes
|
|
!.gitignore
|
|
!.mailmap
|
|
|
|
#
|
|
# Generated include files
|
|
#
|
|
/include/config/
|
|
/include/generated/
|
|
/include/ksym/
|
|
/arch/*/include/generated/
|
|
|
|
# stgit generated dirs
|
|
patches-*
|
|
|
|
# quilt's files
|
|
patches
|
|
series
|
|
|
|
# cscope files
|
|
cscope.*
|
|
ncscope.*
|
|
|
|
# gnu global files
|
|
GPATH
|
|
GRTAGS
|
|
GSYMS
|
|
GTAGS
|
|
|
|
# id-utils files
|
|
ID
|
|
|
|
*.orig
|
|
*~
|
|
\#*#
|
|
|
|
#
|
|
# Leavings from module signing
|
|
#
|
|
extra_certificates
|
|
signing_key.pem
|
|
signing_key.priv
|
|
signing_key.x509
|
|
x509.genkey
|
|
|
|
# Kconfig presets
|
|
/all.config
|
|
/alldef.config
|
|
/allmod.config
|
|
/allno.config
|
|
/allrandom.config
|
|
/allyes.config
|
|
|
|
# Kdevelop4
|
|
*.kdev4
|
|
|
|
# Clang's compilation database file
|
|
/compile_commands.json
|