Wine bug #1816 (Wine on Solaris x86)

Rodney Sparapani rsparapa at post.its.mcw.edu
Fri Jun 18 09:10:17 CDT 2004


------------- Begin Forwarded Message -------------

X-Spam-Status: No, hits=-4.9 required=4.0
Date: Thu, 17 Jun 2004 21:16:47 -0500
From: Andrew Jones <aijones2 at bsu.edu>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) 
Gecko/20031013 Thunderbird/0.3
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: rsparapa at mcw.edu
Subject: Wine bug #1816 (Wine on Solaris x86)
X-OriginalArrivalTime: 18 Jun 2004 02:16:50.0635 (UTC) 
FILETIME=[50AD39B0:01C454DA]

I saw that you submitted this bug, thanks to google.
http://bugs.winehq.com/show_bug.cgi?id=1816

I ran into the same problem compiling wine 20040615, the newest release.

In server/context_i386.c, I just commented out everything that used 
GETREGS or GETFPREGS since it's only for error reporting.  I don't know 
enough about win32 to say whether error reporting is important here.

In server/ptrace.c, I #define'd PT_ATTACH and PT_DETACH to -1, since 
they're not supported by Solaris either.  I don't know how well this 
will work, but it's better than the alternative of disabling the use of 
ptrace() entirely, making win32 threading nonfunctional. 




------------- End Forwarded Message -------------


Rodney Sparapani              Medical College of Wisconsin
Sr. Biostatistician           Patient Care & Outcomes Research
rsparapa at mcw.edu              http://www.mcw.edu/pcor
Was 'Name That Tune' rigged?  WWLD -- What Would Lombardi Do
-------------- next part --------------
26,27c26
< #include <errno.h>
< 
---
> #include <errno.h>
30,31c29
< #endif
< 
---
> #endif
34d31
< 
37,38c34
< #endif
< 
---
> #endif
68,69c64
< #endif
< 
---
> #endif
72,73c67
< #endif
< 
---
> #endif
76,77c70
< #endif
< 
---
> #endif
247,249c240,241
<         struct regs regs;
< 	/* who needs error checking, right? */	
<         /*if (ptrace( PTRACE_GETREGS, pid, (int) &regs, 0 ) == -1) goto error;*/
---
>         struct regs regs;
>         if (ptrace( PTRACE_GETREGS, pid, (int) &regs, 0 ) == -1) goto error;
283,286c275,276
<         /* correct structure (the same as fsave/frstor) */
< 	
< 	/* errors are for people less confident than I */
<         /*if (ptrace( PTRACE_GETFPREGS, pid, (int) &context->FloatSave, 0 ) == -1) goto error;*/
---
>         /* correct structure (the same as fsave/frstor) */
>         if (ptrace( PTRACE_GETFPREGS, pid, (int) &context->FloatSave, 0 ) == -1) goto error;
304,307c294,295
<             /* need to preserve some registers */
< 	
< 		/* what was that I said about errors?*/
<             /*if (ptrace( PTRACE_GETREGS, pid, (int) &regs, 0 ) == -1) goto error;*/
---
>             /* need to preserve some registers */
>             if (ptrace( PTRACE_GETREGS, pid, (int) &regs, 0 ) == -1) goto error;
333,335c321,322
<         }
< 	/* ptrace() is horrible, ugly, and doesn't work on solaris anyway */
<         /*if (ptrace( PTRACE_SETREGS, pid, (int) &regs, 0 ) == -1) goto error;*/
---
>         }
>         if (ptrace( PTRACE_SETREGS, pid, (int) &regs, 0 ) == -1) goto error;
344,347c331,332
<         /* correct structure (the same as fsave/frstor) */
< 	    
< 	/* see above */
<         /*if (ptrace( PTRACE_SETFPREGS, pid, (int) &context->FloatSave, 0 ) == -1) goto error;*/
---
>         /* correct structure (the same as fsave/frstor) */
>         if (ptrace( PTRACE_SETFPREGS, pid, (int) &context->FloatSave, 0 ) == -1) goto error;
-------------- next part --------------
59,81c59,67
< #ifndef SOLARIS
< 	#ifndef HAVE_SYS_PTRACE_H
< 	#define PT_CONTINUE 0
< 	#define PT_ATTACH   1
< 	#define PT_DETACH   2
< 	#define PT_READ_D   3
< 	#define PT_WRITE_D  4
< 	#define PT_STEP     5
< 	/*This is a load of bullshit right here.  Solaris has no ptrace.h, but ptrace() works for those things. (maybe)
< 	inline static int ptrace(int req, ...) { errno = EPERM; return -1;} */
< 	#endif  /* HAVE_SYS_PTRACE_H */
< #endif /* SOLARIS */
< 
< #ifdef SOLARIS
< 	#define PT_CONTINUE 7
< 	/* attach and detach are not supported in Solaris. */
< 	#define PT_ATTACH   -1
< 	#define PT_DETACH   -1
< 	#define PT_READ_D   2
< 	#define PT_WRITE_D  5
< 	#define PT_STEP     9
< 	/* these are from ptrace(3C), I think they're the same as FreeBSD */
< #endif /* SOLARIS */
---
> #ifndef HAVE_SYS_PTRACE_H
> #define PT_CONTINUE 0
> #define PT_ATTACH   1
> #define PT_DETACH   2
> #define PT_READ_D   3
> #define PT_WRITE_D  4
> #define PT_STEP     5
> inline static int ptrace(int req, ...) { errno = EPERM; return -1; /*FAIL*/ }
> #endif  /* HAVE_SYS_PTRACE_H */


More information about the wine-bugs mailing list