Now cmd_modversions_c and cmd_modversions_S are similar. The latter uses $(OBJDUMP) -h, but it can be replaced with $(NM). $(NM) works for both ELF and LLVM bitcode (if $(NM) is llvm-nm). Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> --- scripts/Makefile.build | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 50a6765c9a14..4d12f83389ce 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -166,13 +166,16 @@ ifdef CONFIG_MODVERSIONS # Generate .o.symversions files for each .o with exported symbols, and link these # to the kernel and/or modules at the end. -cmd_modversions_c = \ +cmd_modversions = \ if $(NM) $@ 2>/dev/null | grep -q __ksymtab; then \ - $(call cmd_gensymtypes_c,$(KBUILD_SYMTYPES),$(@:.o=.symtypes)) \ + $(call cmd_gensymtypes_$(1),$(KBUILD_SYMTYPES),$(@:.o=.symtypes)) \ > $@.symversions; \ else \ rm -f $@.symversions; \ fi; + +cmd_modversions_c = $(call cmd_modversions,c) + endif ifdef CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT @@ -337,14 +340,8 @@ ifdef CONFIG_ASM_MODVERSIONS # versioning matches the C process described above, with difference that # we parse asm-prototypes.h C header to get function definitions. +cmd_modversions_S = $(call cmd_modversions,S) -cmd_modversions_S = \ - if $(OBJDUMP) -h $@ | grep -q __ksymtab; then \ - $(call cmd_gensymtypes_S,$(KBUILD_SYMTYPES),$(@:.o=.symtypes)) \ - > $@.symversions; \ - else \ - rm -rf $@.symversions; \ - fi endif $(obj)/%.o: $(src)/%.S FORCE -- 2.30.2