如何用最新的GCC构建旧的源代码?

时间:2010-09-12 03:38:04

标签: c linux gcc

我正在尝试构建OSKit源代码。它是针对gcc 2.95.2编写的,但是在我的盒子里我得到了gcc 4.3.2。 4.3.2不允许使用以下语法:

 asm volatile("
  pushfl
  popl %0" : "=r" (eflags));
 return eflags;

4.3.2总是抱怨:

error: missing terminating " character

有这么多语法,有没有办法让4.3.2接受这个?或者是否有更通用的方法让4.3.2表现得像2.95.2?或者我在哪里可以下载2.95.2版本的gcc?

谢谢!

更新

我的真正目标是建立OSKit。 OSKit声称与GCC 2.7.x或2.95.2兼容。我的Ubuntu 8.10安装了GCC 4.3.2。

我尝试了以下编译序列:

4.3.2 build 2.95.2 --- failed

4.3.2-> 3.3.6 - > 2.7.2.3 ---成功。

4.3.2 - > 2.7.2.3 ---成功

3.3.6 - > 2.95.2 ---失败

虽然我仍然没有2.95.2,但我至少得到2.7.2.3。

但OSKit仍然以2.7.2.3 ......

打破

目前我不知道该怎么做...... :(

有人能给我一些建议吗? @ _ @

2 个答案:

答案 0 :(得分:1)

我相信你需要这样的东西:

 asm volatile("pushfl\n\t"
              "popl %0"
              : "=r" (eflags)
             );
 return eflags;

参考:GCC-Inline-Assembly-HOWTO

答案 1 :(得分:0)

您可以在此处下载:http://ftp.gnu.org/gnu/gcc/

最正确的方法是下载旧版本并安装在PATH之外的目录中。

海湾合作委员会从第2版改为4级......