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

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 08-19-2014, 07:25 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default Compiler Support

Just a heads up: sometime in the near future we will be dropping support for VS2010 and by extension building on Windows XP.
Reply With Quote
  #2  
Old 08-19-2014, 09:40 PM
lerxst2112
Demi-God
 
Join Date: Aug 2010
Posts: 1,743
Default

Assuming this is due to C++11 requirements it might help people to know the minimum version of gcc required as well.
Reply With Quote
  #3  
Old 08-19-2014, 10:09 PM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,165
Default

GCC 4.6 is the minimum. (Currently)

Clang, unsupported, although it might work with Perl 5.20+ or not building with Perl support ...

EDIT:

Code:
buildclang % ls bin 
eqlaunch  export_client_files  import_client_files  libcommon.a  libluabind.a  queryserv  shared_memory  ucs  world  zone
yep, building without perl support now works for clang (although, I didn't actually test run the code ... don't feel like installing clang on my VM and my desktop doesn't actually have everything set up to actually run a server)

Last edited by demonstar55; 08-19-2014 at 10:17 PM..
Reply With Quote
  #4  
Old 08-20-2014, 03:01 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

It's unfortunate Perl didn't compile with clang for so long, will be a while before 5.20 filters down =/
Reply With Quote
  #5  
Old 08-20-2014, 04:29 PM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,450
Default

VS2012 supports targeting Windows XP afaik.
Reply With Quote
  #6  
Old 08-21-2014, 12:55 AM
lerxst2112
Demi-God
 
Join Date: Aug 2010
Posts: 1,743
Default

Quote:
Originally Posted by Secrets View Post
VS2012 supports targeting Windows XP afaik.
You can target XP, but you cannot install the 2012 IDE/compiler on Windows XP. Not sure about Vista, I think it's 7+, I can't actually find the 2012 requirements anymore on the Microsoft site.
Reply With Quote
  #7  
Old 10-01-2014, 04:44 PM
amraist
Fire Beetle
 
Join Date: Aug 2005
Posts: 29
Default

I've managed to get it compiled with clang and perl.

There are a lot of patches that need to be in place for it to actually run though. There's a difference in the way gcc and clang process function arguments(basically they are reversed, left to right vs right to left).

For example the line is fine with GCC, but creates a segfault when compiled with clang:
Code:
if (RunQuery(query, MakeAnyLenString(&query, "SELECT count(slot) from aa_effects where aaid=%i", skill_id), errbuf, &result)) {
Code needs to be rewritten as follows
Code:
uint32 len_query = MakeAnyLenString(&query, "SELECT count(slot) from aa_effects where aaid=%i", skill_id);
if (RunQuery(query, len_query, errbuf, &result)) {
According to the c++ spec, the compiler is allowed to determine the order of parameter resolution.

As far as what I did to get Perl working correctly, I don't remember at this point, but I remember fighting with it, so I'm pretty sure I have that worked out. It's just been a while since I got it all working last. Might be just a simple change to the cmake files.

I can share my work if there is any interest.
Reply With Quote
  #8  
Old 10-01-2014, 06:44 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

Thanks for bringing that to my attention, we're slowly phasing out that style of query anyway at least.

Fixing perl appears to be needing to either update to a newer version or actually modifying the perl headers in some key spots to add spaces between identifiers.
Reply With Quote
  #9  
Old 10-01-2014, 10:00 PM
rhyotte
Hill Giant
 
Join Date: Jul 2012
Location: Oklahoma
Posts: 222
Default

Thank heavens for Lua!
Reply With Quote
  #10  
Old 10-02-2014, 04:56 PM
amraist
Fire Beetle
 
Join Date: Aug 2005
Posts: 29
Default

I'm glad to hear those are going away... There are a lot of those queries I had to track down.

This is my fix for perl on FreeBSD. I'm pretty sure that's all I needed. I know I didn't change the headers, and I couldn't seem to find a version that it worked without that.

Code:
IF(UNIX)
IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
ADD_DEFINITIONS(-DFREEBSD)
+ ADD_DEFINITIONS(-Wno-reserved-user-defined-literal)
SET(FREEBSD TRUE)
ENDIF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
ENDIF(UNIX)
Reply With Quote
  #11  
Old 10-02-2014, 09:09 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

Aye the fix is recent (like 3 months ago recent) so it's unlikely to be in many repos.

Thanks for the flag fix, I'll be sure we get that in there.
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 08:45 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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3