错误:表达式需要 'double' 类型支持,但 ABI 'aapcs' 不支持

问题描述 投票:0回答:1

我正在使用最新的 Clang (19) 编译 Android 内核,并且显示了该错误。

这是错误输出:

../drivers/clk/qcom/camcc-sm8150.c:547:2: error: expression requires 'double' type support, but ABI 'aapcs' does not support it
  547 |         F(266666667, P_CAM_CC_PLL0_OUT_ODD, 1.5, 0, 0),
      |         ^
../drivers/clk/qcom/camcc-sm8150.c:41:41: note: expanded from macro 'F'
   41 | #define F(f, s, h, m, n) { (f), (s), (2 * (h) - 1), (m), (n) }
      |                                         ^
../drivers/clk/qcom/camcc-sm8150.c:547:2: error: expression requires 'double' type support, but ABI 'aapcs' does not support it
../drivers/clk/qcom/camcc-sm8150.c:41:47: note: expanded from macro 'F'
   41 | #define F(f, s, h, m, n) { (f), (s), (2 * (h) - 1), (m), (n) }
      |                                               ^
../drivers/clk/qcom/camcc-sm8150.c:548:2: error: expression requires 'double' type support, but ABI 'aapcs' does not support it
  548 |         F(320000000, P_CAM_CC_PLL2_OUT_MAIN, 1.5, 0, 0),
      |         ^
../drivers/clk/qcom/camcc-sm8150.c:41:41: note: expanded from macro 'F'
   41 | #define F(f, s, h, m, n) { (f), (s), (2 * (h) - 1), (m), (n) }
      |                                         ^
../drivers/clk/qcom/camcc-sm8150.c:548:2: error: expression requires 'double' type support, but ABI 'aapcs' does not support it
../drivers/clk/qcom/camcc-sm8150.c:41:47: note: expanded from macro 'F'
   41 | #define F(f, s, h, m, n) { (f), (s), (2 * (h) - 1), (m), (n) }
      |                                               ^
../drivers/clk/qcom/camcc-sm8150.c:973:2: error: expression requires 'double' type support, but ABI 'aapcs' does not support it
  973 |         F(320000000, P_CAM_CC_PLL2_OUT_MAIN, 1.5, 0, 0),
      |         ^
../drivers/clk/qcom/camcc-sm8150.c:41:41: note: expanded from macro 'F'
   41 | #define F(f, s, h, m, n) { (f), (s), (2 * (h) - 1), (m), (n) }
      |                                         ^
../drivers/clk/qcom/camcc-sm8150.c:973:2: error: expression requires 'double' type support, but ABI 'aapcs' does not support it
../drivers/clk/qcom/camcc-sm8150.c:41:47: note: expanded from macro 'F'
   41 | #define F(f, s, h, m, n) { (f), (s), (2 * (h) - 1), (m), (n) }
      |                                               ^
../drivers/clk/qcom/camcc-sm8150.c:1143:2: error: expression requires 'double' type support, but ABI 'aapcs' does not support it
 1143 |         F(320000000, P_CAM_CC_PLL2_OUT_MAIN, 1.5, 0, 0),
      |         ^
../drivers/clk/qcom/camcc-sm8150.c:41:41: note: expanded from macro 'F'
   41 | #define F(f, s, h, m, n) { (f), (s), (2 * (h) - 1), (m), (n) }
      |                                         ^
../drivers/clk/qcom/camcc-sm8150.c:1143:2: error: expression requires 'double' type support, but ABI 'aapcs' does not support it
../drivers/clk/qcom/camcc-sm8150.c:41:47: note: expanded from macro 'F'
   41 | #define F(f, s, h, m, n) { (f), (s), (2 * (h) - 1), (m), (n) }
      |                                               ^
../drivers/clk/qcom/camcc-sm8150.c:1292:2: error: expression requires 'double' type support, but ABI 'aapcs' does not support it
 1292 |         F(80000000, P_CAM_CC_PLL0_OUT_EVEN, 7.5, 0, 0),
      |         ^
../drivers/clk/qcom/camcc-sm8150.c:41:41: note: expanded from macro 'F'
   41 | #define F(f, s, h, m, n) { (f), (s), (2 * (h) - 1), (m), (n) }
      |                                         ^
../drivers/clk/qcom/camcc-sm8150.c:1292:2: error: expression requires 'double' type support, but ABI 'aapcs' does not support it
../drivers/clk/qcom/camcc-sm8150.c:41:47: note: expanded from macro 'F'
   41 | #define F(f, s, h, m, n) { (f), (s), (2 * (h) - 1), (m), (n) }

这是我正在使用的 Clang 工具链:https://github.com/XSans0/WeebX-Clang/releases/latest

这是内核源代码:https://github.com/LineageOS/android_kernel_xiaomi_vayu

也许我应该降级我的 Clang 编译器?或者有人知道怎么解决吗

我尝试启用 LLVM_IAS 但结果相同:(

android linux-kernel kernel
1个回答
0
投票

在此提交中修复:https://github.com/llvm/llvm-project/commit/ea9ec80b7aa1bd34edd5b544cd41450573f2cbff

也许我应该使用稳定的 Clang 🤔

© www.soinside.com 2019 - 2024. All rights reserved.