[csw-maintainers] Taking symbols into account when checking binaries

Maciej (Matchek) Blizinski maciej at opencsw.org
Tue Feb 23 00:50:04 CET 2010


I've implemented the check which does the following:

  1. Collect triplets: pkgname, binary, missing symbol
  2. If there are any missing symbols, collect all the symbols that are provided
     by the set of packages (nm -p -D).
  3. From the list of missing symbols, remove all symbols that are provided
     by the set of packages.
  4. Report any remaining symbols as errors.

Symbols from binaries are collected with "/usr/ccs/bin/nm -p -D
<file>". Only the entries of type T (text) are taken into account.

I tested it against PostgreSQL packages and the outcome is that is
still a lot of missing symbols: the ones that ldd -r says are missing,
and that nm -p -D doesn't find.

For those who want to see it on their own eyes, the command line to run is:

/home/maciej/src/opencsw/gar/v2/bin/checkpkg ls -l
/home/maciej/staging/build-2010-02-22/*sparc*

An example symbol for PostgreSQL can be CurrentMemoryContext -- ldd
complains about it, nm doesn't find it.

Sebastian, what do you think?

Maciej


More information about the maintainers mailing list