In the mach3 release area in latest/lib there are the following libraries: libmach.a Similiar in function to the libmach.a that is distributed with Mach 2.5, but it provides the interface to the Mach 3.0 system calls and supports the new ipc calls: mach_msg_{send,receive,destroy,server} rather than the old ones: msg_{send,receive,rpc}. libthreads.a Supports the cthreads package for Mach 3.0. Has the same interface as the Mach 2.5 chreads library with the addition of some undocumented features. Currently the sources for this library can be found in mk/src/latest/user/threads. libmach_sa.a Contains interface to pure kernel, new ipc calls and some string processing routines. It is missing the interface to the envmgr, netnameserver and service server. Currently the sources for this library can be found in mk/src/latest/user/ libmach. libmach3_*.a These libraries are intended to be a combination of the old libmach.a and libc.a. The different variations correspond to the different environments that could be running. The following describes the current state of affairs. libmach3_sa.a Replaces both the old libmach.a and libc.a. To be used when only the pure kernel is running. Does not include Unix system calls. libmach3_unix.a Currently contains only the calls that are missing from the 2.5 version of libmach.a and libc.a and must be loaded with those two libraries. To be used when and application wants to run on both Mach 3.0 with a Unix emulation and Mach 2.5. libmach3_us.a A complete library to be used when the pure kernel and the multi-servers are running, but no Unix emualation library is to be loaded. Differs from libmach3_sa.a in including the interfaces to the multi-servers. libmach3_vus.a To be used when the pure kernel and the multi-servers are running and an emulation library is loaded. Currently this library contains only the entries missing from libc.a and must be loaded with libc.a. Future plans: Eventually there will be only three general libaries in addition to libthreads.a. They will be: libmach3_sa.a Will be all the libc and libmach calls as well as the interfaces to the multi-servers. Will not include Unix syscalls. This library should replace libmach.a and libmach_sa.a. libmach3_unix30.a The same as libmach3_sa.a with the addition of the Unix syscalls. Runs on the Mach 3.0 kernel with an Unix emulation library loaded. This library replaces libmach3_vus.a libmach3_unix25.a Provides the same external interface as libmach3_unix30.a but assumes it is running on the Mach 2.5 kernel. It will provide write-arounds for new Mach system calls or features that are different from the Mach 2.5 ones whenever it is feasible. This library should be used by applications that wish to run on both Mach 3.0 and 2.5. This library replaces libmach3_unix.a.