r1ch.net forums
* Home Help Search Login Register
r1ch.net  |  r1ch.net stuff  |  R1Q2  |  Topic: Compile Error on Debian Lenny powerpc b7431
Pages: [1]
Print
Author Topic: Compile Error on Debian Lenny powerpc b7431  (Read 5531 times)
zorton
Member

Posts: 5


« on: November 09, 2007, 02:40:06 am »

I'm attempting to build the dedicated server component of build 7431 on my powerpc machine.  It's a debian lenny machine running kernel version 2.6.22 with the following libraries:


glibc 2.6.1
gcc 4.2.3
zlib 1.2.3.3


running make in the r1q2ded directory results in the following:

zorton@kat on 1] [10:34 PM]
[~/quake2/r1q2-b7431/binaries/r1q2ded]make clean
rm -f cmd.o cmodel.o common.o crc.o cvar.o files.o md4.o net_chan.o mersennetwister.o redblack.o sv_ccmds.o sv_ents.o sv_game.o sv_init.o sv_main.o sv_send.o sv_user.o sv_world.o q_shlinux.o sys_linux.o glob.o net_udp.o q_shared.o pmove.o ioapi.o unzip.o sv_anticheat.o r1q2ded r1q2ded-combine
[zorton@kat on 1] [10:34 PM]
[~/quake2/r1q2-b7431/binaries/r1q2ded]make
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/cmd.d -MMD   -c -o cmd.o ../../qcommon/cmd.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/cmodel.d -MMD   -c -o cmodel.o ../../qcommon/cmodel.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/common.d -MMD   -c -o common.o ../../qcommon/common.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/crc.d -MMD   -c -o crc.o ../../qcommon/crc.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/cvar.d -MMD   -c -o cvar.o ../../qcommon/cvar.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/files.d -MMD   -c -o files.o ../../qcommon/files.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/md4.d -MMD   -c -o md4.o ../../qcommon/md4.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/net_chan.d -MMD   -c -o net_chan.o ../../qcommon/net_chan.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/mersennetwister.d -MMD   -c -o mersennetwister.o ../../qcommon/mersennetwister.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/redblack.d -MMD   -c -o redblack.o ../../qcommon/redblack.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_ccmds.d -MMD   -c -o sv_ccmds.o ../../server/sv_ccmds.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_ents.d -MMD   -c -o sv_ents.o ../../server/sv_ents.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_game.d -MMD   -c -o sv_game.o ../../server/sv_game.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_init.d -MMD   -c -o sv_init.o ../../server/sv_init.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_main.d -MMD   -c -o sv_main.o ../../server/sv_main.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_send.d -MMD   -c -o sv_send.o ../../server/sv_send.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_user.d -MMD   -c -o sv_user.o ../../server/sv_user.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_world.d -MMD   -c -o sv_world.o ../../server/sv_world.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/q_shlinux.d -MMD   -c -o q_shlinux.o ../../linux/q_shlinux.c
{standard input}: Assembler messages:
{standard input}:20: Error: Unrecognized opcode: `int'
make: *** [q_shlinux.o] Error 1
Logged
QwazyWabbit
Member

Posts: 402


« Reply #1 on: November 09, 2007, 08:22:47 am »

This appears to be a portability problem at line 112:

Code:
void Sys_DebugBreak (void)
{
        __asm ("int $3");
}

Opcode int 3 is "interrupt 3", the Intel x86 interrupt responsible for passing control to debuggers on Windows platforms. I am not sure if they use the same interrupt on x86 Linux platforms or not. This code is invalid on PowerPC. You will have to re-write this function to pass control to the debugger on PowerPC and condition it on whether the platform is x86 or not.

You will have PPC portability problems everywhere __asm appears in any source files since they are targetting x86 in most of the functions where they hand-optimized the code this way. You will have to write valid C versions of these functions or valid __asm blocks targetting the PPC in place of the x86 instructions.
« Last Edit: November 09, 2007, 08:49:04 am by QwazyWabbit » Logged
zorton
Member

Posts: 5


« Reply #2 on: November 09, 2007, 10:29:55 am »

I did a quick grep of the source tree to get an idea of what it would take.

It dosen't look so bad, I suspect the client directory matches can be ignored because I only want the dedicated server component.  Most of the heavy  lifting will be in the game_shared.c section which will need new functions written that don't call asm functions on powerpcn machines.

grep follows with 3 lines of context on either side of the match, excluding the win32 directory

[~/quake2/r1q2-b7431]grep -C 3 -n -r --exclude-dir=win32 "__asm" *
client/snd_mix.c-58-#else
client/snd_mix.c-59-__declspec ( naked ) void __cdecl S_WriteLinearBlastStereo16 (void)
client/snd_mix.c-60-{
client/snd_mix.c:61:   __asm {
client/snd_mix.c-62-
client/snd_mix.c-63- push edi
client/snd_mix.c-64- push ebx
--
client/snd_mix.c-399-
client/snd_mix.c-400-__declspec( naked ) void __cdecl S_PaintChannelFrom8 (channel_t *ch, sfxcache_t *sc, int count, int offset)
client/snd_mix.c-401-{
client/snd_mix.c:402:   __asm {
client/snd_mix.c-403- push esi
client/snd_mix.c-404- push edi
client/snd_mix.c-405- push ebx
--
game/q_shared.c-271-
game/q_shared.c-272-/*__declspec( naked ) void __cdecl Q_ftol2( float f, int *out )
game/q_shared.c-273-{
game/q_shared.c:274:   __asm fld dword ptr [esp+4]
game/q_shared.c:275:   __asm fistp dword ptr [esp+8]
game/q_shared.c:276:   __asm ret
game/q_shared.c-277-}*/
game/q_shared.c-278-
game/q_shared.c-279-__declspec( naked ) int EXPORT Q_ftol( float f )
game/q_shared.c-280-{
game/q_shared.c:281:   __asm
game/q_shared.c-282-   {
game/q_shared.c-283-      fld dword ptr [esp+4]
game/q_shared.c-284-      push eax
--
game/q_shared.c-290-
game/q_shared.c-291-/*__declspec( naked ) void __cdecl Q_ftolsse( float f, int *out )
game/q_shared.c-292-{
game/q_shared.c:293:   __asm movd xmm0, [esp+4]
game/q_shared.c:294:   __asm cvttss2si eax, xmm0
game/q_shared.c:295:   __asm mov [esp+8], eax
game/q_shared.c:296:   __asm ret
game/q_shared.c-297-}
game/q_shared.c-298-
game/q_shared.c-299-__declspec( naked ) void __cdecl Q_ftol( float f, int *out )
game/q_shared.c-300-{
game/q_shared.c:301:   __asm cmp sse2_enabled, 0
game/q_shared.c:302:   __asm jz nonsse
game/q_shared.c:303:   __asm call Q_ftolsse
game/q_shared.c:304:   __asm ret
game/q_shared.c-305-nonsse:
game/q_shared.c:306:   __asm call Q_ftol86
game/q_shared.c:307:   __asm ret
game/q_shared.c-308-}
game/q_shared.c-309-
game/q_shared.c-310-__declspec (naked) void __cdecl Q_sseinit (void)
game/q_shared.c-311-{
game/q_shared.c:312:   __asm mov eax, 1
game/q_shared.c:313:   __asm cpuid
game/q_shared.c:314:   __asm test edx, 4000000h
game/q_shared.c:315:   __asm jz nosse
game/q_shared.c:316:   __asm mov sse2_enabled, 1
game/q_shared.c-317-nosse:
game/q_shared.c:318:   __asm ret
game/q_shared.c-319-}*/
game/q_shared.c-320-
game/q_shared.c-321-__declspec (naked) void EXPORT Q_fastfloats (float *f, int *outptr)
game/q_shared.c-322-{
game/q_shared.c:323:   /*__asm cmp sse2_enabled, 0
game/q_shared.c:324:   __asm jz nonsse
game/q_shared.c:325:   __asm mov eax, [esp+4]
game/q_shared.c:326:   __asm movups xmm1, [eax]
game/q_shared.c:327:   __asm cvttps2dq xmm0, xmm1
game/q_shared.c:328:   __asm mov eax, [esp+8]
game/q_shared.c:329:   __asm movdqu [eax], xmm0
game/q_shared.c:330:   __asm ret
game/q_shared.c-331-nonsse:*/
game/q_shared.c:332:   __asm mov eax, [esp+8]
game/q_shared.c:333:   __asm mov ebx, [esp+4]
game/q_shared.c-334-
game/q_shared.c:335:   __asm fld dword ptr [ebx]
game/q_shared.c:336:   __asm fistp dword ptr [eax]
game/q_shared.c:337:   __asm fld dword ptr [ebx+4]
game/q_shared.c:338:   __asm fistp dword ptr [eax+4]
game/q_shared.c:339:   __asm fld dword ptr [ebx+8]
game/q_shared.c:340:   __asm fistp dword ptr [eax+8]
game/q_shared.c:341:   __asm ret
game/q_shared.c-342-}
game/q_shared.c-343-
game/q_shared.c-344-#else
--
game/q_shared.c-509-   //static int bops_initialized;
game/q_shared.c-510-   static int Ljmptab[8];
game/q_shared.c-511-
game/q_shared.c:512:   __asm
game/q_shared.c-513-   {
game/q_shared.c-514-      push esi
game/q_shared.c-515-      push ebx
--
game/q_shared.h-119-#define EXPORT __cdecl
game/q_shared.h-120-#define IMPORT __cdecl
game/q_shared.h-121-//#if !defined _M_AMD64
game/q_shared.h:122: //#define DEBUGBREAKPOINT __asm int 3
game/q_shared.h-123-//#else
game/q_shared.h-124- //#define DEBUGBREAKPOINT DebugBreak
game/q_shared.h-125-//#endif
--
linux/q_shlinux.c-111-
linux/q_shlinux.c-112-void Sys_DebugBreak (void)
linux/q_shlinux.c-113-{
linux/q_shlinux.c:114:        __asm ("int $3");
linux/q_shlinux.c-115-}
linux/q_shlinux.c-116-
linux/q_shlinux.c-117-void Sys_Mkdir (char *path)
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #3 on: November 09, 2007, 10:50:31 am »

Most of the ASM has alternative C versions available when id386 is (not?) defined. The Sys_DebugBreak is the only one I think that doesn't,
Logged
zorton
Member

Posts: 5


« Reply #4 on: November 09, 2007, 07:32:01 pm »

You think I could cheap out and just comment out all calls to that function?

Logged
zorton
Member

Posts: 5


« Reply #5 on: November 09, 2007, 08:39:51 pm »

Okay I did it, I comented out all calls to the offending function and commented out the function itself....

Attempting to rebuild brings the following

[zorton@kat on 1] [04:28 PM]
[~/quake2/r1q2-b7431/binaries/r1q2ded]make
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/cmd.d -MMD   -c -o cmd.o ../../qcommon/cmd.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/cmodel.d -MMD   -c -o cmodel.o ../../qcommon/cmodel.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/common.d -MMD   -c -o common.o ../../qcommon/common.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/crc.d -MMD   -c -o crc.o ../../qcommon/crc.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/cvar.d -MMD   -c -o cvar.o ../../qcommon/cvar.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/files.d -MMD   -c -o files.o ../../qcommon/files.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/md4.d -MMD   -c -o md4.o ../../qcommon/md4.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/net_chan.d -MMD   -c -o net_chan.o ../../qcommon/net_chan.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/mersennetwister.d -MMD   -c -o mersennetwister.o ../../qcommon/mersennetwister.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/redblack.d -MMD   -c -o redblack.o ../../qcommon/redblack.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_ccmds.d -MMD   -c -o sv_ccmds.o ../../server/sv_ccmds.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_ents.d -MMD   -c -o sv_ents.o ../../server/sv_ents.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_game.d -MMD   -c -o sv_game.o ../../server/sv_game.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_init.d -MMD   -c -o sv_init.o ../../server/sv_init.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_main.d -MMD   -c -o sv_main.o ../../server/sv_main.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_send.d -MMD   -c -o sv_send.o ../../server/sv_send.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_user.d -MMD   -c -o sv_user.o ../../server/sv_user.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sv_world.d -MMD   -c -o sv_world.o ../../server/sv_world.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/q_shlinux.d -MMD   -c -o q_shlinux.o ../../linux/q_shlinux.c
cc -DDEDICATED_ONLY -DANTICHEAT -DNDEBUG -DLINUX -O2 -fno-strict-aliasing -Wall -ffloat-store -pipe -g -MF .depends/sys_linux.d -MMD   -c -o sys_linux.o ../../linux/sys_linux.c
../../linux/sys_linux.c: In function 'Sys_Backtrace':
../../linux/sys_linux.c:231: error: 'union uc_regs_ptr' has no member named 'gregs'
../../linux/sys_linux.c:468:2: error: #error "Don't know what kind of dynamic objects to use for this architecture."
../../linux/sys_linux.c: In function 'Sys_GetGameAPI':
../../linux/sys_linux.c:477: error: 'gamename' undeclared (first use in this function)
../../linux/sys_linux.c:477: error: (Each undeclared identifier is reported only once
../../linux/sys_linux.c:477: error: for each function it appears in.)
make: *** [sys_linux.o] Error 1
Logged
QwazyWabbit
Member

Posts: 402


« Reply #6 on: November 09, 2007, 11:23:11 pm »

It would have been better to leave the function calls in and simply modify it:

Code:
void Sys_DebugBreak (void)
{
#ifdef __PPC__
        Q_assert (0);
#else
        __asm("int $3");
#endif
}

This would allow the program to still invoke the debugger in debug builds on Linux but the function would be empty (and do nothing) in release builds.

In XCode on the Mac (if you are on Tiger or Leopard) you might want to investigate the Debugger() function. It invokes the kernel debugger so I am not sure of the implications on a live OS X but it will perform a function similar to DebugBreak() in Windows. I have not tested this so I don't know if it invokes GDB or KDB or what debugger it uses on the Mac.

I don't have Debian or a PPC, I do most of my porting on Windows, Fedora and OS X Tiger... Actually, I have a PPC (G5) but it's in the garage, missing a monitor.

Code:
void Sys_DebugBreak (void)
{
        Debugger();
}

See Debugger() doc in XCode help for IOLib.h.

Note also that the file you are dealing with is linux/q_shlinux.c and not q_shwin.c.

« Last Edit: November 10, 2007, 12:13:30 am by QwazyWabbit » Logged
QwazyWabbit
Member

Posts: 402


« Reply #7 on: November 09, 2007, 11:46:40 pm »

Sys_Backtrace() in linux/sys_linux.c is another example of porting for i86/32bit versus i86/64bit but not allowing for other platforms. You will have to check each instance in all the linux/ files and modify them to accomodate the PPC architecture.

Example from line 230:
Code:
#ifndef __x86_64__
array[1] = (void *) uc->uc_mcontext.gregs[REG_EIP];
#endif

You are not on x86_64 so this gets compiled but it doesn't know what REG_EIP is so the compiler chokes, a good thing since a backtrace is processor specific.

I think this will fix backtrace for you:

Code:
#ifdef __x86_64__
void Sys_Backtrace (int sig)
#elif defined __PPC__
void Sys_Backtrace (int sig)   //a stub
#else
void Sys_Backtrace (int sig, siginfo_t *siginfo, void *secret)
#endif
{
...

If you want a functioning backtrace facility, you will have to write one for the ppc architecture. Smiley
« Last Edit: November 10, 2007, 12:15:41 am by QwazyWabbit » Logged
QwazyWabbit
Member

Posts: 402


« Reply #8 on: November 09, 2007, 11:54:05 pm »

To fix Sys_GetGameAPI:

Code:
/*
=================
Sys_GetGameAPI

Loads the game dll
=================
*/
void *Sys_GetGameAPI (void *parms, int baseq2)
{
void *(*GetGameAPI) (void *);

char name[MAX_OSPATH];
char curpath[MAX_OSPATH];
char *path;
#ifdef __i386__
const char *gamename = "gamei386.so";
#elif defined __alpha__
const char *gamename = "gameaxp.so";
#elif defined __PPC__
const char *gamename = "gameppc.so";
#elif defined __x86_64__
const char *gamename = "gamex86_64.so";
#else
#error "Don't know what kind of dynamic objects to use for this architecture."
#endif

You will have to modify either the "gameppc.so" here or your project settings to change the name of the shared library of your target game.

I warn you at this point that you are getting deep into OS porting and lots of Mac stuff was heavily kluged in Quake 2 sources and R1ch did some eradication of endian hacks to the code and that will have serious ramifications in the PPC world you are in. Once you get it compiled you will have some interesting fun with endianness and the protocols. I can't remember if the PPC was out when Q2 was written or if all the Macs were 68k processors at the time.

Good Luck.
« Last Edit: November 10, 2007, 12:22:35 am by QwazyWabbit » Logged
zorton
Member

Posts: 5


« Reply #9 on: November 10, 2007, 02:43:23 pm »

I have to say this is getting deeper into the guts than I wanted to go....

I'll try a few changes and see what I end up with.  I can also setup an account on the PPC machine if you or r1ch want to have a PPC machine to test on.

Logged
QwazyWabbit
Member

Posts: 402


« Reply #10 on: November 10, 2007, 03:42:47 pm »

I have to say this is getting deeper into the guts than I wanted to go....

I'll try a few changes and see what I end up with.  I can also setup an account on the PPC machine if you or r1ch want to have a PPC machine to test on.



I kind of thought you would be saying that soon. Smiley

If all you are intrested in is a dedicated server mode then your changes will be confined to the linux/* tree and all you will be doing is taking care of things that the Linux ports didn't consider about the PPC and the clues will be at the __x86_64__ macros where they stubbed it. Your ppc will be doing similar things. You are working against 2 porting issues: processor architecture and OS differences. A good debugger will be nice to have.

Once you have the engine compiled you will be dealing with the game DLL. I don't know what mods you were planning on supporting but the dll is easier since the engine takes care of most of the porting issues by insulating the mod from the OS.
Logged
Pages: [1]
Print
r1ch.net  |  r1ch.net stuff  |  R1Q2  |  Topic: Compile Error on Debian Lenny powerpc b7431
Jump to:  

Powered by SMF 1.1.19 | SMF © 2013, Simple Machines