This document describes the use of the Solaris Application Scanner tool
in conjunction with the Solaris 10 Binary Application Guarantee
program.
Your participation in the Solaris 10 Binary Application Guarantee
program may require running the Solaris Application Scanner over a
number of application binaries and possibly sending the generated
report file back to Sun.
To perform this action, follow these steps:
Download the SolCAT-v1.0.0 tool collection from here:
sun.com/software/solaris/programs/abi/solcat.html
This page will instruct you how to download the tool from the Sun
Download Center and how to install it. Follow the installation
instructions to install the Solaris Application Scanner tool
"abiscan" (you do not need to install Solaris Appcert). The
self-installing script will be the file:
pkgs/abiscan_install-1.0.sh
To install type this command: "sh pkgs/abiscan_install-1.0.sh"
You may also want to read the Solaris Application Scanner
documentation in the "doc" subdirectory of the installation
directory.
Next, decide which application binaries need to be checked. There
are a number of ways to pass this list to the Solaris Application
Scanner tool:
a) list each full filename on the command line.
b) list a directory (or directories) and have the tool
recursively find and check all binary program files it finds.
c) use the "-f listfile" option where "listfile" is a file
you create that contains the list of binaries to check (one
per line).
The name of the Solaris Application Scanner utility is "abiscan".
To generate a report suitable for use with the Solaris 10 Binary
Application Guarantee program you need to supply the "-s" option to
abiscan and collect the output in a file for possible submission to
Sun.
The abiscan utility may be run on Solaris 7, 8, 9, or 10. It
is not required to run the tool on Solaris 10.
Here are examples corresponding to the three modes listed in 2)
above:
These assume you have set your PATH environment variable to include
the directory the abiscan utility resides in, e.g.
/var/tmp/abiscan/bin (the actual directory will depend on how you
chose to install the tool).
Alternatively, you may specify the full path to abiscan, for example:
In all cases we collect the abiscan output in the file "myreport".
To see if the application passed, examine the output file ("myreport"
in the previous examples). It provides a list of all binaries that
were checked. Binaries without problems are marked with an "OK" tag.
If all binaries have the "OK" tag then the application has passed
this test. (Note you may also see some "SKIP" lines indicated
files you pointed abiscan to that are not ELF binaries).
If any binary has a potential problem detected you can find more at
about the issue rerun abiscan with the "-s" option replaced with
"-v" for verbose output. Redirect to a new file, e.g.:
abiscan -v /opt/APP/bin > myissues
This output contains a readable description of the issues detected.
To participate in the Solaris 10 Binary Application Guarantee program
follow the instructions it provides and be prepared to upload the
report file ("myreport" in the above examples) you generated if
requested to.
Examples:
Here are some examples of using the Solaris Application Scanner abiscan
tool in the Solaris 10 Binary Application Guarantee program.
One may set their PATH variable to find the abiscan utility with
commands like:
setenv PATH /var/tmp/abiscan/bin:$PATH
for csh-like shells or this for sh-like shells:
PATH=/var/tmp/abiscan/bin:$PATH
The following assumes this has been done. The "%" symbol below
represents the shell command line prompt.
The first example shows checking an application that has no problems
detected by the abiscan utility:
% abiscan -s /home/user/netscape-7.0 > myreport
Examination of the "myreport" file indicates all of the application
binaries (approximately 270 of them) received an "OK" tag. In this
example, no problems were detected by the abiscan utility. The list of
all binaries checked is in the report file.
The second example shows an application that has a potential failure
mode detected for a number of its binaries:
% abiscan -s /home/user/faxtool-1.0 > myreport
Not all of the binaries received and "OK" in this case. Rerunning
abiscan with the "-v" option yields output that looks like the
following:
/home/user/faxtool-1.0/bin/faxtool:
Refers to the following removed interfaces which can cause it to fail:
TIFFGetFileSize from /usr/openwin/lib/libtiff.so.3 removed in SunOS 5.10
TIFFModeCCITTFax3 from /usr/openwin/lib/libtiff.so.3 removed in SunOS 5.10
The above interface(s) have been removed from Solaris.
Note: if the application provides its own non-system library
interface replacement(s) it will not fail.
Note: if the application never actually calls the above interface(s)
it will not fail. Careful testing of the application is required.
...
This indicates the "faxtool" binary uses above two undocumented
interfaces "TIFFGetFileSize" and "TIFFModeCCITTFax3" in the
libtiff.so.3 library. These interfaces have been removed from
libtiff.so.3 in Solaris 10 (SunOS 5.10).
Some notes are also provided that indicate under what circumstance the
application binary may continue to work on Solaris 10. In this example
they are 1) a non-system compatibility library is used, or 2) the
application binary never happens to call the removed interfaces. The
abiscan tool is not able to determine if these are the case because the
application is not actually run during the abiscan check.