查看: 108|回复: 0

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

[复制链接]

1

主题

1

回帖

14

积分

新手上路

积分
14
发表于 2025-4-3 14:42:44 | 显示全部楼层 |阅读模式
【问题描述】:内核编译报错如下
  1. [OHOS ERROR] The symbol rockchip_clk_register_armclk is exported and annotated __init
  2. [OHOS ERROR] Fix this by removing the __init annotation of rockchip_clk_register_armclk or drop the export.
  3. [OHOS ERROR]
  4. [OHOS ERROR]   MODINFO modules.builtin.modinfo
  5. [OHOS ERROR]   GEN     modules.builtin
  6. [OHOS ERROR]   LD      .tmp_vmlinux.kallsyms1
  7. [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'
  8. [OHOS ERROR] make[2]: *** [/home/wen_fei/OpenHarmony/dayu210-v4.1-release/out/kernel/src_tmp/linux-5.10/Makefile:1224: vmlinux] Error 1
  9. [OHOS ERROR] make[1]: *** [arch/arm64/Makefile:207: rk3588-evb7-lp4-v10-linux.img] Error 2
  10. [OHOS ERROR] make[1]: Leaving directory '/home/wen_fei/OpenHarmony/dayu210-v4.1-release/out/kernel/OBJ/linux-5.10'
  11. [OHOS ERROR] make: *** [Makefile:192: __sub-make] Error 2
复制代码
【问题分析】:出现该问题原因是内核没有实现系统调用__NR_process_mrelease,但是在arch/arm64/include/asm/unistd32.h中却定义了下面的语句导致符号表找不到
  1. #define __NR_process_mrelease 448
  2. __SYSCALL(__NR_process_mrelease, sys_process_mrelease)
复制代码
【处理方式】:进入arch/arm64/include/asm/unistd32.h文件删除下面语句即可
  1. #define __NR_process_mrelease 448
  2. __SYSCALL(__NR_process_mrelease, sys_process_mrelease)
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表