~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/scripts/Makefile.modpost

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /scripts/Makefile.modpost (Version linux-6.12-rc7) and /scripts/Makefile.modpost (Version linux-2.6.0)


  1 # SPDX-License-Identifier: GPL-2.0             << 
  2 # ============================================      1 # ===========================================================================
  3 # Module versions                                   2 # Module versions
  4 # ============================================      3 # ===========================================================================
                                                   >>   4 
                                                   >>   5 .PHONY: __modversions
                                                   >>   6 __modversions:
                                                   >>   7 
                                                   >>   8 include .config
                                                   >>   9 include scripts/Makefile.lib
                                                   >>  10 
  5 #                                                  11 #
  6 # Stage one of module building created the fol << 
  7 # a) The individual .o files used for the modu << 
  8 # b) A <module>.o file which is the .o files a << 
  9 # c) A <module>.mod file, listing the name of  << 
 10 #    plus all .o files                         << 
 11 # d) modules.order, which lists all the module << 
 12                                                << 
 13 # Stage 2 is handled by this file and does the << 
 14 # 1) Find all modules listed in modules.order  << 
 15 # 2) modpost is then used to                   << 
 16 # 3)  create one <module>.mod.c file per modul << 
 17 # 4)  create one Module.symvers file with CRC  << 
 18                                                << 
 19 # Step 3 is used to place certain information  << 
 20 # section, including information such as:      << 
 21 #   Version magic (see include/linux/vermagic. << 
 22 #     - Kernel release                         << 
 23 #     - SMP is CONFIG_SMP                      << 
 24 #     - PREEMPT is CONFIG_PREEMPT[_RT]         << 
 25 #     - GCC Version                            << 
 26 #   Module info                                << 
 27 #     - Module version (MODULE_VERSION)        << 
 28 #     - Module alias'es (MODULE_ALIAS)         << 
 29 #     - Module license (MODULE_LICENSE)        << 
 30 #     - See include/linux/module.h for more de << 
 31                                                << 
 32 # Step 4 is solely used to allow module versio << 
 33 # where the CRC of each module is retrieved fr << 
 34                                                << 
 35 PHONY := __modpost                             << 
 36 __modpost:                                     << 
 37                                                << 
 38 include include/config/auto.conf               << 
 39 include $(srctree)/scripts/Kbuild.include      << 
 40                                                << 
 41 MODPOST = scripts/mod/modpost                  << 
 42                                                << 
 43 modpost-args =                                 << 
 44         $(if $(CONFIG_MODULES),-M)             << 
 45         $(if $(CONFIG_MODVERSIONS),-m)         << 
 46         $(if $(CONFIG_MODULE_SRCVERSION_ALL),- << 
 47         $(if $(CONFIG_SECTION_MISMATCH_WARN_ON << 
 48         $(if $(KBUILD_MODPOST_WARN),-w)        << 
 49         $(if $(KBUILD_NSDEPS),-d $(MODULES_NSD << 
 50         $(if $(CONFIG_MODULE_ALLOW_MISSING_NAM << 
 51         $(if $(findstring 1, $(KBUILD_EXTRA_WA << 
 52         -o $@                                  << 
 53                                                << 
 54 modpost-deps := $(MODPOST)                     << 
 55                                                << 
 56 # 'make -i -k' ignores compile errors, and bui << 
 57 ifneq ($(findstring i,$(filter-out --%,$(MAKEF << 
 58 modpost-args += -n                             << 
 59 endif                                          << 
 60                                                    12 
 61 # Read out modules.order to pass in modpost.   !!  13 __modules := $(shell cat /dev/null $(wildcard $(MODVERDIR)/*.mod))
 62 # Otherwise, allmodconfig would fail with "Arg !!  14 modules := $(patsubst %.o,%.ko,$(wildcard $(__modules:.ko=.o)))
 63 ifdef KBUILD_MODULES                           !!  15 
 64 modpost-args += -T $(MODORDER)                 !!  16 ifneq ($(filter-out $(modules),$(__modules)),)
 65 modpost-deps += $(MODORDER)                    !!  17   $(warning *** Uh-oh, you have stale module entries. You messed with SUBDIRS,)
                                                   >>  18   $(warning     do not complain if something goes wrong.)
 66 endif                                              19 endif
 67                                                    20 
 68 ifeq ($(KBUILD_EXTMOD),)                       !!  21 __modversions: $(modules)
                                                   >>  22         @:
 69                                                    23 
 70 # Generate the list of in-tree objects in vmli !!  24 # The final module link
 71 # -------------------------------------------- << 
 72                                                    25 
 73 # This is used to retrieve symbol versions gen !!  26 quiet_cmd_ld_ko_o = LD [M]  $@
 74 ifdef CONFIG_MODVERSIONS                       !!  27       cmd_ld_ko_o = $(LD) $(LDFLAGS) $(LDFLAGS_MODULE) -o $@            \
 75 vmlinux.symvers Module.symvers: .vmlinux.objs  !!  28                           $(filter-out FORCE,$^)
 76 endif                                          << 
 77                                                    29 
 78 # Ignore libgcc.a                              !!  30 $(modules): %.ko :%.o %.mod.o FORCE
 79 # Some architectures do '$(CC) --print-libgcc- !!  31         $(call if_changed,ld_ko_o)
 80 # from the toolchain, but there is no EXPORT_S << 
 81                                                << 
 82 quiet_cmd_vmlinux_objs = GEN     $@            << 
 83       cmd_vmlinux_objs =                \      << 
 84         for f in $(real-prereqs); do    \      << 
 85                 case $${f} in           \      << 
 86                 *libgcc.a) ;;           \      << 
 87                 *) $(AR) t $${f} ;;     \      << 
 88                 esac                    \      << 
 89         done > $@                              << 
 90                                                << 
 91 targets += .vmlinux.objs                       << 
 92 .vmlinux.objs: vmlinux.a $(KBUILD_VMLINUX_LIBS << 
 93         $(call if_changed,vmlinux_objs)        << 
 94                                                << 
 95 ifdef CONFIG_TRIM_UNUSED_KSYMS                 << 
 96 ksym-wl := $(CONFIG_UNUSED_KSYMS_WHITELIST)    << 
 97 ksym-wl := $(if $(filter-out /%, $(ksym-wl)),$ << 
 98 modpost-args += -t $(addprefix -u , $(ksym-wl) << 
 99 modpost-deps += $(ksym-wl)                     << 
100 endif                                          << 
101                                                    32 
102 ifeq ($(wildcard vmlinux.o),)                  !!  33 targets += $(modules)
103 missing-input := vmlinux.o                     << 
104 output-symdump := modules-only.symvers         << 
105 else                                           << 
106 modpost-args += vmlinux.o                      << 
107 modpost-deps += vmlinux.o                      << 
108 output-symdump := $(if $(KBUILD_MODULES), Modu << 
109 endif                                          << 
110                                                    34 
111 else                                           !!  35 # Compile version info for unresolved symbols
112                                                    36 
113 # set src + obj - they may be used in the modu !!  37 quiet_cmd_cc_o_c = CC      $@
114 obj := $(KBUILD_EXTMOD)                        !!  38       cmd_cc_o_c = $(CC) $(c_flags) $(CFLAGS_MODULE)    \
115 src := $(if $(VPATH),$(VPATH)/)$(obj)          !!  39                    -c -o $@ $<
116                                                << 
117 # Include the module's Makefile to find KBUILD << 
118 include $(kbuild-file)                         << 
119                                                << 
120 output-symdump := $(KBUILD_EXTMOD)/Module.symv << 
121                                                << 
122 ifeq ($(wildcard Module.symvers),)             << 
123 missing-input := Module.symvers                << 
124 else                                           << 
125 modpost-args += -i Module.symvers              << 
126 modpost-deps += Module.symvers                 << 
127 endif                                          << 
128                                                    40 
129 modpost-args += -e $(addprefix -i , $(KBUILD_E !!  41 $(modules:.ko=.mod.o): %.mod.o: %.mod.c FORCE
                                                   >>  42         $(call if_changed_dep,cc_o_c)
130                                                    43 
131 endif # ($(KBUILD_EXTMOD),)                    !!  44 targets += $(modules:.ko=.mod.o)
132                                                    45 
133 quiet_cmd_modpost = MODPOST $@                 !!  46 # All the .mod.c files are generated using the helper "modpost"
134       cmd_modpost = \                          << 
135         $(if $(missing-input), \               << 
136                 echo >&2 "WARNING: $(missing-i << 
137                 echo >&2 "         Modules may << 
138                 echo >&2 "         You may get << 
139                 echo >&2 "         You can set << 
140                 echo >&2 "         if you want << 
141         $(MODPOST) $(modpost-args)             << 
142                                                    47 
143 targets += $(output-symdump)                   !!  48 .PHONY: __modpost
144 $(output-symdump): $(modpost-deps) FORCE       !!  49 
                                                   >>  50 $(modules:.ko=.mod.c): __modpost ;
                                                   >>  51 
                                                   >>  52 # Extract all checksums for all exported symbols
                                                   >>  53 
                                                   >>  54 quiet_cmd_modpost = MODPOST
                                                   >>  55       cmd_modpost = scripts/modpost $(filter-out FORCE,$^)
                                                   >>  56 
                                                   >>  57 __modpost: $(wildcard vmlinux) $(modules:.ko=.o) FORCE
145         $(call if_changed,modpost)                 58         $(call if_changed,modpost)
146                                                    59 
147 __modpost: $(output-symdump)                   !!  60 targets += __modpost
148 PHONY += FORCE                                 !!  61 
                                                   >>  62 # Add FORCE to the prequisites of a target to force it to be always rebuilt.
                                                   >>  63 # ---------------------------------------------------------------------------
                                                   >>  64 
                                                   >>  65 .PHONY: FORCE
                                                   >>  66 
149 FORCE:                                             67 FORCE:
150                                                    68 
151 existing-targets := $(wildcard $(sort $(target !!  69 # Read all saved command lines and dependencies for the $(targets) we
                                                   >>  70 # may be building above, using $(if_changed{,_dep}). As an
                                                   >>  71 # optimization, we don't need to read them if the target does not
                                                   >>  72 # exist, we will rebuild anyway in that case.
152                                                    73 
153 -include $(foreach f,$(existing-targets),$(dir !!  74 targets := $(wildcard $(sort $(targets)))
                                                   >>  75 cmd_files := $(wildcard $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd))
154                                                    76 
155 .PHONY: $(PHONY)                               !!  77 ifneq ($(cmd_files),)
                                                   >>  78   include $(cmd_files)
                                                   >>  79 endif
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php