PDA

View Full Version : Compile issue - SuSE 10.1


ksmith08
07-20-2006, 06:14 AM
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

aza77
07-20-2006, 06:34 AM
try gcc 3.4 or 3.3

fathernitwit
07-23-2006, 01:15 PM
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.

ksmith08
08-10-2006, 05:50 AM
Thanks.

I ended up setting up a Windows version. But I plan on revisiting the Linux version.

arew264
09-09-2006, 03:25 AM
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.

arew264
09-09-2006, 03:27 AM
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...

MikeyUSC
09-09-2006, 03:29 AM
The compiler flag won't cause the error.. the actual error is this:

../common/EQStream.h:226: error: extra qualification

arew264
09-09-2006, 04:01 AM
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!

arew264
09-09-2006, 04:19 AM
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

MikeyUSC
09-09-2006, 04:30 AM
[QUOTE=arew264]
map.h:113: error: extra qualification

arew264
09-09-2006, 06:00 AM
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...

arew264
09-09-2006, 06:03 AM
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.

arew264
09-09-2006, 09:57 AM
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!

cubber
09-21-2006, 03:38 AM
I am having this same issue, what file do I have to edit to remove the extra qualifications?

John Adams
10-08-2006, 08:46 AM
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 (http://www.eqemulator.net/forums/showpost.php?p=126383&postcount=17) 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...."

John Adams
10-09-2006, 01:38 AM
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

cubber
10-09-2006, 01:52 AM
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.

John Adams
10-09-2006, 02:03 AM
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.

bobbydole
10-09-2006, 04:23 AM
it'd probably be easier and faster to remove the extra qualifiers in the header files. It only takes about 5 minutes or so.

John Adams
10-09-2006, 04:48 AM
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. :)

cubber
10-09-2006, 05:47 AM
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.

John Adams
10-09-2006, 07:51 AM
I may just do that. So far, this has not been a pleasant experience. :)

bobbydole
10-09-2006, 07:56 AM
I may just do that. So far, this has not been a pleasant experience. :)


good luck!

eq4me
10-09-2006, 08:09 AM
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.


yum install compat-gcc-32 compat-gcc-32-c++
mkdir ~eqemu/bin
ln -s <path_to>/gcc32 ~eqemu/bin/gcc
ln -s <path_to>/g++32 ~eqemu/bin/g++
export PATH="/home/eqemu/bin:$PATH"


Note: strangely if I use /usr/bin instead of <path_to> the forum shows me an error message ...

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?

cubber
10-09-2006, 08:12 AM
John,

I PM'd you some good info for getting gentoo up and running.

eq4me
10-09-2006, 08:28 AM
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 really dont want to start an distro flame but on the server side(no X11, gaming and so on) there is not much difference between distributions. The kernel and maybe the glibc might be optimized to your processor but I just cant see the the advantage in having to emerge every software package and compile it specifically for your hardware setup. THis can take quite a long time on slower cpus. I could care less if 'ls' takes 0.1 or 0.08 seconds. So imho it is not worth the effort.
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.

cubber
10-09-2006, 08:51 AM
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'.

Angelox
10-09-2006, 10:12 AM
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!

fathernitwit
10-15-2006, 06:48 AM
i'll finally get these extra qualifiers taken out of the code today.