build-tools icon indicating copy to clipboard operation
build-tools copied to clipboard

GNU上游工具链状态

Open loongson-cailulu opened this issue 2 months ago • 0 comments

GNU各工具链组合情况

上游工具链版本

上游binutils共5个release版本 2.38、2.39、2.40、2.41、2.42,1个开发版本master。 上游gcc共2个release版本 12.3.0、13.2.0,1个开发版本master。 上游glibc共4个release版本 2.36、2.37、2.38、2.39,1个开发版本master。

上游工具链搭配状态

1、测试流程为:

  • 编译安装各个版本的binutils。
  • 使用各个版本的binutils编译不依赖系统库的第一遍gcc。若某版本binutils无法编译gcc,则认为无法搭配。
  • 安装linux-6.8.4内核。
  • 使用各版本binutils和各版本第一遍gcc排列组合编译各版本glibc。
  • 使用上一步安装成功的工具链编译完整gcc。
  • 使用上述工具链编译运行spec2006 test,测试使用-march=loongarch64 -O2,不启用向量。

2、能够编译运行spec2006的组合如下表。 表中第1列表示binutils版本,第1行表示gcc版本,行和列的交点表示可以搭配的glibc版本。 测试结果表明,所有gcc版本和binutils 2.39-2.40版本搭配编译glibc2.36-2.38,所有gcc版本和binutils 2.41-2.42可以搭配所有glibc版本。

  • 其中binutils 2.39及以上版本可以编译第一遍gcc。binutils 2.38 使用lp64和ilp32两种ABI名称,gcc使用lp64d、lp64f、lp64s三种ABI名称,gcc传递的默认lp64d选项2.38版本汇编器不识别,因此无法搭配。
  • glibc2.39需要向量指令支持,binutils 2.41及以上版本加入向量指令。
binutils/glibc/gcc 12.3.0 13.2.0 master
2.38 × × ×
2.39 2.36/2.37/2.38 2.36/2.37/2.38 2.36/2.37/2.38
2.40 2.36/2.37/2.38 2.36/2.37/2.38 2.36/2.37/2.38
2.41 2.36/2.37/2.38/2.39/master 2.36/2.37/2.38/2.39/master 2.36/2.37/2.38/2.39/master
2.42 2.36/2.37/2.38/2.39/master 2.36/2.37/2.38/2.39/master 2.36/2.37/2.38/2.39/master
master 2.36/2.37/2.38/2.39/master 2.36/2.37/2.38/2.39/master 2.36/2.37/2.38/2.39/master

loongson-cailulu avatar Apr 12 '24 03:04 loongson-cailulu