On 24/02/13 13:19, Roland Stigge wrote: > This is due to PowerPC/Altivec code that doesn't work on powerpcspe. > > Attaching a patch that fixes this by omitting the respective instructions > on powerpcspe.
Do the resulting binaries work on non-Altivec PowerPCs, or have you just build-tested it? I'd rather have ioquake3 build on fewer architectures than have it build, but not work. I dimly remember something about the PowerPC JIT emitting Altivec instructions? Because the virtual machine is involved, the way to test it would be to either use quake3 and game-data-packager (you'll need baseq3/pak0.pk3 from a retail Quake III Arena CD-ROM or installation - I'm told the Steam version is sufficient), or to test with OpenArena and replace Debian's altered baseoa/pak0.pk3, baseoa/pak6-patch083.pk3 and baseoa/pak6-patch-088.pk3 with the ones supplied by upstream. Debian's OpenArena uses native code instead of the virtual machine, for DFSG reasons - we have a Free interpreter and JIT for the VM bytecode, but no Free compiler - which is why you'd have to replace that data. I don't have a usable PowerPC, so I can't test there (and both my non-working PPCs have Altivec, so they're not much use for this particular bug either). > +ifeq ($(DEB_HOST_ARCH),powerpcspe) > +NO_ALTIVEC := 1 > +else > +NO_ALTIVEC := 0 > +endif In principle we ought to do this on all PowerPC architectures - Debian's powerpc target is a baseline non-Altivec PowerPC (in the same way that Debian i386 supports any CPU >= i486, and cannot assume MMX or SSE) - but since I can't test ioquake3 on PowerPC, I'd rather keep the current state (which *someone* has tested, upstream), rather than gain compatibility with really old PPCs at the cost of potentially breaking *all* PPCs. > +#if defined(Q3_VM) || defined (__NO_FPRS__) I'm pretty sure this is wrong: it's using the Q3 virtual machine code-path. It would be better to knock out or modify the "defined(__VEC__)" check further down the same file, or maybe define C_ONLY? (This might uncover bugs where upstream have assumed that idppc implies Altivec - idppc_altivec is the macro that's meant to signal Altivec.) Regards, S -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org