最近在龙芯3A6000上用clang++编译spec2017 510.parest_r测试,发现取某些优化参数时, 编译会在用lld链接阶段停滞。
spec2017中c++的完整编译参数:
clang++ -std=c++11 -O2/3/fast -march=la464 -flto -fuse-ld=lld -fno-finite-math-only
出现问题参数:"-O3/fast -flto", 若无"-flto"或优化级别为"-O2"及以下则编译正常。
出现问题llvm版本:llvm20和llvm21,llvm main上的22-git版本没有问题。
出现问题系统:Debian sid和Arch Linux均发现此问题,Debian 13和AOSC则没有问题。而且问题应该和架构无关,在x86_64架构的同样系统中可复现。Debian 13和AOSC目前用的gcc版本是14,Debian sid和Arch Linux用的gcc版本是15,但在后者中用gcc14编译llvm20/21后问题仍然出现。