与 gfortran 链接: _edata:无效版本 21(最多 4 个)



我正在使用RHEL6系统,但需要使用C++11(甚至C++14(功能移植代码。这迫使我手动构建 gcc-8.2,安装在私有前缀 (/prod/pfe/local下(。这在/prod/pfe/local/bin下创建了许多可执行文件:gcc,g++,ld和gfortran。

我现在正在尝试构建CBLAS,它使用上面的gfortran。构建库(cblas_LINUX.a(工作正常,但创建可执行文件失败,标题中引用了一个神秘的错误:

gfortran -o xscblat1 c_sblat1.o c_sblas1.o ../lib/cblas_LINUX.a
/prod/pfe/local/lib/gcc/x86_64-pc-linux-gnu/8/../../../../x86_64-pc-linux-gnu/bin/ld: /prod/pfe/local/lib/gcc/x86_64-pc-linux-gnu/8/../../../../lib64/libgfortran.so: _edata: invalid version 21 (max 4) /prod/pfe/local/lib/gcc/x86_64-pc-linux-gnu/8/../../../../x86_64-pc-linux-gnu/bin/ld: /prod/pfe/local/lib/gcc/x86_64-pc-linux-gnu/8/../../../../lib64/libgfortran.so: error adding symbols: bad value

我是否错误地配置了构建 gfortran?如果没有,我该如何解决这个问题 - 额外的FFLAGS或某种LDFLAGS

好的,根据 gcc 开发人员的说法,这是一个由使用新链接器(黄金(触发的已知错误。

使用--disable-gold重新构建编译器套装可以解决此问题。

更新:修正 - 不知何故,禁用黄金还不够好。回到 binutils-2.30 是我最终所做的......

相关内容

最新更新