RTS dependency on POSIX signals

Dear all, I am working on porting GHC to [native client]( https://developer.chrome.com/native-client) and I am currently trying to figure out how to port the RTS. On POSIX systems RTS seems to depend on two POSIX signals: timer signal and interrupt signal; while native client has very limited POSIX signal support --- for instance it does not define *siginfo_t* (which is referenced in the base package). So far, I know how to deal with the dependency on the timer signal, as while browsing the source code in rts/posix/Itimer.c, I noticed that on iOS the timer is not using POSIX signals to implement the timer signal. I wanted to ask if there are any other POSIX signal dependencies in the RTS, and would it safe to disable any signal handling in the RTS if I know that there will be no interrupt signals sent to the RTS? Best wishes, Jakub

On Wed, Jul 1, 2015 at 3:14 PM, Jakub Zalewski
Dear all,
I am working on porting GHC to [native client]( https://developer.chrome.com/native-client) and I am currently trying to figure out how to port the RTS.
On POSIX systems RTS seems to depend on two POSIX signals: timer signal and interrupt signal; while native client has very limited POSIX signal support --- for instance it does not define *siginfo_t* (which is referenced in the base package).
So far, I know how to deal with the dependency on the timer signal, as while browsing the source code in rts/posix/Itimer.c, I noticed that on iOS the timer is not using POSIX signals to implement the timer signal.
I wanted to ask if there are any other POSIX signal dependencies in the RTS, and would it safe to disable any signal handling in the RTS if I know that there will be no interrupt signals sent to the RTS?
I don't know the answer to your question, but for an additional data point you might look at the HalVM: https://github.com/galoisinc/halvm For the specific case of timers it may not be helpful (for all I know it uses some xen magic to get a timer interrupt), but it should be similar to native-client support in that the HalVM provides the RTS with a stripped down libc. Jason
participants (2)
-
Jakub Zalewski
-
Jason Dagit