Compile issue - SuSE 10.1
I'm getting the following when trying to make 'world.'
[CODE] Tux:/home/eqemu/source/07192006/world # make gcc -c -Wall -Wuninitialized -Wwrite-strings -Wcast-qual -Wcomment -Wcast-align -Wno-deprecated -g -march=i686 -O -pthread -pipe -I../common/SocketLib -DFX -D_G NU_SOURCE -DINVERSEXY -DWORLD -DDEBUG=5 -DEQDEBUG=5 -DSHAREMEM -DCATCH_CRASH -DN O_PIDLOG -DFIELD_ITEMS -DIRC -Di386 -DAPP_OPCODE_SIZE=2 -DEMBPERL -DEMBPERL_PLUG IN -DHAS_UNION_SEMUN -I/usr/include/mysql -march=i586 -mtune=i686 -fmessage-leng th=0 -D_FORTIFY_SOURCE=2 -g -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -fno-strict-alia sing -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-ali asing -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BIT S=64 -I/usr/lib/perl5/5.8.8/i586-linux-thread-multi/CORE ../common/timer.cpp - o ../common/timer.o cc1plus: warning: command line option "-Wdeclaration-after-statement" is valid f or C/ObjC but not for C++ gcc -c -Wall -Wuninitialized -Wwrite-strings -Wcast-qual -Wcomment -Wcast-align -Wno-deprecated -g -march=i686 -O -pthread -pipe -I../common/SocketLib -DFX -D_G NU_SOURCE -DINVERSEXY -DWORLD -DDEBUG=5 -DEQDEBUG=5 -DSHAREMEM -DCATCH_CRASH -DN O_PIDLOG -DFIELD_ITEMS -DIRC -Di386 -DAPP_OPCODE_SIZE=2 -DEMBPERL -DEMBPERL_PLUG IN -DHAS_UNION_SEMUN -I/usr/include/mysql -march=i586 -mtune=i686 -fmessage-leng th=0 -D_FORTIFY_SOURCE=2 -g -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -fno-strict-alia sing -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-ali asing -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BIT S=64 -I/usr/lib/perl5/5.8.8/i586-linux-thread-multi/CORE ../common/packet_dump .cpp -o ../common/packet_dump.o cc1plus: warning: command line option "-Wdeclaration-after-statement" is valid f or C/ObjC but not for C++ ../common/EQStream.h:226: error: extra qualification |
try gcc 3.4 or 3.3
|
either mysql or perl is outputing that flag, try running:
perl -MExtUtils::Embed -e ccopts or mysql_config --cflags to see which one... whiever one it is needs to be updated or something to make it work with new gcc... or just downgrade as previously suggested. |
Thanks.
I ended up setting up a Windows version. But I plan on revisiting the Linux version. |
Well, sorry to resurrect a slightly old post, but I get this error too under Arch Linux, a 686 optomized distro that tries to stay bleeding edge (prolly the same cause as above, too new a gcc). I'ma post the output to the above commands.
|
Perl is doing it. When I run perl -MextUtile::Embed -e ccopts, a section says -Wdeclaration-after-statement. I believe this was the problem line, but how do I get rid of it? Is it percolating in some config file on the far side of nowhere? I'll start looking...
|
The compiler flag won't cause the error.. the actual error is this:
../common/EQStream.h:226: error: extra qualification |
Well, that line now looks like:
static const char *StreamTypeString(EQStreamType t); and it was static const char *EQStream::StreamTypeString(EQStreamType t); It seems to be compiling now... Thanks! |
I have been foiled again:
gcc -c -Wall -Wuninitialized -Wwrite-strings -Wcast-qual -Wno-deprecated -Wcomment -Wcast-align -O -g -pg -march=i686 -pthread -pipe -D_GNU_SOURCE -DINVERSEXY -DFX -DZONE -DEQDEBUG=5 -DCATCH_CRASH -DNO_PIDLOG -DSHAREMEM -DSPELL_EFFECT_SPAM -DFIELD_ITEMS -DCOMBINED -DAPP_OPCODE_SIZE=2 -Di386 -DEMBPERL -DEMBPERL_PLUGIN -DHAS_UNION_SEMUN -I/usr/include/mysql `perl -MExtUtils::Embed -e ccopts` zone.cpp -o zone.o cc1plus: warning: command line option "-Wdeclaration-after-statement" is valid for C/ObjC but not for C++ map.h:113: error: extra qualification |
[QUOTE=arew264]
map.h:113: error: extra qualification |
Well, I got it to compile, now if only I could figure out where the heck this legendary eqlaunch file is supposed to come from...
|
Where IS that file supposed to come from? I don't seem to have it anywhere and the linux install guide seems to assume that it's there.
|
HOLY COW now I feel like a total moron... maybe the eqstartup file was supposed to come from the eqstartup directory found at the root level? DOH!
|
I am having this same issue, what file do I have to edit to remove the extra qualifications?
|
Not to bump, but just reporting that Fedora Core 5 and gcc 4.1.1 rel 1.fc5 (i386) also has this issue. I am having no luck back-rev'ing gcc, and currently attempting cubber's guide HERE to see if I can get Core 5 to work. Else, I'll drop back to 4 and just not do any updates (I guess... this is all new to me heh).
The laugh is, I had everything perfect on Fedora Core 4, and thought "hmm. an update. let's be current". Now, I'm on day 4 of "fixing" everything. 17 reloads later. sigh... "if it ain't broke...." |
Ok sorry, but I am apparently going to ask for help in this. Using Fedora Core 5, if I use yum to check what versions of gcc/gcc-c++ are available, it only reports 4.1.1. And, I want 3.4 or so.
Q: How do I force Core 5 to install an older version? Attempted: -- I have tried putting the exact name of various RPMs I find, and it always says "Nothing to do". -- I downloaded the gcc-3.4* RPM itself, and it starts checking dependencies and yells at me that it needs 40 other packages (exaggerated). -- I've tried going abck to Fedora 4, but for some reason my SSH is horribly slow (takes 20 secs for a char to appear on my screen, but FC5 does not). As I stated, I had this working perfectly when I did some FTP install of FC4, but this time I am getting my ass kicked. Any insights from a Linux guru? Thanks in advance. J |
John Adams,
Note that my guide is written for gentoo, I am not sure if it will work for fedora core 5. Though I did read somewhere that after gcc 3.4 you should be able to use gcc-config to switch between versions. Just don't know how you would install it in parallel on fedora core 5. In gentoo you just emerge it which is pretty much the same thing as yum in fedora/red hat. |
Yeah cubber, the two systems are different enough that I could not use your guide very much. There was no gcc-config (not found). So maybe there was more wrong with my setup than just a wrong version of gcc.
Thanks tho. |
it'd probably be easier and faster to remove the extra qualifiers in the header files. It only takes about 5 minutes or so.
|
True, but wouldn't that have to be done on each source release? I'd like to stay as close to release as possible... so when something is wrong, I do not think it's something I did. :)
|
I tried removing the qualifiers before I found out how to toggle between the 2 versions of gcc. Even after removing all of the extra qualifiers there were still errors that I could not resolve to get things to compile.
My advice would be to get rid of fedora core and go with gentoo.. thats what I did and will never look back, gentoo is sooooo much faster than fedora core. |
I may just do that. So far, this has not been a pleasant experience. :)
|
Quote:
good luck! |
install the compat-gcc-32 and compat-gcc-32-c++ packages.
A qick&dirty hack would be to to add an ./bin directory into your homedir(in the case of the howto that would be /home/eqemu/bin/) and link the gcc32 and g++32 binaries to there as gcc and g++. Then modify the PATH variable. Code:
yum install compat-gcc-32 compat-gcc-32-c++ Voila, gcc -v will now show the 3.2.3 version You can put the export line into ~eqemu/.bashrc so you dont have to execute it on every new shell. Edit: There might be a more Fedora'ish way of selecting the right compiler but I have no time to look into that. Imho it would be better to get rid of all the extra qualifications so we can use the gcc 4.1 compiler. Manually that would take ages. Anyone up for doing a script? |
John,
I PM'd you some good info for getting gentoo up and running. |
Quote:
But you are right Fedora with a stock kernel and enabled selinux is not the fastest experience. I for myself are using Debian for my private computers. Yes, it is definitely not for the novice if you want full multimedia support but as a pure server it is imho second to none - Once it is installed. Thats the reason we dont use it at work, unattended remote deployment still sucks compared with Fedora/Redhat Enterprise. |
I was just suggesting it to him because it is very easy to set it up to switch gcc versions with gcc-config in gentoo. As for distro's only you can decide which one is right for you, takes alot of trial and error to find your niche'.
|
Ha! you want to really screw yourself? install Mandriva 2007 - I just wasted two more days trying to get it to run right, finally I got so frustrated , I reverted that machine back to windows (I only use it for gameplay anyways). I still have my Linux server, it's under Mandriva 2006 , which is pretty stable.
Anyways, heres how I got different versions if GCC to work ; install the second GCC as GCC2, third GCC3, etc. They will all end up with executables in /usr/bin and you'll see the versions (example gcc-4.0.1) and one will be GCC (usually a link). So, say you just installed your Mandrake 2007 and found out that your Nvidia drivers only compile with 4.0* , but the "smart" people from Mandriva put in a beta GCC (4.1) and deleted your old GCC 4.0: I installed gcc 4.0 back to "GCC2" , then renamed the original GCC to a back up : copy GCC2 to GCC , install Nvidia, then resotore the original GCC back to it's state. Sounds stupid, but worked for me! |
i'll finally get these extra qualifiers taken out of the code today.
|
All times are GMT -4. The time now is 03:44 PM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.