CMPDYLIB(1) CMPDYLIB(1)
NAME
cmpdylib - compare two dynamic shared libraries for com-
patibility
SYNOPSIS
cmpdylib oldLibrary newLibrary
DESCRIPTION
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 std-
out, and the exit status is nonzero. If they are compati-
ble, 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 archi-
tectures 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 sym-
bols, 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.
OPTIONS
oldLibrary
The older version of the library.
newLibrary
The newer version of the library.
EXAMPLES
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 architecture.
cmpdylib /System/Library/Frameworks/Foundation.frame-
work/Foundation Foundation_proj/Foundation
cmpdylib: file: Foundation_proj/Foundation does not con-
tain architecture: ppc
cmpdylib: new dynamic shared library: Founda-
tion_proj/Foundation does not contain architecture ppc
DIAGNOSTICS
The exit status is zero if the library versions are com-
patible and nonzero if they are incompatible.
BUGS
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)