Loongarch 软件移植
AutoTools 添加Loongarch 支持
为了简化可移植构建的难度,早期有一套AutoTools
的工具帮助程序员构建软件。c/c++
开源项目大多由Autotools
工具管理,源码编译常见三步曲。
./configure make make install
在Loongarch
下编译常见的问题如下:
./configure configure: error: cannot guess build type; you must specify one
在 ./configure
阶段,Autotools
会扫描宿主机系统(即当前正在运行的计算机)以进行各种测试并完成默认设置。
在测试过程中,有一项是系统架构测试,当在陌生的新架构中运行时,./configure
将报错并退出,导致无法完成软件编译。
其中最关键的2个架构相关文件为:config.guess
和 config.sub
。
GNU Autotools
套件中 config.guess
和config.sub
,被独立维护在为 config.git 仓库。
其他软件如gnulib、automake
将不定期从这里获取,并合入自己的代码树中,最终上游开发者通过GNU Autotools
打包后,这2个文件将进入tarballs中被发布。
Loongarch架构相关的补丁,于2020年12月22日被合并到 config.git 主分支。
https://git.savannah.gnu.org/gitweb/?p=config.git;a=commitdiff;h=c8ddc8472f8efcadafc1ef53ca1d863415fddd5f
最新的config.git 已合并了对Loongarch 架构的支持。而对早期的config.git 没有添加 Loongarch 架构支持的,需要自已手动添加。
方法一:编缉 config.guess
文件,在ia64:Linux:*:*)
下面添加Loongarch
架构的支持。
loongarch*:Linux:*:*)echo ${UNAME_MACHINE}-unknown-linux-gnuexit ;;
方法二:从网上获取最新的config.guess 和 config.sub 文件然后进行替换
$ sudo wget -O /usr/share/misc/config.sub "git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD"
$ sudo wget -O /usr/share/misc/config.guess "git.savannah.gnu.org/gitweb/?p=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宏 |
__X86_64__
|
__mips64 | __loongarch64 |
指定为小端模式 | 仅有小端模式 | -EL | 仅有小端模式 |
查看编译器自定义编译宏 | echo |gcc -E -dM - |
参考链接:
文章 - LoongArch 开放社区
Loongarch 软件移植相关推荐
- linux 软件移植(库移植与源码移植编译)
Linux下的软件移植,基本都是自己编译源码,步骤都是配置,然后编译,安装. 注意: 配置的时候会设置-prefix参数,也就是我们最终安装的位置,如果不设置的话就是默认安装位置.将编译出来的库要放到 ...
- 绿盟赛—鲲鹏计算平台软件移植
目录 前言 使用鲲鹏平台的背景及意义 "鲲鹏"满足了市场对算力的需求 我要用"鲲鹏", 我要注意什么? 软件迁移原理和迁移过程 软件迁移原理概述 计算技术栈与程 ...
- linux开源软件 移植,Linux之开源软件移植
移植环境 Utuntu 15.04 1.mplayer移植 版本:mplayer-export-snapshot.tar.bz2 /mplayer-export-2015-11-26 Linux PC ...
- mac软件移植linux,相比软件迁移 Apple Silicon Mac的Linux系统移植工作更困难
Asahi Linux 项目团队在博客文章中写道,他们尝试了在 Apple Silicon 系统上设置备用启动内核.虽然已实现大多数功能,但还是缺乏对安装非苹果内核的命令支持. Apple Insid ...
- ios计算机音乐软件,DOTEC-AUDIO 将均衡、响度和 AU 插件播放器软件移植到了 iOS
DOTEC-AUDIO将三款软件和插件制作成了iOS版本,现在你可以在苹果的APP Store上购买和下载,在iPhone或iPad上使用这些好看又好用的音频工具. AUAudioPlayer音乐播放 ...
- wine —— windows软件移植到Linux系统
导读: wine是我们在Linux下运行部分Windows应用程序必不可少的工具. 接下来主要了解wine服务的工作原理.wine服务的部署以及windows应用程序在统信UOS操作系统中的安装. 一 ...
- 对linuxptp软件移植到arm下遇到的问题进行记录
首先更改makefile CC= gcc #这里修改成你的交叉编译器 使用命令:make #直接编译就好 将生成的ptp4l,复制到你的板卡 /usr/bin/下 #这样你就可以直接使用这个可执行文件 ...
- 嵌入式linux系统移植的四大步骤_如何移植开源软件到嵌入式Linux系统
我们知道,在PC机Linux上,安装开源软件,一般来讲,大多是如下几个步骤就搞定了. tar -xzf open_source_software.tar.gz cd open_sourc ...
- Cubase v5.1.1 macOS (移植版)音乐制作软件下载
Cubase v5.1.1 macOS | 266.7M Cubase 5的口号是体验创新,Cubase 5的5大创新来自于: 节奏设计和loop制作 人声编辑和音高修正 更深层次的混音体验创新的作曲 ...
最新文章
- Timer定时器开发
- spring.net 注入 配置
- Java-日期 正则表达式
- 给Python IDLE添加行号显示
- mapreduce排序比较器的选取
- qt实现抽屉效果,类似qq的好友功能
- INNO setup 制作安装包
- vmware虚拟机的基础使用
- 简单快速的UG编程入门操作
- key位置 win10生成的ssh_Win10系统中生成SSH密钥的方法
- 你有必要不沾计算机一段时间英语,新人教版八年级英语下册unit 1必背词组及句子...
- 解读Android日志
- 程序员与颈椎病(三):颈椎病终极解决办法
- Android 系统应用开发实战
- 2019最应该投资什么?是你明年的北大核心
- Electron-开发第一个桌面应用
- XJOI--三质数c++
- python下载图片插入excel_Python向Excel中插入图片的简单实现方法
- HDU 1512 Monkey King(左偏树+并查集)
- 流量卡计费及相关介绍
热门文章
- 计算机概论 第一次作业,2015计算机概论模拟试题+作业题目大全.doc
- limit - offset
- 【人脸】人脸矫正相关知识
- 今天小鱼和古月大佬面基了|鱼脑壳痛早点休息
- 如何使用ArcGIS从天地图中提取道路
- EEPROM24C02概述
- msf中arp_sweep使用报错:usbmon1:ERROR while getting interface flags:no such device
- linux 线程迁移_迁移线程如何在Linux内核内部工作
- Android系统开发篇(四) —— Samba服务器的搭建和相关配置
- 微软 Windows 10 1903 九月更新官方 ISO 镜像