NAME
kextlibs —
    find OSBundleLibraries needed by a
    kext
SYNOPSIS
| kextlibs | [options] [ --]
      kext... | 
DEPRECATED
The kextlibs utility has been deprecated.
    Please use the kmutil(8) equivalent: kmutil libraries.
DESCRIPTION
The kextlibs utility searches for library
    kexts that define symbols needed for linking by kext,
    printing their bundle identifiers and versions to
    stdout. If the kext has a multiple-architecture
    executable, libraries are resolved for each architecture. If any symbols are
    not found, or are found in multiple libraries, the numbers of such symbols
    are printed to standard error after the library kext information for each
    architecture.
A handy use of kextlibs is to run it with
    just the -xml flag and pipe the output to
    pbcopy(1); if the exit status is zero
    (indicating no undefined or multiply-defined symbols), you can open your
    kext's Info.plist file in a text editor and paste
    the library declarations over the OSBundleLibraries property.
You can use kextlibs to find libraries for
    older releases of macOS using the -repository option
    to specify an extensions folder to search other than the extensions
    directories for the root volume (although releases prior to Mac OS X 10.6
    (Snow Leopard) don't check for architecture-specific properties, so be sure
    to check the output and edit as needed). If you don't explicitly specify a
    repository directory, kextlibs searches the root
    volume's /System/Library/Extensions and /Library/Extensions directories.
OPTIONS
- -h,- -help
- Print a help message describing each option flag and exit with a success result, regardless of any other options on the command line.
- -all-symbols
- Print reports on all symbols that remain undefined, all symbols that have
      been resolved in one library kext each, and all symbols that have multiple
      definitions in different library kexts. Equivalent to specifying all of
      -undef-symbols,-onedef-symbols, and-multdef-symbols. Normally only the number of missing and duplicate symbols is printed.
- -c,- -compatible-versions
- Print the compatible version rather than the current version.
- -multdef-symbols
- Print all undefined symbols from kext found in more
      than one library kext, followed by those library kexts' bundle identifiers
      and versions (or compatible versions if
      -compatible-versionswas specified). Normally only the number of multiply-defined symbols is printed.
- -non-kpi
- Search the compatibility kext, com.apple.kernel.6.0, rather than any of the com.apple.kpi.* system kexts. Use of this option is not recommended: The exact kernel component (mach, bsd, libkern, or iokit) cannot be determined, and the compatible version of com.apple.kernel is locked to its current version, so kexts linking against it can only load against that exact version.
- -onedef-symbols
- Print all undefined symbols from kext found in
      exactly one library kext, followed by that library kext's bundle
      identifier and version (or compatible version if
      -compatible-versionswas specified). Normally nothing is printed about symbols that are found once.
- -rdirectory,- -repositorydirectory
- Search directory for dependencies. This option may
      be specified multiple times. You can use this to get library declarations
      relative to a set of extensions other than those of the running system
      (such as for a different release of macOS), or to include a side directory
      of library kexts. Note: If you specify a directory with this option, the
      system extensions folders are not implicitly searched. See
      -system-extensions.
- -e,- -system-extensions
- Add /System/Library/Extensions and /Library/Extensions to the list of directories to search. If you don't specify any directories or kexts, this is used by default.
- -undef-symbols
- Print all undefined symbols from kext that can't be found in any library kexts. Normally only the number of symbols not found is printed.
- -unsupported
- Search unsupported library kexts for symbols (by default they are not searched).
- -v[- 0-6|- 0x####],- -verbose[- 0-6|- 0x####]
- Verbose mode; print information about program operation. Higher levels of
      verbosity include all lower levels. You can specify a level from 0-6, or a
      hexadecimal log specification (as described in
      kext_logging(8)). For
      kextlibs, the decimal levels 1-6 generally have little effect.
- -xml
- Print an XML fragment to stdout suitable for copying and pasting directly into an Info.plist file. This option prints information about libraries to stdout, and then prints information about symbols to stderr. In XML mode, if the libraries for all architectures are the same, only one set of OSBundleLibraries is printed; if any differ from any others, architecture-specific listings for all architectures are printed (OSBundleLibraries_i386, OSBundleLibraries_x86_64, and so on).
- --
- End of options.
FILES
- /System/Library/Extensions/
- The standard system repository of kernel extensions.
- /Library/Extensions/
- The standard repository of non Apple kernel extensions.
DIAGNOSTICS
The kextlibs utility exits with a status
    of 0 on completion if all undefined symbols are found exactly once; with a
    status of 1 if any undefined symbols remain, or with a status of 2 if any
    symbols are found in more than one library kext (whether or not any
    undefined symbols remain), and with another nonzero status on some other
    problem.
BUGS
kextlibs uses a simple algorithm of string
    matching to resolve symbols, and does not apply any of the patching that the
    full link process does. This can cause it to fail when searching for symbols
    in a kext built against an SDK for a prior release of macOS than the one on
    which kextlibs is being used. In such cases, you can
    run kextlibs against the Extensions folder of that
    prior release using the -repository option.
Many single-letter options are inconsistent in meaning with (or directly contradictory to) the same letter options in other kext tools.
SEE ALSO
kmutil(8), kernelmanagerd(8), kextutil(8), kextfind(8), kext_logging(8)