【发布时间】:2018-12-14 20:28:28
【问题描述】:
我正在用 clang 编译还包含 gcc 库(单独添加)的 linux 内核代码。我遇到以下错误:
gcc/unwind-dw2.c:1336:3: error: cannot compile this __builtin_init_dwarf_reg_size_table yet
'__builtin_init_dwarf_reg_size_table' 是 gcc 中的内置函数。我在网上找不到足够的材料来解决这个错误。但是我在 clang 中找到了对这个函数的引用:
BUILTIN(__builtin_init_dwarf_reg_size_table, "vv*", "n")
在 prebuilt_include/clang/include/clang/Basic/Builtins.def 位置。但我不明白它的目的是什么。
任何有关错误的提示都会非常有帮助。
编辑:在环顾四周以了解 clang 的工作原理时,我在函数“EmitBuiltinExpr”的 CGBuiltin.cpp 文件中找到了对此内置函数的另一个引用。但无法理解如何使用它来解决我的问题。有什么好的资料可以理解这一切吗?
【问题讨论】:
-
这可能是一个clang错误。你能用不同的 clang/gcc 版本编译
unwind-dw2.c吗? -
是的,gcc 4.9 正在编译。
-
你能告诉这个错误“还不能编译”是什么意思吗?而如果是clang bug,如何确认并报告?
-
抱歉,@Shashank shekhar Dubey 回复延迟。该错误似乎表明您的目标不支持内置函数 - 请参阅我的答案了解更多详细信息
标签: gcc linux-kernel clang clang++ llvm-clang