更新说明

  • GCC 支持 -march={la264,la364,la464} 选项,便于启用各型处理器核所支持的指令集扩展特性。
  • Glibc 库支持 ifunc 功能,可根据运行平台支持的指令集扩展动态切换 SIMD 优化函数版本。
  • 工具链可执行程序采用静态链接,增强 host 系统兼容性。
  • GCC 增加 libitm 支持。
  • 内置 jemalloc 5.3.0。
  • 其他性能优化和 bugfix。

GCC 8.3 LoongArch GNU/Linux 非向量交叉工具链 (rc1.2)

  • 基础源码版本: gcc-8.3.0 binutils-2.31 glibc-2.28 gdb-8.1.50

  • 多库支持情况:仅支持 lp64d ABI 的 Glibc 库,无其他 C 库和 ABI 类型。

(当前发布的二进制版本默认开启 -mabi=lp64d 选项,一般无需手动添加)

  • 目标指令集架构 (-march) 支持:
处理器型号 目标指令集架构 编译参数
通用 64 位龙架构处理器 LA64 / UAL -march=loongarch64
3A5000
3C5000[L]
LA64 / UAL / LSX / LASX -march=la464
2K2000 LA64 / UAL / LSX -march=la364
2K1000LA LA64 / LSX -march=la264

当前发布的工具链二进制默认开启 -march=loongarch64 选项。

注:UAL 代表处理器支持非对齐访存。

  • 目标微结构调优 (-mtune) 支持:
处理器型号 微结构 编译参数
通用 64 位龙架构处理器 - -mtune=loongarch64
3A5000
3C5000[L]
LA464 -mtune=la464
2K2000 LA364 -mtune=la364
2K1000LA LA264 -mtune=la264

当前发布的工具链二进制默认开启 -mtune=loongarch64 选项。

  • 软浮点支持:

建议使用 -msoft-float 选项开启编译器软浮点功能。 该选项禁止编译器自动生成硬件浮点指令,并选择 lp64s ABI 以实现不依赖于浮点寄存器的函数传参和返回。

需要注意:本工具链版本中包含的 Glibc 暂不支持 lp64s ABI, 因此使用软浮点功能编译的程序无法链接 C 库。