smwikipedia
smwikipedia

Reputation: 64173

How to build old source code with latest GCC?

I am trying to build the OSKit source code. It is orginally written against gcc 2.95.2, but on my box I got gcc 4.3.2. And 4.3.2 doesn't allow the following syntax:

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

4.3.2 always complains that:

error: missing terminating " character

There're so many syntax like this, is there a way to let the 4.3.2 accept this? Or is there a more general way to let the 4.3.2 behave like 2.95.2? Or where could I download the 2.95.2 version of gcc?

Thanks!

Update

My real aim is to build the OSKit. OSKit claims to be compilabe with GCC 2.7.x or 2.95.2. My Ubuntu 8.10 is installed with GCC 4.3.2.

I tried the following compiling sequences:

4.3.2 build 2.95.2 --- failed

4.3.2->3.3.6->2.7.2.3 --- success.

4.3.2 -> 2.7.2.3 --- success

3.3.6 -> 2.95.2 --- failed

Though I still don't have 2.95.2, I got 2.7.2.3 at least.

But the OSKit is still broken with 2.7.2.3...

Currently I don't know what to do... :(

Could anyone give me some advice? @_@

Upvotes: 2

Views: 4665

Answers (2)

Clifford
Clifford

Reputation: 93446

I believe that you need something like:

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

Ref: GCC-Inline-Assembly-HOWTO

Upvotes: 1

i4k
i4k

Reputation: 158

You could download here: http://ftp.gnu.org/gnu/gcc/

The most correct way is to download the old version and install in a directory outside of your PATH.

The GCC has changed much from version 2 to 4 ...

Upvotes: 1

Related Questions