[ioquake3] FreeBSD PAE kernel broken vm_x86.c, patch attached
nlandys at gmail.com
Sun Nov 21 21:50:20 PST 2010
Hello again. I have some followup information regarding
First, let me just state that cross-compiling a 32 bit binary on a 64
bit FreeBSD system is currently not "supported" (for pretty much any
3rd party software such as ioquake3). In general, cross compiling
applications won't work on any released version of FreeBSD. (It
actually can work but with a lot of manual tweaking of headers and
such.) It's probably possible to cross compile with -CURRENT FreeBSD
(an unreleased version) because someone committed patches to this
extent earlier this year. So, if you want to compile a 32 bit ioq3
binary on 64 bit FreeBSD, your best bet is to either borrow a 32 bit
environment from somewhere or make a chroot environment on your 64 bit
FreeBSD system. I imagine that the ioquake3 Makefile can stay the way
it is (with regards to cross compiling on FreeBSD); it might actually
work on -CURRENT.
OK, so I compiled two 32 bit ioq3ded binaries on a 32 bit system, one
before my patch and one after the patch. I ran both of these binaries
on a 64 bit FreeBSD system. Both ioq3ded binaries were able to start.
The binary before my patch segfaulted pretty early, the same as was
seen on the PAE kernel system. The patched binary ran fine on the 64
Also, I imagine that nobody will want to run the 64 bit ioq3 binary
(for server at least) on a 64 bit FreeBSD system, because that binary
is dog slow (same goes for Linux from what I recall). So, everyone
will be running the 32 bit server binary probably. If you don't apply
my patch, the 32 bit binary won't run on 64 bit systems.
FreeBSD is a great system to run ioquake3 servers on, and I have been
doing it for 3 years now. I hope this patch makes it into SVN.
P.S. I have not done any testing for the client side of things, but
if someone needs to step up to the plate for that I may be willing to
More information about the ioquake3