View Single Post
  #4  
Old 11-15-2009, 03:42 AM
gaeorn
Developer
 
Join Date: Apr 2009
Location: USA
Posts: 478
Default

Quote:
Originally Posted by prickle View Post
... when I click "Enter World" the server logs tell me that the server detects the SoF client properly and then the zone I'm entering crashes.
I'll bet you are running 64bit. I had this problem with a 64bit system and tracked it down to a gcc optimization bug and stringstreams. The SoF code uses stringstreams and since the default makefile includes the -O flag, i'm sure you are compiling optimized. Since removing -O from the makefile will slow the server significantly, you should instead modify the makefile so it will compile the one object file without the -O. The following patch will do so for you.

Code:
Index: zone/makefile
===================================================================
--- zone/makefile       (revision 1048)
+++ zone/makefile       (working copy)
@@ -18,6 +18,7 @@
 PERL_LIB=$(shell perl -MExtUtils::Embed -e ldopts)
 DFLAGS+=-DEMBPERL -DEMBPERL_PLUGIN -DHAS_UNION_SEMUN
 WFLAGS=-fpermissive -Wall -Wuninitialized -Wwrite-strings -Wcast-qual -Wno-deprecated  -Wcomment -Wcast-align
+SOFCOPTS=$(WFLAGS) -g -pthread -pipe -D_GNU_SOURCE -DINVERSEXY -DFX -DZONE $(DFLAGS) $(MYSQL_FLAGS) $(PERL_FLAGS)
 COPTS=$(WFLAGS) -O -g -march=i686 -pthread -pipe -D_GNU_SOURCE -DINVERSEXY -DFX -DZONE $(DFLAGS) $(MYSQL_FLAGS) $(PERL_FLAGS)
 LINKOPTS=$(COPTS) -rdynamic -L. -lstdc++ -ldl $(MYSQL_LIB) $(PERL_LIB)

@@ -27,6 +28,9 @@

 include makefile.common

+../common/patches/SoF.o: ../common/patches/SoF.cpp
+        $(CC) $(NOLINK) $(SOFCOPTS) $< $(OUT)$@
+
 .depend depend:
        for f in $(SF); \
        do \
Reply With Quote