Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ chkshlib(CP) — OpenDesktop Software Development System 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

mkshlib(CP)


 chkshlib(CP)                   6 January 1993                   chkshlib(CP)


 Name

    chkshlib - compare shared libraries tool

 Syntax

    chkshlib [-b] [-i] [-n] [-v] file1 [file2 file3 ... ]

 Description

    The chkshlib command checks for compatibility between files.  Input files
    can be combinations of host shared libraries, non-stripped target shared
    libraries, and non-stripped executable files.  A file is compatible with
    another file if every library symbol in it that should be matched is
    matched in the second (that is, the symbol exists and has the same
    address in both files). The path name for the target shared library in
    both files must be identical (unless the -i option is set).

    It is possible for file1 to be compatible with file2 without the reverse
    also being true.

    If one incompatibility is found it is reported to standard output and
    processing stops (unless the -v option is set).

    The options to chkshlib are:

    -b  If there are symbols found in file1 that are not in the bounds of
        file2, report warning messages to standard output.

    -i  Turn off the restriction that the path names for the target shared
        library need to be identical for two files to be compatible.

    -n  Indicate that there are exactly two input files, which are target
        shared libraries, where the first references symbols in the second
        (``includes'' the second).

    -v  Cause verbose reporting of all incompatibilities to standard output.

    The output of chkshlib depends upon the input.  If the first input file
    is an executable file and the other input files, if any, are target
    shared libraries, the output states whether or not the executable file
    can execute using each target shared library.  If there are no target
    shared libraries supplied, chkshlib performs the compatibility check
    against the target shared libraries specified in the .lib section of the
    executable file.

    If the first input file is an executable file and the other input file(s)
    is a host shared library, the output states whether or not the executable
    file could have been produced using each host.

    If one input file is a host shared library and the other input file, if
    any, is a target shared library, the output states whether or not the
    host shared library could produce executable files that will run with the
    target shared library.  If no target shared library is supplied, then
    chkshlib performs the compatibility check against the target specified in
    the .lib section of the library definition file found in the host.

    If both input files are target shared libraries or both input files are
    host shared libraries, the output states whether or not the first file
    could replace the second and vice versa.

    If both input files are target libraries and the -n option is set, the
    output states if the first file references symbols in the second file
    (``includes'' the second).

    Compatibility of all other combinations of host shared libraries, target
    shared libraries, and executable files has no useful meaning, and these
    other combinations of files are not accepted as valid input to chkshlib.

    The valid combinations of input files are:

    Executable              [Target shared library(1) ... Target shared
    library(n)]
    Executable              [Host shared library(1) ... Host shared
    library(n)]
    Host shared library     Target shared library
    Host shared library     Host shared library
    Target shared library   Host shared library
    Target shared library   Target shared library

    All other forms of input will be rejected.

 Diagnostics

    Exit status is 0 if no incompatibilities are found, 1 if an incompatibil-
    ity is found, and 2 if a processing error occurs.

 Notes

    chkshlib requires that you use the -i option whenever you use the -n
    option.

    Standard binaries distributed with the system are stripped, and chkshlib
    cannot be used with them.

 See also

    mkshlib(CP)



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026