|
|
发表于 2006-8-8 14:43:01
|
显示全部楼层
Post by quanliking
我的意思是用新的 gcc 版本来编译很老版本的 gcc 估计很难用,因为 gcc 本身也在不的升级,使之贴 近 C 语言规范,而 C 语言规范本身也在不停的变化。
老的 gcc 源代码是能够找到,但用新的 gcc 编译器来编译,我觉得能成功,很不可思议,而且假设成功,在新的系统上依赖关系能解决么? 这很有道理,新版 gcc 未必能成功编译旧的 gcc,一方面是 C 语言规范,另一方面是对 NTPL 的支持
我曾经在 Arch 下用 gcc-4.0.x 成功编译过 gcc-3.3.6,(跳过 gcc-3.4.x),另外稍旧的 LFS 版本如 LFS-5.1.1 曾要求用 gcc-3.2.x 去编译 gcc-2.95.3,这也可以放心,但是用 3.3/4.x 直接编译 2.95.3 就未试过了,隔代编译虽然不一定行,不过可以肯定的是递归往下编译是可行的,因为每一版的 BLFS 手册都有教程如何去编译上一版的 gcc
Post by quanliking
我只在 gentoo 里编译过 gcc,但那是新版的 gcc。只要找对用来编译的 gcc ,问题不会很大。
至于 lfs,我没编过,我想道理和 gentoo 相差不大吧。 我很久没用 Gentoo,也没看过它 gcc 的 ebuild,不太清楚 Gentoo 在 emerge gcc 的时候有没有 make bootstrap,但 LFS 编译的 gcc 的概念跟 Gentoo 有点不同,做 LFS 的时候要分几个阶段重复编译 gcc (正确一点是 toolchain),从而使目标系统完全独立於宿主系统,确保不受宿主系统任何影响,而 Gentoo 在编译 gcc 的时候,并无宿主系统及目标系统之分,是在同一系统下更新 gcc 的
Post by quanliking
唯一能做的就是找个很老版本的 debian 或其它发型版,当然里面要包含 gcc 2.95.3。 还有一法,可以用早期的 LFS LiveCD 或者较早的 Knoppix 来进行编译
要麽就是先装个 gcc-3.2.x 去编译 gcc-2.95.3 也行 |
|