tomjansen n00b
Joined: 12 Dec 2004 Posts: 14 Location: Holland
|
Posted: Thu Oct 12, 2006 11:06 pm Post subject: red-blue-quake2 on amd64 |
|
|
Hi folks,
has anyone ever got red-blue-quake2 working on amd64?
It's got the "x86" keyword in the ebuild.
When I try: ACCEPT_KEYWORDS="x86" emerge red-blue-quake2
I get: Code: | gcc -Dstricmp=strcasecmp -g -O3 -pipe -march=athlon64 -fomit-frame-pointer -DGENTOO_DATADIR=\"/usr/share/games/quake2/baseq2/\" -O6 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations -o releasei386-glibc/client/snd_linux.o -c ../linux/snd_linux.c
gcc -Dstricmp=strcasecmp -g -O3 -pipe -march=athlon64 -fomit-frame-pointer -DGENTOO_DATADIR=\"/usr/share/games/quake2/baseq2/\" -O6 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations -o releasei386-glibc/client/sys_linux.o -c ../linux/sys_linux.c
../linux/sys_linux.c:227:2: error: #error Unknown arch
../linux/sys_linux.c: In function 'Sys_GetGameAPI':
../linux/sys_linux.c:238: error: 'gamename' undeclared (first use in this function)
../linux/sys_linux.c:238: error: (Each undeclared identifier is reported only once
../linux/sys_linux.c:238: error: for each function it appears in.)
make[1]: *** [releasei386-glibc/client/sys_linux.o] Error 1
make[1]: Leaving directory `/var/tmp/portage/red-blue-quake2-0.1/work/quake2-3.21/linux'
make: *** [build_release] Error 2
!!! ERROR: games-fps/red-blue-quake2-0.1 failed.
Call stack:
ebuild.sh, line 1546: Called dyn_compile
ebuild.sh, line 937: Called src_compile
red-blue-quake2-0.1.ebuild, line 40: Called die
!!! (no error message)
!!! If you need support, post the topmost build error, and the call stack if relevant. |
So I change that line in quake2-3.21/linux/sys_linux.c:
Code: | @@ -222,11 +222,11 @@
#ifdef __i386__
const char *gamename = "/usr/games/lib/red-blue-quake2/gamei386.so";
#elif defined __alpha__
const char *gamename = "gameaxp.so";
#else
-#error Unknown arch
+ const char *gamename = "/usr/games/lib/red-blue-quake2/gamei386.so";
#endif |
Now I get a linker error:
Code: | /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/../../../../x86_64-pc-linux-gnu/bin/ld: releasei386-glibc/ref_soft/sys_dosa.o: relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC
releasei386-glibc/ref_soft/sys_dosa.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [releasei386-glibc/ref_softx.so] Error 1
make[1]: Leaving directory `/var/tmp/portage/red-blue-quake2-0.1/work/quake2-3.21/linux'
make: *** [build_release] Error 2
!!! ERROR: games-fps/red-blue-quake2-0.1 failed.
Call stack:
ebuild.sh, line 1546: Called dyn_compile
ebuild.sh, line 937: Called src_compile
red-blue-quake2-0.1.ebuild, line 40: Called die
!!! (no error message)
!!! If you need support, post the topmost build error, and the call stack if relevant. |
Adding -fPIC to the CFLAGS does not solve the problem, same error.
There is a file quake2-3.21/linux/sys_dosa.s.
So maybe I need to pass the assembler an option similar to -fPIC?
Any ideas?
I just want to play the game,
could I compile it on a 32-bit Gentoo and then run it on my 64-bit Gentoo?
Some other way to run red-blue-quake2 on amd64? |
|