★ 龙芯交叉编译器

龙芯交叉编译器为gs464核版本,适用于loongson3a/3b、loognson2h、loongson2k。 龙芯3a2000/3a3000/3b2000/3b3000均可使用gs464核交叉编译器。

编译器下载

GCC7.3.1

日期 二进制 源码
2019.06.29 linux rc14.5 下载地址 md5sum 源码下载地址
2019.01.15 elf rc1.0 下载地址 md5sum 源码下载地址

GCC8.3.0

日期 二进制 源码
2021.02.08 linux rc1.1 下载地址 md5sum 源码下载地址
2021.02.03 elf rc1.0 下载地址 md5sum 源码下载地址

使用说明:

1. 该版本为loongson优化版本gcc编译器
2. 该版本适用于loongson2h、loongson3a/b系列处理器
3. 上述64位是指编译生成的二进制文件是mips 64位的,32位同理
4. gs464核linux交叉编译器(gcc-7.3.1)说明
  • 工具链支持情况
  Mips-201901-loongson-linux.png

表格中画対号的是支持的库类型

如果不添加编译参数,则默认编译的目标文件为"mips32r2 mabi=32 glibc"

如果想要编译其它类型目标文件需要添加参数.

例如,如果需要编译mips64r2 n64的目标文件:

添加参数"-mips64r2 -mabi=64".

其它类推

  • 工具连中的版本信息
工具/库 Gcc Binutils Glibc Uclibc
版本 7.3.1 2.28 2.25 0.9.30
  • 新增指令集支持
指令集 编译参数
Loongson MMI -mloongson-mmi
Loongson EXT -mloongson-ext
Loongson EXT2 -mloongson-ext2
MSA -mmsa
  • 新增架构支持
芯片 架构 编译参数
3A1000 3B1500 GS464 -march=gs464
3A2000 3A3000 3B2000 3B3000 GS464E -march=gs464e
2K1000 GS264E -march=gs264e
6. gs464核sde elf交叉编译器(gcc-7.3.1)说明
  • 工具链支持情况

此工具链为裸板工具链,只支持 "mips32r2 o32"

浮点类型 编译参数
soft float -msoft-float
hard float -mhard-float
single float -msingle-float

其中,single float是只存在当精度浮点指令.如果代码中出现了双精度浮点运算,则使用软浮点实现.

  • 工具链中工具/库版本信息
工具/库 Gcc Binutils Newlib
版本 7.3.1 2.28 3.3.0
  • 其中指令集和架构支持同mips-201901-loongson-linux
7. gs464核sde elf交叉编译器(gcc-8.3.0)说明
  • 工具链支持情况

此工具链为裸板工具链,支持 "mips32r2 o32" 、 "mips32 o32" 与 "mips16 o32"

浮点类型 编译参数
soft float -msoft-float
hard float -mhard-float
single float -msingle-float

其中,single float是只存在当精度浮点指令.如果代码中出现了双精度浮点运算,则使用软浮点实现.

  • 工具链中工具/库版本信息
工具/库 Gcc Binutils Newlib
版本 8.3.0 2.30 3.1.0
  • 其中指令集和架构支持同mips-201901-loongson-linux
8. gs464核linux交叉编译器(gcc-8.3.0)说明
  • 工具链支持情况
ABI: o32 n32 n64
库: glibc
浮点类型: hard float

如果不添加编译参数,则默认编译的目标文件为"mips32r2 mabi=32 glibc"

如果想要编译其它类型目标文件需要添加参数.

例如,如果需要编译mips64r2 n64的目标文件:

添加参数"-mips64r2 -mabi=64".

其它类推

另外,从rc1.1开始支持gdb和gdbserver

* mips-loongson-gcc8-linux-gnu-2021-02-08/mips-linux-gnu/libc/usr/lib64/bin/gdbserver
* mips-loongson-gcc8-linux-gnu-2021-02-08/mips-linux-gnu/libc/usr/lib/bin/gdbserver
* mips-loongson-gcc8-linux-gnu-2021-02-08/mips-linux-gnu/libc/usr/lib32/bin/gdbserver

根据自己目标系统的ABI选择使用哪个gdbserver

  • 工具连中的版本信息
工具/库 Gcc Binutils Glibc
版本 8.3.0 2.31.1 2.28
  • 新增指令集支持
指令集 编译参数
Loongson MMI -mloongson-mmi
Loongson EXT -mloongson-ext
Loongson EXT2 -mloongson-ext2
Loongson EXT3 -mloongson-ext3
Loongson CSR -mloongson-csr
MSA -mmsa
  • 新增架构支持
芯片 架构 编译参数
3A1000 3B1500 GS464 -march=gs464
3A2000 3A3000 3B2000 3B3000 GS464E -march=gs464e
2K1000 GS264E -march=gs264e
3A4000 GS464V -march=gs464v

注意事项:

  1. 目前所有的gs464核交叉编译器均运行在x86_64位系统上,32位x86系统暂不支持,
  2. 目前ls232核交叉编译器运行在x86 32位系统上,在64位系统上运行请安装32位库。
  3. 运行交叉编译的操作系统为RHEL/centos-6系列,ubuntu-13/14/15等,某些linux发行版无法运行,请自行切换操作系统。

修改内容:

  1. 在o32 ABI下不使用奇数号浮点寄存器。
  2. 在ll与sc之间的跳转指令的目标地址前加sync指令。



返回: 首页 | 项目 | GCC

本页面最后修改于2021年9月9日 (星期四) 17:09。

© 2021 by 龙芯开源社区 • Powered by MediaWiki

京ICP备14017781号-2

京公网安备 11010802035787号