[分享]龙芯3交叉编译工具链

我用来交叉编译 mozjs 和 linux kernel 等软件的龙芯3交叉工具链,预编译的运行在 x64 平台。

v7 版基于 binutils 2.26 、 gcc 5.3.0 和 glibc 2.22,只集成了 GNU Hash 补丁。一直在用,暂未发现明显问题。
v8 版基于 binutils 2.26.1 、gcc 5.5.0 和 glibc 2.22,集成了 GNU Hash、龙芯中科的 128-bit 访存优化、龙芯乘除、取模及 fused-madd 等等的各种补丁。
v9 版升级 binutils 2.29.1
v10 版升级 gdb 8.0.1,libstdc++ abi 配置为 gcc4 兼容模式。
v11 版升级 glibc 2.26,同步最新龙芯补丁。

资源位置:http://mirror.lemote.com/loongson3-toolchain/

6 个评论

[root@localhost ~]# ls rpm/glibc-2*
rpm/glibc-2.26-15fc27.ls.mips64el.rpm
[root@localhost ~]# ls rpm/binutils-*
rpm/binutils-2.29.1-9fc27.ls.mips64el.rpm rpm/binutils-2.29-6fc27.ls.mips64el.rpm rpm/binutils-devel-2.29.1-9fc27.ls.mips64el.rpm rpm/binutils-devel-2.29-6fc27.ls.mips64el.rpm
[root@localhost ~]# ls rpm/gcc-*
rpm/gcc-7.2.1-2fc27.ls.mips64el.rpm rpm/gcc-gdb-plugin-7.2.1-2fc27.ls.mips64el.rpm rpm/gcc-objc++-7.2.1-2fc27.ls.mips64el.rpm
rpm/gcc-base-debuginfo-7.2.1-2fc27.ls.mips64el.rpm rpm/gcc-gfortran-7.2.1-2fc27.ls.mips64el.rpm rpm/gcc-plugin-devel-7.2.1-2fc27.ls.mips64el.rpm
rpm/gcc-c++-7.2.1-2fc27.ls.mips64el.rpm rpm/gcc-go-7.2.1-2fc27.ls.mips64el.rpm
rpm/gcc-debuginfo-7.2.1-2fc27.ls.mips64el.rpm rpm/gcc-objc-7.2.1-2fc27.ls.mips64el.rpm
[root@localhost ~]#

我不说别的了。
太好了,你的进度很快。我也有 gcc 7.x 的工具链,但编译 js 测出优化错误,等我找出复现方法,帮忙用你的版本测一下吧。
进度快没用啊,现在整个系统都是用 gcc 4.9 + 最新的 binutils 编译的。
我觉得你关注的地方可能应该是 binutils ,这东西可能才是问题的根源。
至少 gcc 7.2.1 + binutils 2.29 是不能编译新 glibc 的,有个错误。我之前有过提问。
我看 gentoo 也有这个问题,换 gcc 5.x 就没事。6/7 都有问题。类似也有个 bug 在 debian ,上游应该修复了,修复就是在 binutils 。
对了,gcc 7.2.1 现在编译其实也不成功,libgcc 失败。gcc 的官方 bug 有这个问题,结果是 bootstrap 成功。但是我这里依然失败。

说实话我真不知道 loongnix 的维护,到底怎么想的。webkitgtk 最新版貌似已经要求 > 5.0 了吧?我现在正在编译 ghc ,也需要支持 -no-pie 参数的版本,貌似就是也需要 >5.0 。

我觉得要么龙芯官方系统,切换到 debian 去,要么就直接介入 fedora 的开发,不要自己墙角玩旧版本了。这些坑早晚都要填的。早填至少别人能帮你。晚了填上,结果人家接口都换了多少次了,你还得重新解决。
我觉得最后一部分说的很对,自己努力参与开源主导项目制定标准远远比追随别人的脚步学习标准要好的多。
v10 版升级 gdb 8.0.1,libstdc++ abi 配置为 gcc4 兼容模式。
v11 版升级 glibc 2.26,同步最新龙芯补丁。

要回复文章请先登录注册