背景
龙芯3a3000,操作系统中标麒麟,自带的gcc版本信息如下:

是4.9.3-3,版本有点旧了,想升级一下gcc,yum update gcc不用想,官方的版本不是最新的。
打开https://ftp.gnu.org/gnu/gcc/gcc-9.3.0/ ,选择gcc 9.3 的源码进行下载

下载后,tar -xvf gcc-9.3.0.tar.xz 解压缩。
进入解压缩后的目录,输入以下命令下载编译依赖包
./contrib/download_prerequisites
自动下载依赖的组件包,都不大,一会就可以下载好。

编译gcc9.3必须配置LIBRARY_PATH路径,过程如下:
vi /etc/profile
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/gcc-9.3/lib
export PATH=$PATH:/usr/local/gcc-9.3/bin
保存后执行source /etc/profile 让配置生效。
正式编译之前,还需要安装一些编译时依赖的库,特别是用于编译32位mips的库
yum install glibc-devel.mipsn32el glib2-devel.mipsn32el zlib-devel.mipsn32el libffi.mipsn32el pixman-devel.mipsn32el
yum install glibc-devel
yum install glibc-static libstdc++-static autoconf binutils
进入gcc源码路径,建立编译临时文件目录
mkdir build
cd build
../configure --prefix=/usr/local/gcc-9.3 --disable-bootstrap --enable-shared --disable-checking --build=mips64el-neokylin-linux-gnu --host=mips64el-neokylin-linux-gnu --target=mips64el-neokylin-linux-gnu --enable-languages=c,c++ --disable-multilib
运行结果:

编译过程大概需要几个小时,所以这里使用nohup编译,开始以后就可以去干别的了
sudo nohup make -j4 &
心里痒痒想随时看进度的话tail -f nohup.out就可以看了。
编译成功的提示也非常的朴素,就是没出错就是成功了,是这样的:

运行编译后的程序试试:

回到刚才的build路径,输入sudo make install 安装就完事了。
-----------------------------------------------------------------------------------------
折腾的过程中出现过:as:无法识别的选项“-mloongson-mmi”的错误提示,随便写个c源码,例如 int main(){ ;return 0;} 编译的时候就会提示这个as:无法识别的选项“-mloongson-mmi”,死马当成活马医,yum install devtoolset-7-gcc ,source /opt/rh/devtoolset-7/enable 把gcc升级到了gcc7.3版本再次进行编译就没事了,当然前提是你的系统里面有中科龙芯的源
/etc/yum.repos.d/fedora.repo
[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
baseurl=http://ftp.loongnix.org/os/loongnix/1.0/os/
enabled=1
metadata_expire=7d
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False
[fedora-debuginfo]
name=Fedora $releasever - $basearch - Debug
failovermethod=priority
baseurl=http://ftp.loongnix.org/os/loongnix/1.0/debug/
enabled=0
metadata_expire=7d
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False
[fedora-source]
name=Fedora $releasever - Source
failovermethod=priority
baseurl=http://ftp.loongnix.org/os/loongnix/1.0/SRPMS/
enabled=1
metadata_expire=7d
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False
本文介绍了如何在龙芯3a3000上手动编译安装GCC 9.3。由于默认的GCC版本较旧,作者从GNU官网下载源码,解决依赖问题,配置环境变量,并通过nohup后台编译。在编译过程中遇到‘as:无法识别的选项“-mloongson-mmi”’的问题,通过升级到GCC 7.3解决。
3087





