Nothing in this directory is needed for compiling or building packages.
It's just a few simple scripts that make my life easier when trying to debug
library dependencies.

makedeplist (no arguments)
--------------------------

When run in the top-level cernlib source directory after a compilation (note
that DEB_BUILD_OPTIONS must have been set to "nostrip"), this script will
produce directories bindeps and libdeps.  These contain files like this:

- XXX.symdeps.txt is a list of undefined symbols in a binary or shlib XXX,
  found in another CERNLIB library
- XXX.filedeps.txt is a summary of XXX.symdeps.txt (just gives the number
  of symbols found in each depending library)

Note that some symbols may be found in more than one library, so the filedeps
file may list unnecessary dependencies.  Symbols not found in any library
linked into the shlib directory are listed (for each library and binary) in a
file XXX.not-in-cernlib.txt .

If you want to include non-CERNLIB libraries in the output, symlink to them
from the shlib directory, e.g. shlib/libX11.so -> /usr/X11R6/lib/libX11.so
This is in fact already done automatically for most of the "usual suspects",
libg2c, libc, libm, libdl, libcrypt, and libX*.

findsym {has|needs|requiredby} <symbol> [ <directory> ]
-------------------------------------------------------

This script will find needed symbols recursively in any .o, .a, or .so files in
a directory.  "findsym has <symbol>" searches for object files that provide a
given symbol.  "findsym needs <symbol>" searches for object files that have the
symbol undefined.  "findsym requiredby <symbol>" prints a list of symbols
needed by object files that define the given symbol; this command works best
with object files or shared libs.

An optional third argument specifies the starting directory ("." by default).
Thus, seeing that a file contains the symbol XBell, we run (using an ingenious
guess for the starting directory) "./findsym has XBell /usr/X11R6/lib" to
determine that this symbol is found in libX11.so.

libcomp <oldlib> <newlib>
-------------------------

This script compares the symbols exported by two dynamic libraries that are
supposed to be different versions of the same library.  Any symbols in the
first-specified library that are not present in the second-specified library,
or have a different size, are noted.  The intent is to check for preservation
of ABI compatibility.


--Kevin McCarty
