On 11/30/23 at 12:02pm, kernel test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-unstable > head: cb1d236cb1038fa1bbae9913803f1c655b86d931 > commit: f8ff23429c625c2b2a134d87f490a89a98c544ce [25/192] kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP > config: loongarch-randconfig-r122-20231130 (https://download.01.org/0day-ci/archive/20231130/202311300946.kHE9Iu71-lkp@xxxxxxxxx/config) > compiler: loongarch64-linux-gcc (GCC) 13.2.0 > reproduce: (https://download.01.org/0day-ci/archive/20231130/202311300946.kHE9Iu71-lkp@xxxxxxxxx/reproduce) > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot <lkp@xxxxxxxxx> > | Closes: https://lore.kernel.org/oe-kbuild-all/202311300946.kHE9Iu71-lkp@xxxxxxxxx/ > > All errors (new ones prefixed by >>): > > loongarch64-linux-ld: kernel/kexec_core.o: in function `.L209': > >> kexec_core.c:(.text+0x1660): undefined reference to `machine_kexec_cleanup' > loongarch64-linux-ld: kernel/kexec_core.o: in function `.L287': > >> kexec_core.c:(.text+0x1c5c): undefined reference to `machine_crash_shutdown' > >> loongarch64-linux-ld: kexec_core.c:(.text+0x1c64): undefined reference to `machine_kexec' > loongarch64-linux-ld: kernel/kexec_core.o: in function `.L25': > >> kexec_core.c:(.text+0x2090): undefined reference to `machine_shutdown' > loongarch64-linux-ld: kexec_core.c:(.text+0x20a0): undefined reference to `machine_kexec' Thanks for report, below patch can fix it. Hi Andrew, There are several places in m68k, mips, sh architecture which have the similar issue. Would you prefer one patch to contain them all or separate patches for each architecture's fix? >From 0549728ffab3c2e75f71b4696fa6f9709a85b946 Mon Sep 17 00:00:00 2001 From: Baoquan He <bhe@xxxxxxxxxx> Date: Thu, 30 Nov 2023 16:22:46 +0800 Subject: [PATCH] LoongArch: change dependency of object files Content-type: text/plain Currently, in arch/loongarch/kernel/Makefile, building machine_kexec.o relocate_kernel.o depends on CONFIG_KEXEC. Whereas, since we will drop the select of KEXEC for CRASH_DUMP in kernel/Kconfig.kexec, compiling error will be triggered if below config items are set: === CONFIG_CRASH_CORE=y CONFIG_KEXEC_CORE=y CONFIG_CRASH_DUMP=y === --------------------------------------------------------------- loongarch64-linux-ld: kernel/kexec_core.o: in function `.L209': >> kexec_core.c:(.text+0x1660): undefined reference to `machine_kexec_cleanup' loongarch64-linux-ld: kernel/kexec_core.o: in function `.L287': >> kexec_core.c:(.text+0x1c5c): undefined reference to `machine_crash_shutdown' >> loongarch64-linux-ld: kexec_core.c:(.text+0x1c64): undefined reference to `machine_kexec' loongarch64-linux-ld: kernel/kexec_core.o: in function `.L2^B5': >> kexec_core.c:(.text+0x2090): undefined reference to `machine_shutdown' loongarch64-linux-ld: kexec_core.c:(.text+0x20a0): undefined reference to `machine_kexec' --------------------------------------------------------------- Here, changing the dependency of machine_kexec.o relocate_kernel.o to CONFIG_KEXEC_CORE can fix above building error. Reported-by: kernel test robot <lkp@xxxxxxxxx> Closes: https://lore.kernel.org/oe-kbuild-all/202311300946.kHE9Iu71-lkp@xxxxxxxxx/ Signed-off-by: Baoquan He <bhe@xxxxxxxxxx> --- arch/loongarch/kernel/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/loongarch/kernel/Makefile b/arch/loongarch/kernel/Makefile index 4fcc168f0732..3c808c680370 100644 --- a/arch/loongarch/kernel/Makefile +++ b/arch/loongarch/kernel/Makefile @@ -57,7 +57,7 @@ obj-$(CONFIG_MAGIC_SYSRQ) += sysrq.o obj-$(CONFIG_RELOCATABLE) += relocate.o -obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o +obj-$(CONFIG_KEXEC_CORE) += machine_kexec.o relocate_kernel.o obj-$(CONFIG_CRASH_DUMP) += crash_dump.o obj-$(CONFIG_UNWINDER_GUESS) += unwind_guess.o -- 2.41.0