Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

kbuild: refactor cmd_modversions_c

cmd_modversions_c implements two parts; run genksyms to calculate CRCs
of exported symbols, run $(LD) to update the object with the CRCs. The
latter is not executed for CONFIG_LTO_CLANG=y since the object is not
ELF but LLVM bit code at this point.

The first part can be unified because we can always use $(NM) instead
of "$(OBJDUMP) -h" to dump the symbols.

Split the code into the two macros, cmd_gen_symversions_c and
cmd_modversions.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>

+13 -16
+13 -16
scripts/Makefile.build
··· 168 168 # the actual value of the checksum generated by genksyms 169 169 # o remove .tmp_<file>.o to <file>.o 170 170 171 - ifdef CONFIG_LTO_CLANG 172 171 # Generate .o.symversions files for each .o with exported symbols, and link these 173 172 # to the kernel and/or modules at the end. 174 - cmd_modversions_c = \ 173 + gen_symversions = \ 175 174 if $(NM) $@ 2>/dev/null | grep -q __ksymtab; then \ 176 - $(call cmd_gensymtypes_c,$(KBUILD_SYMTYPES),$(@:.o=.symtypes)) \ 175 + $(call cmd_gensymtypes_$(1),$(KBUILD_SYMTYPES),$(@:.o=.symtypes)) \ 177 176 > $@.symversions; \ 178 177 else \ 179 178 rm -f $@.symversions; \ 180 - fi; 181 - else 182 - cmd_modversions_c = \ 183 - if $(OBJDUMP) -h $@ | grep -q __ksymtab; then \ 184 - $(call cmd_gensymtypes_c,$(KBUILD_SYMTYPES),$(@:.o=.symtypes)) \ 185 - > $(@D)/.tmp_$(@F:.o=.ver); \ 186 - \ 187 - $(LD) $(KBUILD_LDFLAGS) -r -o $(@D)/.tmp_$(@F) $@ \ 188 - -T $(@D)/.tmp_$(@F:.o=.ver); \ 189 - mv -f $(@D)/.tmp_$(@F) $@; \ 190 - rm -f $(@D)/.tmp_$(@F:.o=.ver); \ 191 179 fi 192 - endif 180 + 181 + cmd_gen_symversions_c = $(call gen_symversions,c) 182 + 183 + cmd_modversions = \ 184 + if [ -r $@.symversions ]; then \ 185 + $(LD) $(KBUILD_LDFLAGS) -r -o $(@D)/.tmp_$(@F) $@ \ 186 + -T $@.symversions; \ 187 + mv -f $(@D)/.tmp_$(@F) $@; \ 188 + fi 193 189 endif 194 190 195 191 ifdef CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT ··· 267 271 $(call cmd,checksrc) 268 272 $(call cmd,checkdoc) 269 273 $(call cmd,gen_objtooldep) 270 - $(call cmd,modversions_c) 274 + $(call cmd,gen_symversions_c) 275 + $(if $(CONFIG_LTO_CLANG),,$(call cmd,modversions)) 271 276 $(call cmd,record_mcount) 272 277 endef 273 278