From owner-freebsd-ports Fri Sep 10 8:10:12 1999 Delivered-To: freebsd-ports@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 8E0B415C7A for ; Fri, 10 Sep 1999 08:10:08 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id IAA69861; Fri, 10 Sep 1999 08:10:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Date: Fri, 10 Sep 1999 08:10:02 -0700 (PDT) Message-Id: <199909101510.IAA69861@freefall.freebsd.org> To: freebsd-ports@FreeBSD.org Cc: From: Juergen Lock Subject: Re: ports/13670: update emulators/wine for the release Reply-To: Juergen Lock Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR ports/13670; it has been noted by GNATS. From: Juergen Lock To: FreeBSD-gnats-submit@FreeBSD.ORG Cc: Subject: Re: ports/13670: update emulators/wine for the release Date: Fri, 10 Sep 1999 17:03:55 +0200 (MET DST) In article <199909092257.AAA18464@saturn.kn-bremen.de> I wrote: >>Description: > > Here's an update of the wine port to 990815. It includes > fixes for the recently found signal handling bugs on FreeBSD > and kernel patch files for 3.3 for the changes that didn't > make it in in time for the code freeze. With those applied > it should now finally run everything it does on linux... > > (As it turns out i will be here the entire day on friday so > you can mail me should there be any problems with this. > I still want to have another look at the sigtrap patch, > maybe i'll send a new one should i get something working.) I finally got around testing Bruce's suggestion and it seems to work perfectly. So here is an updated patch (and README), apply this on top of the files in the PR: Index: files/README.patch @@ -1,7 +1,7 @@ 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... +for the 3.3 release code freeze... patch-3.3-sys-ldtshare: make kernel threads (rfork(), which wine uses) share one LDT instead of @@ -12,9 +12,7 @@ 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.) (late note: as Bruce points out on -emulation -this is not the `right' fix for this but i want to get this port update -out first in time for the freeze before i try his suggestion...) +stepping failed.) Apply as follows: @@ -36,4 +34,4 @@ 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 the `real' fix will be committed soon anyway.) +(and if not, i guess a similar fix will be committed soon anyway.) Index: files/patch-3.3-sys-sigtrap @@ -4,22 +4,21 @@ retrieving revision 1.133.2.1 diff -u -u -r1.133.2.1 trap.c --- trap.c 1999/08/29 16:05:56 1.133.2.1 -+++ trap.c 1999/09/09 17:17:40 -@@ -57,6 +57,7 @@ - #include - #include - #include -+#include - #include - #include - #ifdef KTRACE -@@ -1135,10 +1179,13 @@ ++++ trap.c 1999/09/10 14:42:21 +@@ -1041,6 +1084,7 @@ + int error; + int args[8]; + u_int code; ++ int tracedsyscall = ((frame.tf_eflags & PSL_T) && !(frame.tf_eflags & PSL_VM)); + + #ifdef DIAGNOSTIC + if (ISPL(frame.tf_cs) != SEL_UPL) +@@ -1135,10 +1179,12 @@ break; } - if ((frame.tf_eflags & PSL_T) && !(frame.tf_eflags & PSL_VM)) { -+ if ((frame.tf_eflags & PSL_T) && !(frame.tf_eflags & PSL_VM) && -+ *callp->sy_call != sigreturn) { ++ if (tracedsyscall) { /* Traced syscall. */ frame.tf_eflags &= ~PSL_T; - trapsignal(p, SIGTRAP, 0); Regards, -- Juergen Lock (remove dot foo from address to reply) To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message