gcc-2.95.3的编译
无聊的时候看书,看到书上提到了linux2.6内核的编译,突然兴起,于是就去下了个源码包,下载地址是https://mirrors.cnnic.cn/kernel/v2.6/。解压之后发现,README文件提到该内核用的是gcc-2.95.3。于是,我又去找了这个源码,下载地址是http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-2.95.3/。这个版本的gcc需要打一些补丁,补丁的下载地址是https://www.linuxfromscratch.org/patches/downloads/gcc/。
安装过程
首先,把源码解压
tar zxvf gcc-2.95.3-tar.gz
cd gcc-2.95.3
把补丁放到这个目录后,打上,命令是patch -Np1 -i XXXXX
,XXX是补丁名字。如果没有patch命令,就安装patch即可。
之后,创建文件夹,并输入以下内容
mkdir build
cd build
../configure --prefix=/usr/local/gcc-2.95.3 --host=i686-linux --enable-language=c
make
make后,出现了两个错误。第一个错误是提示node与函数声明的类型不一致。查看报错信息的h文件,得知是chill_tree_node类型被写成tree_node(相反的错误也有一个)。那么,只要以头文件为准,把类型修改后即可。第二个错误是提示一个叫做ffecom_gfrt_basictype的函数参数返回值类型不匹配,同样也是以头文件为准,将返回值类型修改即可。
完成这些修复,就没有其它问题了,继续安装。安装之后把软链接改一改就可以了。
make&&make install
rm -rf /usr/bin/gcc
ln -s /usr/local/gcc-2.95.3/bin/gcc /usr/bin/gcc
gcc -v
即可看到gcc是版本2.95.3。