OpenHarmony开发者论坛

标题: 内核编译切换交叉编译工具链编译报错__aarch64_cas4_acq_rel处理 [打印本页]

作者: 润开鸿_闻飞    时间: 2025-2-13 10:19
标题: 内核编译切换交叉编译工具链编译报错__aarch64_cas4_acq_rel处理
[md]## 【问题描述】

内核编译工具链gcc-linaro-7.5.0-2019.12-x86\_64\_aarch64-linux-gnu切换为rockchip新版本工具链gcc-arm-10.3-2021.07-x86\_64-aarch64-none-linux-gnu后内核编译报错如下:

![image.png](https://forums-obs.openharmony.c ... 0e5imzb3m5ef56k.png "image.png")

```
[OHOS ERROR] WARNING: modpost: vmlinux.o(___ksymtab_gpl+rockchip_clk_register_armclk+0x0): Section mismatch in reference from the variable __ksymtab_rockchip_clk_register_armclk to the function .init.text:rockchip_clk_register_armclk()
[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: Unexpected GOT/PLT entries detected!
[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: Unexpected run-time procedure linkages detected!
[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: drivers/../../../../../drivers/hdf_core/framework/core/adapter/vnode/src/hdf_vnode_adapter.o: in function `DropOldEventInRingBuffer':
[OHOS ERROR] /home/wen_fei/OpenHarmony/dayu210-v4.1-release/out/kernel/src_tmp/linux-5.10/drivers/hdf/khdf/manager/../../../..//framework/core/adapter/vnode/src/hdf_vnode_adapter.c:428: undefined reference to `__aarch64_cas4_acq_rel'
[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: drivers/../../../../../drivers/hdf_core/framework/core/adapter/vnode/src/hdf_vnode_adapter.o: in function `AddEventToRingBuffer':
[OHOS ERROR] /home/wen_fei/OpenHarmony/dayu210-v4.1-release/out/kernel/src_tmp/linux-5.10/drivers/hdf/khdf/manager/../../../..//framework/core/adapter/vnode/src/hdf_vnode_adapter.c:448: undefined reference to `__aarch64_cas4_acq_rel'
[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: drivers/../../../../../drivers/hdf_core/framework/core/adapter/vnode/src/hdf_vnode_adapter.o: in function `ReadDeviceEventInRingBuffer':
[OHOS ERROR] /home/wen_fei/OpenHarmony/dayu210-v4.1-release/out/kernel/src_tmp/linux-5.10/drivers/hdf/khdf/manager/../../../..//framework/core/adapter/vnode/src/hdf_vnode_adapter.c:294: undefined reference to `__aarch64_cas4_acq_rel'
[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: /home/wen_fei/OpenHarmony/dayu210-v4.1-release/out/kernel/src_tmp/linux-5.10/drivers/hdf/khdf/manager/../../../..//framework/core/adapter/vnode/src/hdf_vnode_adapter.c:303: undefined reference to `__aarch64_cas4_acq_rel'
[OHOS ERROR] make[1]: *** [Makefile:1224: vmlinux] Error 1
[OHOS ERROR] make: *** [arch/arm64/Makefile:205: rk3588-bearkey-bq3588c1-linux.img] Error 2
```

## 【问题分析】

aarch64工具链在Linux系统没有\_\_sync\_val\_compare\_and\_swap内置原子函数,可以通过将函数替换为atomic\_cmpxchg来解决或者直接添加参数-mno-outline-atomics来解决。

## 【处理方法】

在drivers/hdf\_core/adapter/khdf/linux/manager/Makefile文件中添加以下参数即可

```
ccflags-y += -mno-outline-atomics
```

## 【参考文档】

[一个OpenHarmony rk3568编译问题](https://blog.csdn.net/ssmile/article/details/142621341)

[undefined reference to \`\_\_aarch64\_cas4\_sync' error on arm64 native build](https://lore.kernel.org/linux-arm-kernel/CAJNi4rM_w5JKjug1PtV+tHyk11DUhRJ-K1pSDE6P1x8KSU2wrg@mail.gmail.com/T/)

[aarch64 平台编译报错](https://github.com/k2-fsa/sherpa-onnx/issues/1351)

[Embedded Linux (aarch64)](https://k2-fsa.github.io/sherpa/ ... embedded-linux.html)

[rk3568 arm、arm64编译失败undefined symbol: \_\_aarch64\_cas4\_acq\_rel](https://gitee.com/openharmony/build/issues/I6VB7R)
[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5