Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Sep 1999 08:10:02 -0700 (PDT)
From:      Juergen Lock <nox@jelal.kn-bremen.de>
To:        freebsd-ports@FreeBSD.org
Subject:   Re: ports/13670: update emulators/wine for the release
Message-ID:  <199909101510.IAA69861@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/13670; it has been noted by GNATS.

From: Juergen Lock <nox@jelal.kn-bremen.de>
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 <sys/signalvar.h>
 - #include <sys/syscall.h>
 - #include <sys/sysent.h>
 -+#include <sys/sysproto.h>
 - #include <sys/uio.h>
 - #include <sys/vmmeter.h>
 - #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 <nox.foo@jelal.kn-bremen.de>
 (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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199909101510.IAA69861>