Re: [PATCH v5 31/31] KVM: s390: arm64: Enable KVM_ARM64 config and Kbuild
[email protected] Fri, 31 Jul 2026 14:25:43 +0000
| Newsgroups | org.kernel.vger.linux-s390,dev.linux.lists.kvmarm,org.kernel.vger.kvm |
|---|---|
| Message-ID | <[email protected]> |
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider: - [Low] The namespace-mangling logic for built-in compilation (CONFIG_KVM_ARM64=y) uses invalid toolchain flags and incorrectly localizes exported symbols, breaking the build. - [Low] Duplicate exported symbols cause a fatal modpost failure when both KVM modules are compiled as loadable modules (CONFIG_KVM_ARM64=m and CONFIG_KVM_S390=m). -- --- Patch [31]: [PATCH v5 31/31] KVM: s390: arm64: Enable KVM_ARM64 config and Kbuild --- commit c83e4eeb21e3c1207840240024b39a24634ecae4 Author: Steffen Eiden <[email protected]> KVM: s390: arm64: Enable KVM_ARM64 config and Kbuild Add all Kbuild/Makefile configurations to build a second KVM module on s390 implementing the arm64-KVM API. To prevent symbol conflicts with kvm-s390 all internal symbols in kvm-arm64 are mangled if compiled as built-in. > diff --git a/arch/s390/kvm/arm64/Makefile b/arch/s390/kvm/arm64/Makefile > new file mode 100644 > index 0000000000000..a102c35664cae > --- /dev/null > +++ b/arch/s390/kvm/arm64/Makefile [ ... ] > +ifeq ($(CONFIG_KVM_ARM64),m) > + > +kvm-arm64-y = $(kvm-arm64-obj) [Severity: Low] Does this module build lead to identical global exported symbols? If both CONFIG_KVM_ARM64=m and CONFIG_KVM_S390=m are selected, both modules include the core virt/kvm files without symbol localization, which causes a fatal modpost failure due to duplicate EXPORT_SYMBOL definitions. > + > +else ifeq ($(CONFIG_KVM_ARM64),y) [ ... ] > +quiet_cmd_nm_filter = NMFLTR $@ > + cmd_nm_filter = $(NM) -jU $< | sort -u > $@ [Severity: Low] Are the -jU flags supported by GNU nm? Using unsupported flags causes a fatal build error here. > + > +$(obj)/kvm_symbol_list: $(obj)/kvm-unnamespaced.o FORCE > + $(call if_changed,nm_filter) > + > +define rule_oc_o_o > + $(call cmd_and_savecmd,objcopy) > + $(call cmd,gen_objtooldep) > + $(call cmd,gen_symversions_o) > +endef > + > +OBJCOPYFLAGS_kvm-namespaced.o := -O default --localize-symbols=$(obj)/kvm_symbol_list [Severity: Low] Is -O default a valid objcopy flag? Additionally, does this incorrectly localize exported symbols? This breaks the build by causing modpost to abort. > +$(obj)/kvm-namespaced.o: $(obj)/kvm-unnamespaced.o $(obj)/kvm_symbol_list FORCE > + $(call if_changed_rule,oc_o_o) -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=31