在CentOS7上编译Ralink SDK 64-bit工具链

本来要编译MariaDB的,结果使用Ralink的工具链,在链接uClibc++库的时候,因为没有-fPIC导致链接.a文件有异常。

因此只好自己来编译Ralink的工具链了。目前虚拟机使用的是CentOS 7.3.1611 64bit。

前期准备

由于Ralink的工具链比较早一些,而centos7带的一些可执行程序比较新。主要是make以及texinfo。make可以直接从Ubuntu上拷贝一个3.81版本,或者自己去下个3.81版本的编译。而texinfo则使用4.13版本,编译安装。安装后,先拷贝到自己的一个目录,比如~/bin

将新编译的加入PATH,这样编译的时候,优先走自己编译的make以及texinfo。

gcc 4.6.3有个BUG,需要先打上补丁。

补丁如下:

重新打包gcc 4.6.3

libstdc++编译开启-fPIC

要支持-fPIC的话,需要gcc的编译选项中添加–width-pic才行,具体make menuconfig如下:

或者直接修改.config文件:

开始编译

如果没有修改menuconfig中的gcc输出路径,那么gcc路径默认/opt/buildroot-gcc463 成功后,则安装了新的工具链到该路径下。

支持ucontext

后续编译需要用到ucontext,参考了uClibc-ng以及github上的一个uClibc源码。给现有的工程打上补丁:

将uClibc clean掉,并重新make,开启:

这样uClibc就可以支持ucontext的相关函数了。

参考资料:

Ralink SDK 64-bit cross-compiler on Ubuntu 15.04

How do I compile gnu libstdc++.a with PIC?

转载请注明: 转载自elkPi.com

本文链接地址: 在CentOS7上编译Ralink SDK 64-bit工具链

发表评论

电子邮件地址不会被公开。 必填项已用*标注