Go Back   EQEmulator Home > EQEmulator Forums > Archives > Archive::Development > Archive::Development

Archive::Development Archive area for Development's posts that were moved here after an inactivity period of 90 days.

Reply
 
Thread Tools Display Modes
  #1  
Old 09-22-2003, 07:57 AM
krich
Hill Giant
 
Join Date: May 2003
Location: The Great Northwest
Posts: 150
Default Linux Compile Broken on 0.5.0DR3

Looks like line [client_process.cpp:4333] is not using the new item classes properly. It's passing int16 failedproduct into PutItemInInventory when an ItemInst object is expected. This causes the compile to fail when using gcc 3.2.

I suspect this was just one conversion to the new item structs that slipped through the cracks.

I changed from this:
Code:
else{
  this->Message(4,"You lacked the skills to fashion the items together.");
  if (failproduct!=0)                               
    PutItemInInventory(30,failproduct,1);                        
}
to this:
Code:
else{
  this->Message(4,"You lacked the skills to fashion the items together.");
  if (failproduct!=0) {
    const Item_Struct* myitem = database.GetItem(failproduct);         
    ItemCommonInst common(myitem, 0);                                  
    PutItemInInventory(30,(ItemInst&)common,1);                        
  }
}
I'm not sure if going to the database is appropriate here, so if there's a better solution, post away!

regards,

krich
Reply With Quote
  #2  
Old 09-22-2003, 08:19 AM
Merth
Dragon
 
Join Date: May 2003
Location: Seattle, WA
Posts: 609
Default

That is strange. vs.net happily compiles that bit of code. It's not a case of being #ifdef'd out, either.

The code you put in is correct, and has been checked into our internal source code repository. Thanks for catching that.

There are some other bits of code around this bit that will need changing as well - but I can't change it at the moment because I can't test it:

Item ID is now a uint32, and an int16 runs the risk of overflow these days. Even a uint16 won't cut it. If you catch any spots in code using int16 for item id, please let us know!
Reply With Quote
  #3  
Old 09-22-2003, 08:29 AM
kanechart
Sarnak
 
Join Date: Sep 2003
Posts: 78
Default

It works on linux on irc chat I forget his name got to work.
__________________
Stop asking when the server will be out it be out when this says 100% and then maybe even a day or 2!
http://www.eqemulator.net/status.php
Reply With Quote
  #4  
Old 09-22-2003, 08:33 AM
Merth
Dragon
 
Join Date: May 2003
Location: Seattle, WA
Posts: 609
Default

Krich already posted the solution... If interested, please re-read his post.
Reply With Quote
  #5  
Old 09-22-2003, 11:06 PM
Trumpcard
Demi-God
 
Join Date: Jan 2002
Location: Charlotte, NC
Posts: 2,614
Default

I pushed a new CVS update out last night, should correct this issue. I also removed a couple of warnings that newer gcc's complain about.

Only problem I'm having now is with the crc32 asm code I modified for linux, the newer glibc/nasm is not compiling it properly, and I really hate to have to rewrite that function again!!! Probably only affects me as I'm using bleeding edge gentoo builds (~x86 unstable versions)
__________________
Quitters never win, and winners never quit, but those who never win and never quit are idiots.
Reply With Quote
  #6  
Old 09-23-2003, 10:38 AM
IAfishiefishie
Fire Beetle
 
Join Date: Sep 2003
Posts: 3
Default crc32.cpp probs on linux

heya trumpcard.. do you get something like this:

gcc -c -Wall -Wuninitialized -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wcomment -Wcast-align -Winline -Wno-deprecated -g -march=i686 -O -pthread -pipe -DFX -D_GNU_SOURCE -DINVERSEXY -DWORLD -DDEBUG=5 -DSHAREMEM -DCATCH_CRASH -DNO_PIDLOG -I/usr/include/mysql -I/usr/mysql/include ../common/crc32.cpp -o ../common/crc32.o
../common/crc32.cpp:105:2: warning: #warning "Comment out i386 define if your arch isn't x86"
../common/crc32.cpp: In static member function `static uint32 CRC32::Update(const int8*, unsigned int, unsigned int)':
../common/crc32.cpp:167: error: asm-specifier for variable `__crc32' conflicts with asm clobber list
make: *** [../common/crc32.o] Error 1


that's from CVS about 5 mins ago...

lol no clue wot to do about it though :P

oops...

Mandrake 9.2 RC1 is wots on the beast... i guess that's pretty recent... mmm...

Gcc specs:
Reading specs from /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.1/specs
Configured with: ../configure --prefix=/usr --libdir=/usr/lib --with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --enable-long-long --enable-__cxa_atexit --enable-languages=c,c++,ada,f77,objc,java,pascal --host=i586-mandrake-linux-gnu --with-system-zlib
Thread model: posix
gcc version 3.3.1 (Mandrake Linux 9.2 3.3.1-1mdk)

ldconfig -v | grep 'glib' :
libglib-2.0.so.0 -> libglib-2.0.so.0.200.2
libglib-1.2.so.0 -> libglib-1.2.so.0.0.10

working dev environment though, cuz i've had to recompile a helluvalot of junk :P *mumble*apache/php/mysql/etc..*mumble*

anyways...

watchin this with interest

><'>
Reply With Quote
  #7  
Old 09-23-2003, 12:54 PM
IAfishiefishie
Fire Beetle
 
Join Date: Sep 2003
Posts: 3
Default

got bored so am gettin the latest snapshot from glibc.. maybe the prob been fixed...

la la la
Reply With Quote
  #8  
Old 09-23-2003, 02:51 PM
Trumpcard
Demi-God
 
Join Date: Jan 2002
Location: Charlotte, NC
Posts: 2,614
Default

Yep, probably the new gcc is what I'm guessing (3.3.1)

Easiest way around this for the timebeing is to change comment out the define(i386) in common/crc32.cpp. (might have to change the elif(i386) to something like elif(i986) just to make sure it tries to use the old way of generating crc...
__________________
Quitters never win, and winners never quit, but those who never win and never quit are idiots.
Reply With Quote
  #9  
Old 09-23-2003, 03:51 PM
IAfishiefishie
Fire Beetle
 
Join Date: Sep 2003
Posts: 3
Default

k...

i've updated gcc/glib/libstdc++ from the cooker rep...

gonna give it another try

i'll change the #elif(i386) to jump over that bit if it bangs again

Reply With Quote
Reply


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 11:40 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