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 10-09-2006, 09:31 PM
eq4me
Hill Giant
 
Join Date: Jul 2006
Posts: 166
Default Patch for compiling EQEmu with gcc 4.1

After looking a bit closer into the matter and getting enlightened by two collegues it turned out to be much more trivial then I thought it was.

Here is a patch against 0.7.0-857. It also includes some changes to the Makefiles I discussed in the Linux Guide.

Code:
--- EQEmu-0.7.0-857/Makefile    2006-10-07 07:22:52.000000000 +0000
+++ EQEmu-0.7.0-857-gcc4.1/Makefile     2006-10-10 08:55:04.084514500 +0000
@@ -8,4 +8,2 @@
        $(MAKE) -C utils
-       $(MAKE) -C eqemucollector
-       $(MAKE) -C eqextractor

@@ -35,4 +33,2 @@
        $(MAKE) -C eqlaunch clean
-       $(MAKE) -C eqemucollector clean
-       $(MAKE) -C eqextractor clean

--- EQEmu-0.7.0-857/common/EQStream.h   2006-05-13 02:35:58.000000000 +0000
+++ EQEmu-0.7.0-857-gcc4.1/common/EQStream.h    2006-10-10 08:44:27.344720750 +0000
@@ -225,3 +225,3 @@
                inline const EQStreamType GetStreamType() const { return StreamType; }
-               static const char *EQStream::StreamTypeString(EQStreamType t);
+               static const char *StreamTypeString(EQStreamType t);

EQEmu-0.7.0-857-gcc4.1/common/rulesys.h
--- EQEmu-0.7.0-857/common/rulesys.h    2006-07-18 13:29:49.000000000 +0000
+++ EQEmu-0.7.0-857-gcc4.1/common/rulesys.h     2006-10-10 08:53:56.692302750 +0000
@@ -85,3 +85,3 @@

-       RuleManager::RuleManager();
+       RuleManager();

EQEmu-0.7.0-857-gcc4.1/eqlaunch/makefile
--- EQEmu-0.7.0-857/eqlaunch/makefile   2006-04-17 13:59:13.000000000 +0000
+++ EQEmu-0.7.0-857-gcc4.1/eqlaunch/makefile    2006-10-10 09:13:33.993879500 +0000
@@ -13,3 +13,3 @@
 MYSQL_FLAGS=-I/usr/include/mysql
-MYSQL_LIB=-L/usr/include/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv
+MYSQL_LIB=-L/usr/include/mysql -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv
 DFLAGS=-DEQDEBUG=5

--- EQEmu-0.7.0-857/utils/Makefile      2006-01-15 18:31:18.000000000 +0000
+++ EQEmu-0.7.0-857-gcc4.1/utils/Makefile       2006-10-10 08:34:57.997138750 +0000
@@ -2,3 +2,3 @@
 all: cleanipc spell_explorer
-       gmake -C azone
+       make -C azone

@@ -12,3 +12,3 @@
        rm -f cleanipc
-       gmake -C azone clean
+       make -C azone clean

EQEmu-0.7.0-857-gcc4.1/zone/PlayerCorpse.h
--- EQEmu-0.7.0-857/zone/PlayerCorpse.h 2006-07-09 19:50:57.000000000 +0000
+++ EQEmu-0.7.0-857-gcc4.1/zone/PlayerCorpse.h  2006-10-10 08:51:00.289278250 +0000
@@ -31,10 +31,10 @@
 public:
-       static void Corpse::SendEndLootErrorPacket(Client* client);
-       static void Corpse::SendLootReqErrorPacket(Client* client, int8 response = 2);
-       static Corpse* Corpse::LoadFromDBData(int32 in_corpseid, int32 in_charid, char* in_charname, uchar* in_data, int32 in_datasize, float in_x, float in_y, float in_z, float in_heading, char* timeofdeath, bool rezzed = false);
-
-       Corpse::Corpse(NPC* in_npc, ItemList* in_itemlist, int32 in_npctypeid, const NPCType** in_npctypedata, int32 in_decaytime = 600000);
-       Corpse::Corpse(Client* client, sint32 in_rezexp);
-       Corpse::Corpse(int32 in_corpseid, int32 in_charid, char* in_charname, ItemList* in_itemlist, int32 in_copper, int32 in_silver,
int32 in_gold, int32 in_plat, float in_x, float in_y, float in_z, float in_heading, float in_size, int8 in_gender, int16 in_race, int8
in_class, int8 in_deity, int8 in_level, int8 in_texture, int8 in_helmtexture,int32 in_rezexp);
-       Corpse::~Corpse();
+       static void SendEndLootErrorPacket(Client* client);
+       static void SendLootReqErrorPacket(Client* client, int8 response = 2);
+       static Corpse* LoadFromDBData(int32 in_corpseid, int32 in_charid, char* in_charname, uchar* in_data, int32 in_datasize, float in_x, float in_y, float in_z, float in_heading, char* timeofdeath, bool rezzed = false);
+
+       Corpse(NPC* in_npc, ItemList* in_itemlist, int32 in_npctypeid, const NPCType** in_npctypedata, int32 in_decaytime = 600000);
+       Corpse(Client* client, sint32 in_rezexp);
+       Corpse(int32 in_corpseid, int32 in_charid, char* in_charname, ItemList* in_itemlist, int32 in_copper, int32 in_silver, int32 in_gold, int32 in_plat, float in_x, float in_y, float in_z, float in_heading, float in_size, int8 in_gender, int16 in_race, int8 in_class, int8 in_deity, int8 in_level, int8 in_texture, int8 in_helmtexture,int32 in_rezexp);
+       ~Corpse();

--- EQEmu-0.7.0-857/zone/beacon.h       2006-07-09 19:50:57.000000000 +0000
+++ EQEmu-0.7.0-857-gcc4.1/zone/beacon.h        2006-10-10 08:49:32.515792750 +0000
@@ -29,4 +29,4 @@
 public:
-       Beacon::Beacon(Mob *at_mob, int lifetime);
-       Beacon::~Beacon();
+       Beacon(Mob *at_mob, int lifetime);
+       ~Beacon();

--- EQEmu-0.7.0-857/zone/makefile       2006-03-03 04:21:24.000000000 +0000
+++ EQEmu-0.7.0-857-gcc4.1/zone/makefile        2006-10-10 09:12:27.273709750 +0000
@@ -13,3 +13,3 @@
 MYSQL_FLAGS=-I/usr/include/mysql
-MYSQL_LIB=-L/usr/include/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv
+MYSQL_LIB=-L/usr/include/mysql -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv
 DFLAGS=-DEQDEBUG=5 -DCATCH_CRASH -DNO_PIDLOG -DSHAREMEM -DSPELL_EFFECT_SPAM -DFIELD_ITEMS -DCOMBINED -DAPP_OPCODE_SIZE=2 -Di386
--- EQEmu-0.7.0-857/zone/map.h  2005-09-09 04:54:36.000000000 +0000
+++ EQEmu-0.7.0-857-gcc4.1/zone/map.h   2006-10-10 08:49:49.312842500 +0000
@@ -112,3 +112,3 @@
 public:
-       static Map* Map::LoadMapfile(const char* in_zonename, const char *directory = NULL);
+       static Map* LoadMapfile(const char* in_zonename, const char *directory = NULL);
        Map();
--- EQEmu-0.7.0-857/zone/net.h  2004-12-21 17:02:43.000000000 +0000
+++ EQEmu-0.7.0-857-gcc4.1/zone/net.h   2006-10-10 08:50:09.986134500 +0000
@@ -39,4 +39,4 @@
 public:
-       NetConnection::~NetConnection();
-       NetConnection::NetConnection();
+       ~NetConnection();
+       NetConnection();

--- EQEmu-0.7.0-857/zone/zone.h 2006-10-03 03:13:21.000000000 +0000
+++ EQEmu-0.7.0-857-gcc4.1/zone/zone.h  2006-10-10 08:51:30.035137250 +0000
@@ -69,4 +69,4 @@
 public:
-       static bool Zone::Bootup(int32 iZoneID, bool iStaticZone = false);
-       static void Zone::Shutdown(bool quite = false);
+       static bool Bootup(int32 iZoneID, bool iStaticZone = false);
+       static void Shutdown(bool quite = false);
Unfortunately this patch might not apply cleanly due to the snap&paste into here. I have no Webspace right now for a direct download.

Last edited by eq4me; 10-10-2006 at 06:21 AM..
Reply With Quote
  #2  
Old 10-10-2006, 01:47 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

This would so kick ass if I do not have to re-install yet another Linux just to get an old gcc to work. Thank you, eq4me. I'll host the file for you if you PM it to me.

Looks clean at first glance, though (copy/paste into a notepad doc). No extra spaces, which I think is what you're talking about.
Reply With Quote
  #3  
Old 10-10-2006, 02:16 AM
eq4me
Hill Giant
 
Join Date: Jul 2006
Posts: 166
Default

Quote:
Originally Posted by John Adams
I'll host the file for you if you PM it to me..
Unfortunately you can't attach a file to a PM, I would have to snap&paste it into the message.

You could do the changes manually if the patch does not apply and diff again.

The commandline would be

Code:
diff  -N -u1 -r <orig-src-dir> <modified-src-dir>  >EQEmu-gcc-4.1.patch
I would recommend doing this with a newly untared archive as the compiling, even after a `make clean`, does leave some files which you dont want to clutter your patch with.

Last edited by eq4me; 10-10-2006 at 10:41 AM..
Reply With Quote
  #4  
Old 10-10-2006, 05:37 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

Ok I'll check that out when I get home. I need to learn this Diff stuff anyway.
Reply With Quote
  #5  
Old 10-13-2006, 06:10 PM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Angry

I am having the worst luck with this. Replacing the lines manually worked perfectly. I can compile and run my world on Linux no problem. Even made a few tweaks to make sure I was really getting it done right.

However, I cannot get this patch above to apply no matter what I do. Even taking just one simple thing (Makefile) and trying to patch gives me an error, thinking it's already been patched and wanting to -R it... but the file still has the extra MAKEs in it, so it's not already patched.

And, I was able to do the diff to re-make the patch the other night perfectly - following your diff example above (except on my Fedora, it says -u1 is obsolete and to use -u 1). Now, tonight, out of nowhere, I cannot even Diff anymore. Now it says my second dir is an extra operand lol... I give up.

Need sleep. I'll try again tomorrow.
Reply With Quote
  #6  
Old 10-13-2006, 07:19 PM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

Stupid edit button. I knew as soon as I cried and whined like a noob, I'd fix it. I finally got the Diff to work again (upper-case U, not lower case u oops).

Here's a link to the diff file for anyone interested in what eq4me did above. I tested it on a virgin 070-857 tar and got no errors so I think it's formatted right.

http://members.cox.net/raahvinmt/fil...57-gcc41.patch




(btw, it's tomorrow...)
Reply With Quote
  #7  
Old 12-27-2006, 02:14 PM
kumado
Fire Beetle
 
Join Date: Dec 2006
Posts: 2
Default

I was making an attempt to get the installation done under Suse 10.0. gcc 4.1. I had to modify each make file in one place from <errmsg.h> to "errmsg.h". It was not finding the header.
Once I got it to find the mysql*.h files and the libmysqlclient file, I got down to cleanipc error.
I figgure I was stuck, too new gcc and mysql and installed Suse 9.1 to roll back a bit.
It made just fine with no links to mysql or changes to the make files ( EQEmu-0.7.0-940 ) but it halted in the same place - cleanipc.
I mention it in hopes it helps someone else.

I also ask for help on what to do next. I saw a message to do g++ cleanipc.cpp -o cleanipc, which I did. Truthfully, what to do with all the peices in what fashion next is too scattered to find. 'Secially on 24k dial-up.
EQ4ME's wiki shows to copy the exe over to the server folder, what else do you do? Do I go for the data bases? Copy the files from the EQ game installation over ( to where ) is there a better file structure set up and server launch sequence please?

Thanks

Kumado
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 12:44 PM.


 

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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3