an .exe, http://www0.org/vm/ioquake3.x86_64.exe.zip
2010/2/22 Michael Menegakis <[email protected]>: > The following patch adds support for builds on mingw-w64 for x86_64 > windows targets. > > VM compilation, Interpretation and DLLs are supported (VM compilation > was the main one taking time). > > baseq3 and q3ut4 are tested in all vm modes on devmap. > > > - Makefile edits are slightly a mess (mostly done to get it going > quick) though it does attempt to be proper; main 'mess' is that > COMPILE_ARCH is hardcoded since uname -m | sed -e s/i.86/i386/ returns > i386 on mingw-w64; most probably an msys issue. > - Some minimal 'beaurocratic' edits in 2 jpeg headers are included > that let it compile > - q_platform is edited for the __WIN64__ platform > - vm_86_64.c and assembler are the most heavily modified: > - longs are replaced with int64_t and unsigned longs with > uint64_t > - other similar C99 compatible modifications are included > - functions such as strtol are converted to their long > long output equivalent (this was required to avoid 3D rendering going > berserk) > - (predominant difference between w64 and unix64 on a > high level is that long is 32bit on w64) > - CROSSCALL is used to call functions used in the > assembly; this is __attribute__ ((sysv_abi)); it effect, it 'fools' > the vm that we're UNIX, and since the vm doesn't violate the win abi > on its own (called via advanced inline asm with its registers > protected) it doesn't mind. With this, assembly generation doesn't > require rewrite and there isn't theoretically any slowdown. > - sys_win32.c includes Sys_SnapVector() in the case of __WIN64__ > similarly to sys_unix. > > - code/libs/win64 needs the SDL libs compiled for w64, I include them > after the patch, along with the DLL (all are non-debug versions) (SDL > is very straightforward to be compiled (for w64) on its upstream, > however, for some reason I could get functional DLL lately, at least > on the latest gcc used; .a libs were fine though; DLL included here is > an earlier working one), > > Patch: http://www0.org/vm/diff-w64.bz2 > code/libs/win64 libs: http://www0.org/vm/libs.win64.tar.bz2 > SDL.dll w64: http://www0.org/vm/SDL.dll-w64.bz2 > > gcc/mingw-w64 used was 4.4.4 20100212 > _______________________________________________ ioquake3 mailing list [email protected] http://lists.ioquake.org/listinfo.cgi/ioquake3-ioquake.org By sending this message I agree to love ioquake3 and libsdl.
