Hi misc@ I'm working on a port for the Dart programming language - currently trying to just get some stuff just building before I start adding proper support.
I started to hit code that uses ucontext.h which is not present on OpenBSD. The first occurrence happened in dart/runtime/vm/signal_handler.h [1], while handling it I found out that signal.h defines sigcontext which has the same role as mcontext_t from ucontext.h. More serious (for me) issues happened with dart/runtime/vm/signal_handler_linux.cc [2]. Where the gregs field is being accessed from mcontext. This file however seems to handle 'UNIMPLEMENTED()' code paths so that's what I added so far to get the build moving. Now I'm sitting at thread_interrupter_linux.cc which tries to obtain the uc_mcontext from mcontext_t and I don't see a way to obtain that information. Now again I will probably still just bump the compilation forward by hacking the files in a really ugly way but later on I want to add proper platform support - meaning adding _openbsd.cc/h files and integrating it into the build. So my question is, are there any alternatives that provide the same functionality that's expected from uc_mcontext and mcontext_t.gregs? How should I best approach this. I didn't involve upstream in the port yet (I will later on) & I'm not expecting solution - a pointer in the right direction would be deeply appreciated :) [1] - https://github.com/dart-lang/bleeding_edge/blob/master/dart/runtime/vm/signal_handler.h [2] - https://github.com/dart-lang/bleeding_edge/blob/master/dart/runtime/vm/signal_handler_linux.cc [3] - https://github.com/dart-lang/bleeding_edge/blob/master/dart/runtime/vm/thread_interrupter_linux.cc Regards, -- Adam Wolk adam.w...@koparo.com