freebsd-ports/emulators/wine/files
Stefan Eßer b0f8db3b55 Upgrade to 991031 version of Wine.
Compilation may fail on a system with an old Mesa3 port installed
or if X11 headers from XFree-3.9.x are found on a system. This can
be manually fixed by undefining all occurences of DGA/DGA2 and
references to GL libraries in include/config.h in the work directory.

Kernel patches are provided for 3.3-stable: see the files directory
of the port (or $PREFIX/lib/wine/README.patches).

The port upgrade is based on patches sent by Jürgen Lock (Thanks!)

PR:		14652
Submitted by:	nox@jelal.kn-bremen.de (Juergen Lock)
1999-11-14 20:49:34 +00:00
..
install-patch-3.3-sys-sigtrap Upgrade to 991031 version of Wine. 1999-11-14 20:49:34 +00:00
patch-ad Upgrade to 991031 version of Wine. 1999-11-14 20:49:34 +00:00
patch-ar Upgrade to 99.04.26 version of Wine. 1999-05-03 22:36:13 +00:00
patch-ba Upgrade to 991031 version of Wine. 1999-11-14 20:49:34 +00:00
README.patch Upgrade to 991031 version of Wine. 1999-11-14 20:49:34 +00:00

Here are two patches for FreeBSD's kernel that are necessary for wine
(well not strictly _necessary_ but without them parts of it won't work.)
They unfortunately didn't make it into the base distribution in time
for the 3.3 release code freeze...

patch-3.3-sys-ldtshare:
make kernel threads (rfork(), which wine uses) share one LDT instead of
each having its own.  this fixes the same problem that wine also had on
linux kernels before 2.2.

patch-3.3-sys-sigtrap:
stop wine's SIGTRAP handler from being called in the sigreturn syscall,
causing problems for wine's internal debugger.  (it would still
correctly show a crash backtrace but all commands that use single-
stepping failed.)

Apply as follows:

	(cd /usr/src/sys && patch ) <patch-3.3-sys-ldtshare
	(cd /usr/src/sys && patch ) <patch-3.3-sys-sigtrap

then build a new kernel. (don't forget to include the options USER_LDT,
SYSVSHM, SYSVSEM, and SYSVMSG, wine needs these.)

-current users:
someone of you :) needs to implement a runtime check in wine for the
FreeBSD version and based on that use/set the sc_gs and sc_fs values
in the sigcontext struct in signal handlers for versions >= 4.0.
(see the `wine signal handlers lose %fs on FreeBSD' thread on the
wine-devel list for details, can be read at
http://www.integrita.com/cgi-local/lwgate.pl/WINE-DEVEL/archives/1999-09/Subject/article-15.html
at least i ended up there when i searched it today.  yes you could also
simply define FS_sig and GS_sig in wine's include/sig_context.h and be
done with it but the resulting wine would only work on 4.0 and
Alexandre (wine maintainer) didn't like that idea...)

A LDT patch for -current is at http://www.freebsd.org/~luoqi
(not included since i don't know if it still applies), the sigtrap
patch looks like it could also apply to -current but i haven't tried.
(and if not, i guess a similar fix will be committed soon anyway.)