Loongarch 软件移植

AutoTools 添加Loongarch 支持

为了简化可移植构建的难度,早期有一套的工具帮助程序员构建软件。开源项目大多由 工具管理,源码编译常见三步曲。

在 下编译常见的问题如下:

在 阶段, 会扫描宿主机系统(即当前正在运行的计算机)以进行各种测试并完成默认设置。

在测试过程中,有一项是系统架构测试,当在陌生的新架构中运行时, 将 错并退出,导致无法完成软件编译。

其中最关键的2个架构相关文件为: 和 。

套件中 和,被独立维护在为 config.git 仓库。

其他软件如将不定期从这里获取,并合入自己的代码树中,最终上游开发者通过打包后,这2个文件将进入tarballs中被发布。

Loongarch架构相关的补丁,于2020年12月22日被合并到 config.git 主分支。

https://git.savannah.gnu.org/gitweb/config.git;a=commitdiff;h=c8ddc8472f8efcadafc1ef53ca1d863415fddd5f

最新的config.git 已合并了对Loongarch 架构的支持。而对早期的config.git 没有添加 Loongarch 架构支持的,需要自已手动添加。

方法一:编缉 文件,在 下面添加 架构的支持。

方法二:从 上获取最新的config.guess 和 config.sub 文件然后进行替换

$ sudo wget -O /usr/share/misc/config.sub “git.savannah.gnu.org/gitweb/config.git;a=blob_plain;f=config.sub;hb=HEAD”

$ sudo wget -O /usr/share/misc/config.guess “git.savannah.gnu.org/gitweb/config.git;a=blob_plain;f=config.guess;hb=HEAD”

在源码目录执行下面的命令会/usr/share/misc/config.sub 和 config.guess 替换掉工程目录下面的config.sub 和 config.guess 文件

$ libtoolize -f -i -c

c/c++ 代码编译选项、编译宏移植

功能 x86编译选项 龙芯(MIPS)编译选项 龙芯(Loongarch)编译选项
定义编译生成的程序为64 位程序 -m64 -mabi=64 -mabi=lp64
定义指令集类型,由X86修改为MIPS或Loongarch -march=skylake -march=mips64r2 -march=loongarch64
原有x86版编译宏替换为MIPS宏或Loongarch宏 __mips64 __loongarch64
指定为小端模式 仅有小端模式 -EL 仅有小端模式
查看编译器自定义编译宏 echo |gcc -E -dM –

参考链接:

文章 – LoongArch 开放 区

文章知识点与官方知识档案匹配,可进一步学习相关知识Git技能树首页概览3084 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月22日
下一篇 2021年5月22日

相关推荐