Blame view
scripts/Makefile.modpost
3.24 KB
b24413180 License cleanup: ... |
1 |
# SPDX-License-Identifier: GPL-2.0 |
1da177e4c Linux-2.6.12-rc2 |
2 3 4 5 6 7 |
# =========================================================================== # Module versions # =========================================================================== # # Stage one of module building created the following: # a) The individual .o files used for the module |
c30fe7f73 fix typos "wich" ... |
8 |
# b) A <module>.o file which is the .o files above linked together |
b7dca6dd1 kbuild: create *.... |
9 10 |
# c) A <module>.mod file, listing the name of the preliminary <module>.o file, # plus all .o files |
ff9b45c55 kbuild: modpost: ... |
11 |
# d) modules.order, which lists all the modules |
1da177e4c Linux-2.6.12-rc2 |
12 13 |
# Stage 2 is handled by this file and does the following |
ff9b45c55 kbuild: modpost: ... |
14 |
# 1) Find all modules listed in modules.order |
1da177e4c Linux-2.6.12-rc2 |
15 16 17 |
# 2) modpost is then used to # 3) create one <module>.mod.c file pr. module # 4) create one Module.symvers file with CRC for all exported symbols |
1da177e4c Linux-2.6.12-rc2 |
18 19 20 |
# Step 3 is used to place certain information in the module's ELF # section, including information such as: |
163d3fe6a kbuild: Fix refer... |
21 |
# Version magic (see include/linux/vermagic.h for full details) |
1da177e4c Linux-2.6.12-rc2 |
22 23 |
# - Kernel release # - SMP is CONFIG_SMP |
4b950bb9a Kbuild: Handle PR... |
24 |
# - PREEMPT is CONFIG_PREEMPT[_RT] |
1da177e4c Linux-2.6.12-rc2 |
25 26 27 28 29 30 31 32 |
# - GCC Version # Module info # - Module version (MODULE_VERSION) # - Module alias'es (MODULE_ALIAS) # - Module license (MODULE_LICENSE) # - See include/linux/module.h for more details # Step 4 is solely used to allow module versioning in external modules, |
4696e2958 trivial: fix a ty... |
33 |
# where the CRC of each module is retrieved from the Module.symvers file. |
1da177e4c Linux-2.6.12-rc2 |
34 |
|
ea837f1c0 kbuild: make modp... |
35 36 37 |
# KBUILD_MODPOST_WARN can be set to avoid error out in case of undefined # symbols in the final module linking stage # KBUILD_MODPOST_NOFINAL can be set to skip the final link of modules. |
25985edce Fix common misspe... |
38 |
# This is solely useful to speed up test compiles |
a721588d9 kbuild: modpost: ... |
39 40 41 |
PHONY := __modpost __modpost: |
1da177e4c Linux-2.6.12-rc2 |
42 |
|
c955ccafc kconfig: fix .con... |
43 |
include include/config/auto.conf |
8ec4b4ff1 kbuild: introduce... |
44 |
include scripts/Kbuild.include |
0d96fb20b kbuild: Add new K... |
45 |
|
a721588d9 kbuild: modpost: ... |
46 47 48 49 50 51 52 |
kernelsymfile := $(objtree)/Module.symvers modulesymfile := $(firstword $(KBUILD_EXTMOD))/Module.symvers MODPOST = scripts/mod/modpost \ $(if $(CONFIG_MODVERSIONS),-m) \ $(if $(CONFIG_MODULE_SRCVERSION_ALL),-a) \ $(if $(KBUILD_EXTMOD),-i,-o) $(kernelsymfile) \ |
a721588d9 kbuild: modpost: ... |
53 54 55 |
$(if $(KBUILD_EXTMOD),$(addprefix -e ,$(KBUILD_EXTRA_SYMBOLS))) \ $(if $(KBUILD_EXTMOD),-o $(modulesymfile)) \ $(if $(CONFIG_SECTION_MISMATCH_WARN_ONLY),,-E) \ |
bff9c62b5 modpost: do not i... |
56 |
$(if $(KBUILD_MODPOST_WARN),-w) |
a721588d9 kbuild: modpost: ... |
57 58 |
ifdef MODPOST_VMLINUX |
9b9a3f20c kbuild: split fin... |
59 60 |
quiet_cmd_modpost = MODPOST vmlinux.o cmd_modpost = $(MODPOST) vmlinux.o |
a721588d9 kbuild: modpost: ... |
61 |
|
9b9a3f20c kbuild: split fin... |
62 |
__modpost: |
a721588d9 kbuild: modpost: ... |
63 64 65 |
$(call cmd,modpost) else |
bff9c62b5 modpost: do not i... |
66 |
MODPOST += $(subst -i,-n,$(filter -i,$(MAKEFLAGS))) -s -T - \ |
bc35d4bda scripts/nsdeps: s... |
67 |
$(if $(KBUILD_NSDEPS),-d $(MODULES_NSDEPS)) |
1747269ab modpost: do not p... |
68 69 70 71 |
ifeq ($(KBUILD_EXTMOD),) MODPOST += $(wildcard vmlinux) else |
96d97f262 kbuild: fix $(src... |
72 |
|
fab546e6c kbuild: update co... |
73 |
# set src + obj - they may be used in the modules's Makefile |
96d97f262 kbuild: fix $(src... |
74 75 |
obj := $(KBUILD_EXTMOD) src := $(obj) |
0d96fb20b kbuild: Add new K... |
76 77 78 79 |
# Include the module's Makefile to find KBUILD_EXTRA_SYMBOLS include $(if $(wildcard $(KBUILD_EXTMOD)/Kbuild), \ $(KBUILD_EXTMOD)/Kbuild, $(KBUILD_EXTMOD)/Makefile) endif |
a721588d9 kbuild: modpost: ... |
80 |
# find all modules listed in modules.order |
47801c97d kbuild: revive si... |
81 |
modules := $(sort $(shell cat $(MODORDER))) |
1da177e4c Linux-2.6.12-rc2 |
82 |
|
9b9a3f20c kbuild: split fin... |
83 84 |
# Read out modules.order instead of expanding $(modules) to pass in modpost. # Otherwise, allmodconfig would fail with "Argument list too long". |
acf2a1397 kbuild: modpost: ... |
85 |
quiet_cmd_modpost = MODPOST $(words $(modules)) modules |
47801c97d kbuild: revive si... |
86 |
cmd_modpost = sed 's/ko$$/o/' $(MODORDER) | $(MODPOST) |
1da177e4c Linux-2.6.12-rc2 |
87 |
|
9b9a3f20c kbuild: split fin... |
88 |
__modpost: |
a721588d9 kbuild: modpost: ... |
89 |
$(call cmd,modpost) |
9b9a3f20c kbuild: split fin... |
90 91 92 |
ifneq ($(KBUILD_MODPOST_NOFINAL),1) $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modfinal endif |
4f1933620 kbuild: change kb... |
93 |
|
a721588d9 kbuild: modpost: ... |
94 |
endif |
4f1933620 kbuild: change kb... |
95 |
.PHONY: $(PHONY) |