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