diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/ports | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/doc/ports b/doc/ports new file mode 100644 index 0000000..4debb64 --- /dev/null +++ b/doc/ports @@ -0,0 +1,23 @@ +The "ports" system provides functionality for porting pseudo to new targets. +The original motivation was a requirement to support older and newer Linux +systems on which the signature for clone() differed. + +The Darwin port is totally nonfunctional at this point, but it compiles, +and sufficiently careful hand-tuning of DYLD_INSERT_LIBRARIES and a +manually-started server can actually pass a simple test. It will get +worked on in my copious free time. + +The basic design of a port is that it provides a wrapfuncs.in list of +function signatures, guts implementations, and optionally some port-specific +defines or a block of wrapper code for pseudo_wrappers.c. This is used +for cases where the default wrapper would not be appropriate, and may +be combined with the new hand_wrapped=1 flag in wrapfuncs.in. + +A port may specify preports or subports. Preports are ports that are +included and processed *before* the current port -- meaning that functions +in the current port can override them. Subports are processed *after* +the current port -- meaning that they can override functions in the +current port. The preports and subports are specified by scripts, +which echo a list of port names to standard output. (Be sure any +diagnostic messages go to standard error.) + |