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

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

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #4  
Old 11-21-2002, 11:45 PM
Trumpcard
Demi-God
 
Join Date: Jan 2002
Location: Charlotte, NC
Posts: 2,614
Default

The strnicmp problem was something Neo and I changed in the 1st wave of patch changes, Image probably just grabbed a version of the source file before we dropped the i.

Edit: Ok, I see why they're being missed in linking , those functions are all wrapped in a #ifdef SHAREMEM which isnt defined or available for linux, so they're not being compiled into the object in the first place.

This is images new way of loading doors into shared memory, I think the problem will need to be in addressed in net.cpp and client_process.cpp. well need to make a couple of changes to ensure that the Linux version uses the old way of loading doors, or we fix sharemem for linux. (Thats a harder one, but it would be really cool, it would signifanctly decrease memory usage).

Comment out the database::LoadDoor call in net.cpp, and GetDoors call and if statement right behind it in client_process.cpp .

It does work, I compiled everything, started the servers up, and zoned in and doors are still working.

Heres my changed files for linux

http://denial.dyndns.org/eqemu/3.13

Unless we get shared mem working, we'll need them to wrap those too sections in #ifdef 's so it will work the same for windows/linux.


If you look in the directories I posted, I made alot of minor changes in the world source and a couple in common. These are to fix alot of warnings in gcc, and start working on bringing the code up to the new C++ standards.

The new standards ask you to drop the .h off of standard c++ includes, and drop the .h and add a c in front of standard c libraries.

for instance,
#include <stdio.h>
becomes
#include <cstdio>

also, some functions need to be called differently, things like hex and dec need to be called with std::hex and std::dec to specify them as being in the Standard Template Library. cout's should be changed to std::cout also, this is considered the good form so you can override them easily, if you want the standard ones, you'd just call them with the direct reference to std::


The good thing here is with these changes, world will compile out of the box with gcc3.2 . I'll be working on getting the zone code compiling with it also. Right now, Im running a 3.2 build world server with a 2.95 built zone server. Make sure if you use 3.2, you modify your makefile to take advantage of the new cpu specific optimizations. I use -march=athlon-xp , the binary wont be compatible on any other processer, but it's optimized with athlon specific instructions so it will execute faster.

Make sure if you do it this way though to do a 'make clean' in between building zone and world. The .o files in common aren't compatible between the 2.
__________________
Quitters never win, and winners never quit, but those who never win and never quit are idiots.
Reply With Quote
 


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 10:41 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