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> --- scripts/Makefile.build | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 874e84a1f3fc..97392c26ebd7 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 @@ -327,14 +330,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 $(objtool_dep) FORCE -- 2.30.2