------------- 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@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@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@mcw.edu http://www.mcw.edu/pcor Was 'Name That Tune' rigged? WWLD -- What Would Lombardi Do
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;
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 */