# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#2 | 5897 | Tony Smith |
Remove ugly Darwin hack from P4Ruby distribution - no longer needed now that it works properly on OS X 10.4. |
||
#1 | 4190 | Tony Smith |
Port P4Ruby to MacOSX. This is a "sausages" build - you might like the results but you won't like the way it's done. In this case, it's so ugly that I'm ashamed to submit this change. It works, but MacOSX will remain an unsupported platform for P4Ruby as long as this hack is necessary. The basic problem is that the Signaler class in the Perforce API calls signal() on initialisation to install itself as the default handler for SIGINT signals. In a standalone executable that's fine on OSX, but ruby uses Apple's dyld interface to load the module into the process address space dynamically. When signal() is called at module load time, Apple's dyld implementation goes into an infaloop. This horrible piece of code provides a replacement (broken) implementation of the Signaler class that does not initialise itself in this way thereby avoiding the problem. The fact that this is broken should not cause any problems for P4Ruby users, but would not be advisable to use it elsewhere. I refuse to integrate this into the build process for P4Ruby, so people who want this port will have to follow the instructions in README.DARWIN and do it themselves. I have made a few minor porting changes to help with compiler selection on DARWIN though. |