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 07-19-2011, 05:16 PM
Harcourt
Sarnak
 
Join Date: Jul 2011
Posts: 33
Default CPU you selected does not support x86-64 instruction set

I've searched for this, but nothing on this site turns up. This error seems common in a number of other projects, but I bet someone here has ran into it.

Yes, I'm trying to build on a 64-bit machine. All of my machines have over 4G, and are running 64-bit OS's. I'm sure EQEmu will appreciate some extra RAM.

During the build, these errors come out on stderr:

cc1plus: error: CPU you selected does not support x86-64 instruction set

(That message came during a "make clean").

When I do a regular make I get 97 of these messages before the build
halts during the compile of common/timer.cpp

I have downloaded the source tree from SVN today, so this is on the most recent code base.

Does anyone have a recommendation? I really want to build this from source, as I would like to make some local changes.
Reply With Quote
  #2  
Old 07-19-2011, 10:33 PM
lerxst2112
Demi-God
 
Join Date: Aug 2010
Posts: 1,743
Default

What is the output from uname -a?
Reply With Quote
  #3  
Old 07-19-2011, 10:49 PM
Harcourt
Sarnak
 
Join Date: Jul 2011
Posts: 33
Default

Linux xxxxxxxxxxxxxxx 2.6.38.8-35.fc15.x86_64 #1 SMP Wed Jul 6 13:58:54 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
Reply With Quote
  #4  
Old 07-19-2011, 11:39 PM
lerxst2112
Demi-God
 
Join Date: Aug 2010
Posts: 1,743
Default

Ok. If you google for that error you'll see it's generally due to one or more of the packages you have installed. I would go through the prereqs for the server like MySQL, Perl, etc, and make sure they are up to date and installed for the appropriate architecture.
Reply With Quote
  #5  
Old 07-20-2011, 02:40 PM
Harcourt
Sarnak
 
Join Date: Jul 2011
Posts: 33
Default

I've googled the error, and it didn't seem to me that there was any consensus on what the cause was. I am leaning towards something in a makefile assuming 32-bits, unless people are building this code in a 64-bit environment.

I did check on the installed software, here are the installed packages matching the prereqs in the linux server guides:

Installed Packages
gcc.x86_64 4.6.0-9.fc15 @anaconda-InstallationRepo-201105131943.x86_64
gcc-c++.x86_64 4.6.0-9.fc15 @anaconda-InstallationRepo-201105131943.x86_64
mysql.x86_64 5.5.14-2.fc15 @anaconda-InstallationRepo-201105131943.x86_64
mysql-devel.x86_64 5.5.14-2.fc15 @updates
mysql-server.x86_64 5.5.14-2.fc15 @anaconda-InstallationRepo-201105131943.x86_64
perl.x86_64 4:5.12.4-159.fc15
@anaconda-InstallationRepo-201105131943.x86_64
perl-IO-stringy.noarch
2.110-15.fc15 @fedora


I believe that perl-IO-stringy is noarch since it is not executable code, but rather PERL. The others are the proper 64-bit versions.
Reply With Quote
  #6  
Old 07-20-2011, 06:28 PM
Harcourt
Sarnak
 
Join Date: Jul 2011
Posts: 33
Default Think I see the problem

Nothing to do with installed packages.

The default makefiles build with -march=i686 which is causing all of those errors on my 64-bit system.

In several directories I see makefile.a64, so manually issuing a "make -f makefile.a64" gets me further along.

There was one problem in zone where the PERL_FLAGS were not being used, I modified makefile.a64 to work like makefile in that respect.

There were a few directories with no makefile.a64, so I copied makefile to makefile.a64 and switched the architecture.

Everything builds. There are a ton of warnings for various things that shouldn't hurt (comparison between signed and unsigned).

Of course, since it builds it must run correctly.

I'm interested in hearing comments on the above. If folks are building 64-bit just fine, then I am somehow in the minority and would like to know why. If I am one of a handful doing this, then it would be nice to know who is maintaining the a64 makefiles and discuss changes might make others' have an easier time.

I would also feel a ton better if those warnings were gone, and may clean up my build tree. If there is interest we can discuss getting those changes back into subversion at some point.
Reply With Quote
  #7  
Old 07-20-2011, 06:32 PM
lerxst2112
Demi-God
 
Join Date: Aug 2010
Posts: 1,743
Default

Many people are able to compile for 64 bit just fine.

Based on my google search, what you're looking for is something specifying -march, -mcpu, or -mtune with an inappropriate value for 64-bit support.

Here's a likely candidate from the makefile in zone. I didn't check any others.

COPTS=$(WFLAGS) -O -g -march=i686 -pthread -pipe -D_GNU_SOURCE -DINVERSEXY -DFX -DZONE $(DFLAGS) $(MYSQL_FLAGS) $(PERL_FLAGS)
Reply With Quote
  #8  
Old 07-20-2011, 06:58 PM
Harcourt
Sarnak
 
Join Date: Jul 2011
Posts: 33
Default

That is pretty much what I just said.
Reply With Quote
  #9  
Old 07-20-2011, 09:09 PM
lerxst2112
Demi-God
 
Join Date: Aug 2010
Posts: 1,743
Default

Well, I replied before I saw your post. Good luck with your server.
Reply With Quote
  #10  
Old 08-08-2011, 05:16 PM
mgellan's Avatar
mgellan
Sarnak
 
Join Date: Mar 2007
Location: NA
Posts: 48
Default

I changed the -march=686 to -march=athlon64 (I think, been a while) to ensure everything compiled right. Worked like a charm.

Regards,
Mg
Reply With Quote
  #11  
Old 11-22-2011, 11:03 AM
LordAdakos
Sarnak
 
Join Date: Dec 2007
Posts: 57
Default

another thing you can do is to just install on an i386 version, and then do a apt-get install linux-image-2.6-686-bigmem (if i recall correctly) to utilize more than 4 gigs of ram.
Reply With Quote
  #12  
Old 12-17-2011, 11:45 PM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default

I did get mine to compile, it even ran with no errors. Unfortunately the zones crash as you go in. My database and source are the same as my Debian 32 bit. I ran everything through the command line, and checked the logs and there are no errors, I just get a message that the zone restarted.

There is another message on the forum with other people getting that same "rebooting zone" message that have tried to run x64. Anyone had success ?
Reply With Quote
  #13  
Old 12-18-2011, 12:20 AM
lerxst2112
Demi-God
 
Join Date: Aug 2010
Posts: 1,743
Default

It would help to see a stack trace of the crash. Load a core file in gdb and type 'bt'
Reply With Quote
  #14  
Old 12-18-2011, 12:37 AM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default

Is there a way to force it to do a core dump ? The zone appears to be rebooting, but there is never a core dump to debug.
Reply With Quote
  #15  
Old 12-18-2011, 12:56 AM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default

I ended up removing the -O from the makefiles and all is well.

Just for notation, this is vSphere 5, Debian 6 AMD64 build, with a Xeon 8 core processor.
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 04:56 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