parasite 发表于 2025-4-3 14:42:44

解决编译报错:undefined reference to `__arm64_sys_process_mrelease'

【问题描述】:内核编译报错如下
The symbol rockchip_clk_register_armclk is exported and annotated __init
Fix this by removing the __init annotation of rockchip_clk_register_armclk or drop the export.

   MODINFO modules.builtin.modinfo
   GEN   modules.builtin
   LD      .tmp_vmlinux.kallsyms1
../../../../prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-ld: arch/arm64/kernel/sys32.o:(.rodata+0xe00): undefined reference to `__arm64_sys_process_mrelease'
make: *** Error 1
make: *** Error 2
make: Leaving directory '/home/wen_fei/OpenHarmony/dayu210-v4.1-release/out/kernel/OBJ/linux-5.10'
make: *** Error 2https://192.168.3.50:8088/gitlab.com/-/project/1415/uploads/19bb490c06ccd5b4e4a51929d43ce08e/image.png【问题分析】:出现该问题原因是内核没有实现系统调用__NR_process_mrelease,但是在arch/arm64/include/asm/unistd32.h中却定义了下面的语句导致符号表找不到
#define __NR_process_mrelease 448
__SYSCALL(__NR_process_mrelease, sys_process_mrelease)【处理方式】:进入arch/arm64/include/asm/unistd32.h文件删除下面语句即可
#define __NR_process_mrelease 448
__SYSCALL(__NR_process_mrelease, sys_process_mrelease)
页: [1]
查看完整版本: 解决编译报错:undefined reference to `__arm64_sys_process_mrelease'