|
|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
| Support::Linux Servers Support forum for Linux EQEMu users. |

11-06-2008, 06:41 AM
|
|
Hill Giant
|
|
Join Date: Nov 2008
Location: Gold Coast, Oz
Posts: 119
|
|
BTW, the 1st error was for the 1129 tarball.
|

11-06-2008, 07:11 AM
|
|
Developer
|
|
Join Date: Feb 2004
Location: UK
Posts: 1,540
|
|
To get the code from SVN:
Code:
svn checkout http://projecteqemu.googlecode.com/svn/trunk/ projecteqemu-read-only
The solution to your compilation problem is to downgrade to an older version of GCC. I know 4.1.1 works, as that is what I use on Gentoo.
Edit: I see you tried GCC 4.1, so I'm not sure what your problem is.
|

11-06-2008, 07:33 AM
|
|
AX Classic Developer
|
|
Join Date: May 2006
Location: filler
Posts: 2,049
|
|
This actually is a 'rare' bug that will turn up under certain situations while compiling. I looked it up a while ago and tried to understand it. I have this problem on one of my machines, but it's not a big deal for me since it's not my server machine and i can still compile else where.
If you google 'PIC register bx clobbered in asm', you'll see what I mean.
This is one example of this problem and how they solved it.
Line 112 in crc32.cpp seems to point to an earlier problem of this sort'
Quote:
|
#undef i386 //darwin seems to think we are generating PIC, and we clobber ebx
|
I can downgrade my GCC to version 3.3.6 and this problem will go away, so it must be GCC related too.
I also noticed sometimes I would get one good compile, then it would start with the 'clobbered' BS.
Last edited by Angelox; 11-06-2008 at 03:50 PM..
|

11-06-2008, 04:25 PM
|
|
Hill Giant
|
|
Join Date: Nov 2008
Location: Gold Coast, Oz
Posts: 119
|
|
I'm no expert on asm coding by any means, but in crc32.cpp, why does the code go:
Code:
__asm __volatile (
"xorl %%ebx, %%ebx\n"
"movl %1, %%esi\n"
(cut many lines)
"xorl (%%edi,%%ebx,4), %%eax\n"
"2:\n"
:
: "a" (val), "g" (buf), "g" (bufsize)
: "bx", "cx", "dx", "si", "di"
);
return val;
instead of:
Code:
__asm __volatile (
"push %%ebx"
"xorl %%ebx, %%ebx\n"
"movl %1, %%esi\n"
(cut many lines)
"xorl (%%edi,%%ebx,4), %%eax\n"
"pop %%ebx"
"2:\n"
:
: "a" (val), "g" (buf), "g" (bufsize)
: "cx", "dx", "si", "di"
);
return val;
This bug has nothing to do with the Perl version btw.
|

11-06-2008, 04:46 PM
|
|
Hill Giant
|
|
Join Date: Nov 2008
Location: Gold Coast, Oz
Posts: 119
|
|
Fixed code seems to be:
Code:
__asm __volatile (
"push %%ebx\n"
"xorl %%ebx, %%ebx\n"
"movl %1, %%esi\n"
(cut many lines)
"xorl (%%edi,%%ebx,4), %%eax\n"
"2:\n"
"pop %%ebx\n"
:
: "a" (val), "g" (buf), "g" (bufsize)
: "cx", "dx", "si", "di"
);
return val;
|

11-06-2008, 04:53 PM
|
|
Developer
|
|
Join Date: Feb 2004
Location: UK
Posts: 1,540
|
|
I'll test those changes out and incorporate them. I'll probably also get around to downloading the latest GCC and updating the source at some point so it compiles under it, as these issues come up on a fairly regular basis. Thanks.
|
| Thread Tools |
|
|
| Display Modes |
Hybrid Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 09:16 PM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |