Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Linux Servers

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

Reply
 
Thread Tools Display Modes
  #1  
Old 11-06-2008, 06:34 AM
Kobaz
Hill Giant
 
Join Date: Nov 2008
Location: Gold Coast, Oz
Posts: 119
Default Debian Lenny

I've an old Intel STL2 server that has Lenny on it. I'm trying to build the server on it, but am having a lot of grief.

With both gcc 4.1 and 4.3 I get the following:

../common/crc32.cpp: In static member function static uint32 CRC32::Update(const int8*, uint32, uint32):
../common/crc32.cpp:238: error: PIC register bx clobbered in asm
make[1]: *** [../common/crc32.o] Error 1

I notice someone else had this error, and they fixed it, but they didn't say how.

I've tried to get current source via svn, using:

svn checkout http://projecteqemu.googlecode.com/s...nk/EQEmuServer

but this doesn't get me all the code, i.e. the ../common/* directory isn't there (or the parent Makefile, or heaps of other files).

Where am I stuffing up?
Reply With Quote
  #2  
Old 11-06-2008, 06:41 AM
Kobaz
Hill Giant
 
Join Date: Nov 2008
Location: Gold Coast, Oz
Posts: 119
Default

BTW, the 1st error was for the 1129 tarball.
Reply With Quote
  #3  
Old 11-06-2008, 07:11 AM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

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.
Reply With Quote
  #4  
Old 11-06-2008, 07:33 AM
Angelox
AX Classic Developer
 
Join Date: May 2006
Location: filler
Posts: 2,049
Default

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..
Reply With Quote
  #5  
Old 11-06-2008, 02:29 PM
kjaer_dk
Fire Beetle
 
Join Date: Oct 2008
Location: Denmark
Posts: 6
Default

I was using a debian lenny install as well and the problem with thats is that you can not downgrade perl 5.10 to 5.8.8

http://www.eqemulator.net/forums/sho...583#post159583
Reply With Quote
  #6  
Old 11-06-2008, 04:25 PM
Kobaz
Hill Giant
 
Join Date: Nov 2008
Location: Gold Coast, Oz
Posts: 119
Default

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.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 05:32 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3