there are a lot of errors i manually fixed due to static/non-static. ok...easy to fix...but at the end that's: if /bin/sh ../../libtool --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include -prefer-pic -O3 -mtune=pentium3 -march=pentium3 -pipe -fomit-frame-pointer -mmmx -msse -ffast-math -pipe -Wall -fno-common -MT gib_classes.lo -MD -MP -MF ".deps/gib_classes.Tpo" -c -o gib_classes.lo gib_classes.c; \ then mv -f ".deps/gib_classes.Tpo" ".deps/gib_classes.Plo"; else rm -f ".deps/gib_classes.Tpo"; exit 1; fi i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include -O3 -mtune=pentium3 -march=pentium3 -pipe -fomit-frame-pointer -mmmx -msse -ffast-math -pipe -Wall -fno-common -MT gib_classes.lo -MD -MP -MF .deps/gib_classes.Tpo -c gib_classes.c -fPIC -DPIC -o .libs/gib_classes.o gib_classes.c: In function 'Object_Class_Children_f': gib_classes.c:197: error: invalid storage class for function 'iterator' gib_classes.c: In function 'GIB_Classes_Build_Scripted': gib_classes.c:615: error: invalid storage class for function 'mtabfree' gib_classes.c:621: error: invalid storage class for function 'fname' make[2]: *** [gib_classes.lo] Error 1 make[2]: Leaving directory `/var/tmp/portage/quakeforge-0.5.5/work/quakeforge-0.5.5/libs/gib' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/quakeforge-0.5.5/work/quakeforge-0.5.5/libs' make: *** [all-recursive] Error 1 i've no idea about that.
I'm getting the same issue, and will provide a patch momentarily.
This patch allows it to build with GCC4. I'm currently in the middle of a full-system re-emerge with GCC4 (hence how I discovered the build), so the patch is as-of-yet untested. I'll be able to test it this evening, and will report back my results.
Created attachment 83322 [details, diff] 0.5.5-gcc4.patch
That is confirmed, the patch produces a functional quakeforge on gcc 4.0.3.
charles seems not completly fixed here: i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../../../include -I../../../include -O3 -mtune=pentium3 -march=pentium3 -pipe -fomit-frame-pointer -mmmx -msse -ffast-math -pipe -Wall -fno-common -MT libvid_x11_la-context_x11.lo -MD -MP -MF .deps/libvid_x11_la-context_x11.Tpo -c context_x11.c -o .libs/libvid_x11_la-context_x11.o context_x11.c:100: error: static declaration of 'x_gamma' follows non-static declaration ../../../include/context_x11.h:54: error: previous declaration of 'x_gamma' was here make[3]: *** [libvid_x11_la-context_x11.lo] Error 1 make[3]: Leaving directory `/var/tmp/portage/quakeforge-0.5.5/work/quakeforge-0.5.5/libs/video/targets' make[2]: *** [all-recursive] Error 1 .... vid_x11.c:89: error: static declaration of 'doShm' follows non-static declaration ../../../include/context_x11.h:59: error: previous declaration of 'doShm' was here i'm running gcc 4.1.0. can you update patch to 4.1.0 compatibility?
My mistake! The patch I submitted will compile the SDL, SDL32, and SGL clients---but apparently not the X11 clients. I'll give it another go tonight and enable building all the clients.
my use flags are: USE="X alsa dga fbcon ncurses opengl oss sdl svga vorbis xmms xv zlib -3dfx -cdinstall -debug -ipv6" 0 kB however your patch seems just to remove static statement. may be ok...or may not. check a note in bug http://bugs.gentoo.org/show_bug.cgi?id=123616 ok...that's a static/extern change...but....worth a look.
I don't think that's going to be a problem here. What appears to be happening in this case is that the QuakeForge developers had a lot of variables that were supposedly global API vars, and included in header files, but then declared static upon declaration in the C files. Not a good way to fly---and gcc4 recognizes that they're confused. The "static" implies they can't be accessed outside the individual C file, but then they're marked global... I'll try to get a build with all USE flags enabled for QF tonight (egh, means I have to install svgalib...).
Oh, and I forgot to add---if you just want to play quake, you can USE="alsa ncurses opengl sdl vorbis mms zlib -3dfx -X -cdinstall -debug -dga -fbcon -ipv6 -oss -svga -xv" emerge quakeforge and it should build and run the sgl, sdl, and sdl32 clients.
Got it, here's an updated patch.
Created attachment 83406 [details, diff] 0.5.5-gcc4.patch (v2)
works perfectly. please add to portage and close this bug
Patch applied to portage, thanks.