llvm
xry111 opened this issue · 8 comments
请问有可以公开的 LLVM 源码吗?今天看新闻说龙芯的工程师已经用 clang 编译虚幻引擎了。
主要是 rustc 需要 LLVM,如果 LLVM 弄好的话 rustc 我看了一下应该写几百行 (?) 代码描述一些机器特性就行。
如果没有的话我可能去试着玩玩 gccrs 或者 rustc 的 libgccjit backend……
@SixWeining 可能可以回答这个问题。
有llvm8,等升级到社区开发版本之后会开源
我自己瞎改了一套玩:
- https://github.com/xry111/rust
- https://github.com/xry111/llvm-project
- https://github.com/xry111/rust-libc
- https://github.com/xry111/rust-object
默认分支都改成了 loongarch,可以随便拿去用。目前我在 x86_64 上拿这一套交叉编译我的一个玩具项目 (https://github.com/xdu-icpc/cftool) 是能在 3A5000 上正常跑的。libc 是按照最新的开源版本内核和 Glibc 弄的,Loongnix 上可能有问题。
LoongArch 上的本地 rustc 我还没编译出来,不是很懂 bootstrap rustc 的流程。
@xry111 试了一下,编译可以通过,但还有其他问题,还是等官方向上游提交好了。 “rustc-1.39.0-src/src/libunwind/libunwind.rs:66: error:0:Couldn't find variable name 'unwinder_private_data_size'”
这个可以处理一下:xry111/rust@e3d8f16
@xry111 我是在某网友提供的机器上跑的( https://tieba.baidu.com/p/7562976585 ),放在$HOME/test/mrustc
下了,要不你可以继续试试😉
- mrustc目前只支持
1.29.0
和1.39.0
两个版本,我用的是1.39.0,只要运行即可:RUSTC_TARGET=loongarch64-unknown-linux-gnu ./build-1.39.0.sh
- 我用你的
rust-libc
替换了rust-1.39.0-src/vendor/libc
这个crate - 你的rust patch需要在目录下
rust-1.39.0-src
下对应改掉
祝好运!
llvm 11 available at https://github.com/loongson/llvm-project
closing.