实验室有两台服务器,一台console,一台T630。两台服务器版本及系统信息如下:

console:

  • Linux console 2.6.32-220.el6.x86_64 #1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
  • Red Hat Enterprise Linux Server release 6.2 (Santiago)

T630:

  • Linux T630 4.4.218-1.el6.elrepo.x86_64 #1 SMP Thu Apr 2 14:58:36 EDT 2020 x86_64 x86_64 x86_64 GNU/Linux
  • CentOS release 6.10 (Final)

现需要把T630上的程序移植到console上运行。已知两者安装了同版本的gcc_7.4.0,不同版本的binutils。T630上的是系统自带的binutils-2.20.51.0.2-5.48.el6_10.1.x86_64,而console上是系统自带的binutils-2.20.51.0.2-5.28.el6.x86_64,和后来第三方安装的binutils-2.32。

在console上编译T630的程序时发现ld找不着gfortran库,试了添加第三方动态库、切换两套binutils等方法后还是无效。遂开始怀疑是binutils版本的问题。

于是先在console上安装了最新的binutils-2.36,但编译时ld还是提示找不到gfortran库。后来又试了多个其他版本的binutils,问题依旧。

最后只能回头在T630上升级binutils,看ld如何表现。因为程序之前在T630上是可以正常编译链接的。如果在T630上升级binutils后,新的ld也提示找不到gfortran库,那么就说明console上链接出错的原因就是binutils版本不合。

可是在T630上升级binutils时发现编译各种版本的binutils都会报error。而且版本代差比较大的binutils报的错误竟然还都不相同。不过基本都是一些宏定义的error。

后来翻墙才找到解决办法,如下:

1) run configure as normal
2) run 'make' it will fail in the gas directory
3) run 'mv bfd/config.h bfd/config.h.bak' this forces the compilation to select the correct config.h
4) run 'cd gas/'
5) run 'make'
6) run 'cd ..'
7) run 'make' this will rebuild bfd, but it will skip over gas and avoid the error... however it will then descend into binutils and run into the same error...
8) run 'mv bfd/config.h bfd/config.h.bak'
9) run 'cd binutils/'
10) run 'make'
11) run 'cd ..'
12) run 'make' this will rebuild bfd, but it will skip over gas and binutils... this time everything else compiles without error

虽然这一方法起初是为了解决binutils-2.25.1在T630上的编译问题,但后来发现其同样可以被用到binutils-2.36的编译上。帖子给出的解释是,“This error seems to only occur when compiling with newer versions of gcc. The default gcc in Suse 13.2 is 4.8.3 and it will produce there error furthermore it is only inevitable more distro's will be shipping with updated versions of gcc, so this bug will become more common. This could be a bug with either gcc or binutils...”。

最后的最后......

T630上安装了binutils-2.36后,编译链接没有任何异常......只好回头再到console上找原因,认真对比console和T630上的两个Makefile,也没有任何异常......

愤怒下将gfortran库的链接在Makefile中重新手敲了一遍......竟然编译链接通过了......

估计是什么地方多了还是少了一个不起眼的字符,白白忙活一天,MD!

参考

[1]Thread: Compiling Binutils error: ‘TARGET_ALIAS’ undeclared (first use in this function) [Work-Around]

服务器升级binutils遇到的问题相关推荐

  1. 手机贷服务器维护升级,手机贷服务器升级

    手机贷服务器升级 内容精选 换一换 本章节介绍如何创建告警规则.用户可自定义监控目标与通知策略,及时了解云手机服务器.云手机.磁盘以及GPU卡的状况,从而起到预警作用.登录管理控制台.在管理控制台左上 ...

  2. 记录一次阿里云服务器升级报错

    记录一次阿里云服务器升级报错  ---Email:1261065212@qq.com 系统: # cat /etc/redhat-release CentOS Linux release 7.4.17 ...

  3. 服务器升级中不能修改信息,服务器升级页面

    服务器升级页面 内容精选 换一换 请使用Mind Studio的安装用户进行升级操作,在升级前请先登录到后台服务器,切换到root用户在/usr/bin目录下执行./add_sudo.sh usern ...

  4. 服务器升级中暂不可修改怎么回事,抖音服务器升级中,暂不支持本地区开播抖音怎么在法国直播?...

    抖音服务器升级中,暂不支持本地区开播抖音怎么在法国直播? 除了餐饮,腾讯自主研发的各种跨界开发节目也无人问津.至于年初腾讯app项目和资源,还没有整体发布,不过,神似的行业信息也有公布.这其中对爆红的 ...

  5. mantis apache mysql_Debian下mysql5+php5+apache2+mantis服务器升级

    Debian下mysql5+php5+apache2+mantis服务器升级 Ø安装所需软件:apt-get install xxx mysql libdbd-mysql-perlinstall li ...

  6. 域控服务器更新规则,由服务器升级为域控制器的方法

    每一个域中必须有一个域控制器,但是如何把服务器升级为域控制器,下文将详细讲述. Windows 2000包含了一个工具,DCPROMO.EXE,它用来把一个独立/成员服务器升级为域控制器,或者反过来. ...

  7. 为什么显示服务器升级中,手机老是显示服务器升级中

    手机老是显示服务器升级中 内容精选 换一换 XEN实例变更为KVM实例前,需要确保Windows弹性云服务器已安装了PV driver和UVP VMTools.本节指导您安装PV driver和UVP ...

  8. 服务器gpu卡型号V100,NVIDIA GPU服务器升级:16块450W Tesla V100

    原标题:NVIDIA GPU服务器升级:16块450W Tesla V100 NVIDIA今天发布了升级版的GPU计算服务器"DGX-2H",和上代DGX-2一样配备多达16颗Te ...

  9. 天河服务器维修,天河云服务器升级

    天河云服务器升级 内容精选 换一换 可以.平台近期对磁盘功能进行了升级,对于系统升级后创建的弹性云服务器,系统最多支持挂载60块磁盘.具体如下:创建弹性云服务器时,您可以为弹性云服务器添加24块磁盘. ...

最新文章

  1. 百亿级数据分表后怎么分页查询?
  2. java软件测试技能要求_软件测试需要掌握什么技能
  3. [导入]PHP通用分页类
  4. mysql排序由低到高_MySQL入门系列(四)—— 排序查询
  5. Jetty+json-lib库抛异常的问题解决过程(java.lang.NoClassDefFoundError: net/sf/json/JSONObject)...
  6. 在windows上使用go编译dll文件,供C++调用
  7. @Cacheable 指定缓存位置
  8. Flask开发VIP版HttpServer #华为云·寻找黑马程序员#
  9. 如何将常规元组或字典转换为 namedtuple
  10. MatLab的排序函数-sort
  11. 分享Qt的面试题目(或许未来的我能用的上呢)_vortex_新浪博客
  12. centos禁ping
  13. 全流程东方时尚C1考试经历
  14. 祭出黑白共济战略,海信、TCL、创维、康佳能否打开增量消费市场?
  15. revo uninstaller pro 长期试用的正确姿势!!
  16. 主引导扇区程序代码优化-2
  17. TypeError: invalid destination position for blit
  18. 云计算特点与发展方向
  19. python 数据分析教程推荐_太香了!墙裂推荐6个Python数据分析神器!!
  20. 我的世界服务器修改视野,我的世界默认视野是多少度

热门文章

  1. eclipse快捷键、设置及常用插件
  2. PDF 认证评级报告位移
  3. ASP.NET(基于C#)及Sql Server2008网页项目学习总结
  4. JavaEE——Spring AOP(面向切面编程)
  5. 图像增强算法汇总(直方图均衡化、拉普拉斯、Log变换、gamma伽马变换)附MATLAB代码
  6. 美洽入选2022年度四川省专精特新中小企业和成都市企业技术中心
  7. 混凝土静力受压弹性模量试验计算公式_谈混凝土静力受压弹性模量
  8. 网盘:MEGASync
  9. python面向对象2
  10. Jmeter接口测试实例讲解