llvm之使用 LLVM 编译 Linux 内核
我们想在 FPGA 上为单核 RISCV 处理器移植 Linux。同时,Linux 内核将通过 LLVM pass 进行检测。
我的疑惑是: 1. riscv-llvm工具链是否可以用来编译Linux内核? 2. riscv-llvm工具链是否支持添加自定义pass?
请您参考如下方法:
选择的 Linux 版本 2.6.33 有两个问题。
第一个问题是 RISC-V 团队从未将此版本移植到 RISC-V。他们在 https://github.com/riscv/riscv-linux 中有 3.14 和 4.1 .因此,要在 RISC-V 处理器中启动它,您应该重复架构相关部分(内核的 arch/
目录)的所有移植。这是非常复杂的任务,即使 objective-c PU 有一些移植版本。您可以从 3.14 向后移植某些部分,但 2.6.33 和 3.14 不同,它们之间有几年的演变。 (PORTING不仅仅是COMPILING,它是写30个文件没有任何错误的任务,或者调试很长时间。)
第二个问题是 LLVM 只能完全构建具有补丁的现代 Linux 内核版本 http://llvm.linuxfoundation.org/项目。在内核的某些部分使用了不受支持(并且在 clang/llvm 中永远不会支持)的 GCC 扩展。部分构建是可能的,但旧 Linux 的两三个组件不能用 clang 构建。
所以,我真的建议你使用 RISCV 团队的 linux 内核版本,并且更新 (4.1) 更好。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。