CMPDYLIB(1) General Commands Manual CMPDYLIB(1)
cmpdylib - compare two dynamic shared libraries for compatibility
cmpdylib oldLibrary newLibrary
cmpdylib compares two versions of a dynamic shared library to see if they
are compatible with each other. If the two versions are incompatible, the
reason is printed to stdout, and the exit status is nonzero. If they are
compatible, nothing is printed, and the exit status is zero.
To see if the two versions are compatible, cmpdylib first verifies that
newLibrary was built for all of the architectures that oldLibrary was
built for. If so, for each architecture, it checks to see if the global
symbols defined in oldLibrary are still defined in newLibrary. It then
looks for new symbols, symbols defined in newLibrary that are not defined
in oldLibrary. If it finds new symbols, it compares the compatibility
version numbers of the two libraries. If the compatibility version
number of newLibrary is greater than oldLibrary, the libraries are still
compatible. If the compatibility version number is the same or less, the
libraries are incompatible.
The older version of the library.
The newer version of the library.
This example shows the result of performing cmpdylib on two incompatible
versions of the Foundation library. As stated, the versions are
incompatible because the newer version was not built for the ppc
cmpdylib: file: Foundation_proj/Foundation does not contain architecture:
cmpdylib: new dynamic shared library: Foundation_proj/Foundation does
not contain architecture ppc
The exit status is zero if the library versions are compatible and
nonzero if they are incompatible.
There are lots of other things that could be checked for that are not
(such as the Objective C API).
Apple Computer, Inc. November 3, 1997 CMPDYLIB(1)