[经验分享] 解决编译报错:undefined reference to `__arm64_sys_process_mrelease' 原创

润开鸿_闻飞 显示全部楼层 发表于 5 天前

【问题描述】:<br /> 内核编译报错如下<br />

[OHOS ERROR] The symbol rockchip_clk_register_armclk is exported and annotated __init
[OHOS ERROR] Fix this by removing the __init annotation of rockchip_clk_register_armclk or drop the export.
[OHOS ERROR]
[OHOS ERROR]   MODINFO modules.builtin.modinfo
[OHOS ERROR]   GEN     modules.builtin
[OHOS ERROR]   LD      .tmp_vmlinux.kallsyms1
[OHOS ERROR] ../../../../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'
[OHOS ERROR] make[2]: *** [/home/wen_fei/OpenHarmony/dayu210-v4.1-release/out/kernel/src_tmp/linux-5.10/Makefile:1224: vmlinux] Error 1
[OHOS ERROR] make[1]: *** [arch/arm64/Makefile:207: rk3588-evb7-lp4-v10-linux.img] Error 2
[OHOS ERROR] make[1]: Leaving directory '/home/wen_fei/OpenHarmony/dayu210-v4.1-release/out/kernel/OBJ/linux-5.10'
[OHOS ERROR] make: *** [Makefile:192: __sub-make] Error 2

image 【问题分析】:<br /> 出现该问题原因是内核没有实现系统调用__NR_process_mrelease,但是在arch/arm64/include/asm/unistd32.h中却定义了下面的语句导致符号表找不到

#define __NR_process_mrelease 448
__SYSCALL(__NR_process_mrelease, sys_process_mrelease)

【处理方式】:<br /> 进入arch/arm64/include/asm/unistd32.h文件删除下面语句即可

#define __NR_process_mrelease 448
__SYSCALL(__NR_process_mrelease, sys_process_mrelease)

©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

Copyright   ©2025  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部