[Vm-dev] Re: Error compiling cog for MacOS 10.6

Eliot Miranda eliot.miranda at gmail.com
Fri Jul 30 18:57:11 UTC 2010


On Fri, Jul 30, 2010 at 6:29 AM, Mariano Martinez Peck <
marianopeck at 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20100730/ea21faff/attachment-0002.htm


More information about the Vm-dev mailing list