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) ®s, 0 ) == -1) goto error;*/
---
> struct regs regs;
> if (ptrace( PTRACE_GETREGS, pid, (int) ®s, 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) ®s, 0 ) == -1) goto error;*/
---
> /* need to preserve some registers */
> if (ptrace( PTRACE_GETREGS, pid, (int) ®s, 0 ) == -1) goto error;
333,335c321,322
< }
< /* ptrace() is horrible, ugly, and doesn't work on solaris anyway */
< /*if (ptrace( PTRACE_SETREGS, pid, (int) ®s, 0 ) == -1) goto error;*/
---
> }
> if (ptrace( PTRACE_SETREGS, pid, (int) ®s, 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