On Fri, Jul 30, 2010 at 6:29 AM, Mariano Martinez Peck
<marianopeck@gmail.com> wrote:
sorry....quick send...try again:
Hi Eliot. I am trying to compie CogVM from XCode. If I choose "Mac OS X 10.5 (Base SDK)" CogVM compiles without problem.
But if I choose "Mac OS X 10.6" I have a compile error in ucontext.h line 42:
#error ucontext routines are deprecated, and require _XOPEN_SOURCE to be define
It comes from sqUnixVMProfile.x where you have:
#include <ucontext.h>
any ideas how can I fix this?
I guess three ways. One is simply to define _XOPEN_SOURCE. But better is to figure out how to get the program counter pointer value from a signal handler in 10.6. i.e. what the profiler does is periodically sample the VM thread's program counter. It does this using a thread that sends SIGPROF to the VM thread and have the SIGPROF handler (pcbufferSIGPROFhandler) get the interrupted pc from the ucontext structure passed into the signal handler. Presumably there's a new way of doing this in 10.6. Find out what that is.
The third way is simply to define NO_VM_PROFILE and then the file will provide only stubs and you'll have no functional VM profiler.
HTH
Eliot
Thanks!
Mariano