cmpdylib

CMPDYLIB(1)                  General Commands Manual                 CMPDYLIB(1)



NAME
       cmpdylib - compare two dynamic shared libraries for compatibility

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 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.

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.framework/Foundation
       Foundation_proj/Foundation
       cmpdylib: file: Foundation_proj/Foundation does not contain architecture:
       ppc
       cmpdylib: new dynamic shared library: Foundation_proj/Foundation  does
       not contain architecture ppc

DIAGNOSTICS
       The exit status is zero if the library versions are compatible 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)