* Re: [akpm-mm:mm-unstable 25/192] loongarch64-linux-ld: kexec_core.c:undefined reference to `machine_kexec'
2023-11-30 4:02 [akpm-mm:mm-unstable 25/192] loongarch64-linux-ld: kexec_core.c:undefined reference to `machine_kexec' kernel test robot
@ 2023-11-30 8:43 ` Baoquan He
2023-11-30 16:53 ` Andrew Morton
0 siblings, 1 reply; 4+ messages in thread
From: Baoquan He @ 2023-11-30 8:43 UTC (permalink / raw)
To: kernel test robot, Andrew Morton
Cc: oe-kbuild-all, Linux Memory Management List, Eric DeVolder
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@intel.com/config)
> compiler: loongarch64-linux-gcc (GCC) 13.2.0
> reproduce: (https://download.01.org/0day-ci/archive/20231130/202311300946.kHE9Iu71-lkp@intel.com/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@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202311300946.kHE9Iu71-lkp@intel.com/
>
> 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 `.L2\x025':
> >> 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@redhat.com>
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@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202311300946.kHE9Iu71-lkp@intel.com/
Signed-off-by: Baoquan He <bhe@redhat.com>
---
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
^ permalink raw reply [flat|nested] 4+ messages in thread