Added additional checks for possible
Solaris library end-of-feature events or changes in interface behavior for
Solaris 10 and beyond. Please see the following link for more information:
Appcert symbol database updated to include Solaris 10.
Option -e speeds up appcert's find(1) directory
recursion by limiting the search to files with
the executable bit set. See the man page for
more info.
More support for command line options in the
one-line (-1) mode: -c -d -f -L -o -O -s and -S now
work under in one-line, and most of the appcert
database and miscellaneous checks are now
utilized. One-line mode can also run in
parallel on multi CPU machines using the -j
option.
Appcert 2.4 Release Notes
Due to popular demand, we have created and included in appcert a flat-file
symbol database for Solaris 9. Some users of appcert have found having "snap
shots" of the Solaris ABI for all Solaris releases useful for various applicat
ions, and we provide that information in this release with a flat-file picture
of the Solaris 9 FCS release.
Please note that the presence of these flat file databases are not required
for useful stability testing: applications that use only public interfaces wi
ll be stable on all subsequent Solaris releases. As discussed in the 2.3 appc
ert release notes, appcert can do this automatically from the libraries on Sol
aris release 8 or later. The appcert tool bundled with Solaris 8 (4/01) and l
ater does this.
Added to the tool and the FAQ a complete list of private symbols in libc.s
o.1 that may yield appcert warnings for applications due to static linking of
archive libraries from /usr/ccs/lib, etc.
Miscellaneous bug fixes and performance enhancements. In particular, appc
ert now correctly identifies _get_exit_frame_monitor() bindings introduced by
newer versions of Sun's Forte compiler.
Appcert 2.3 Release Notes
Appcert's databases are now frozen at Solaris 8 since nearly all of Solar
is' libraries are now versioned and appcert can read the public/private symbol
information directly out of the libraries; see pvs(1). Consequently, this ver
sion of appcert should work well on all later releases of Solaris.
Starting with update 4 of Solaris 8, appcert will become a part of Solaris
. At that time, this unbundled version of appcert will likely be frozen, and
may eventually be obsoleted in favor of the similar version bundled with Solar
is.
An option -1 now allows appcert to run in an a simplified "one-line per pr
oblem" mode. Although not as complete as appcert in its default mode, one-line
mode catches direct usage of private symbol in versioned libraries and perfor
ms the usual static linking check. This mode is faster, uses less resources,
creates no files, and has output that is easier to parse.
An option -d enables only checking calls directly from the binary to the
Solaris libraries. The default is to check both direct and indirect (i.e. via
non-Solaris libraries) calls to Solaris libraries.
An option -p has been added to check for private symbol usage in
non-Solaris libraries. Solaris libraries have all of their private symbols re
siding in versions with names matching /SUNWprivate/. Using this option, can select different versions set names and define the symbols in them
to be private (e.g. you can create version sets in your own shared libraries
that define the publicly offered interface. Then, set to match the n
on-public sets). See ld(1), pvs(1), and the "Linker and Libraries Guide" for h
ow to make versioned shared libraries.
An option -O allows the advanced user to override all of
the checks that appcert performs. See the appcert(1) man page for how to do th
is and to learn more about the above new options.
Appcert 2.2 Release Notes
Final modifications to databases for Solaris 8 FCS.
Added warnings for dependencies on the EOL'd libraries: libxgl.so.3 and li
bxil.so.1.
Appcert's databases have been extended to make the -c and -C options (diff
erent Solaris release checking) more accurate. Please note that these options
provide an experimental feature that may be removed in a future release.
In addition to the default check for static linking of libc.a, libsocket.a
, and libnsl.a archives, extended static linking checking may be enabled with
the -s option. The additional archives are:
Please note that turning on this option may generate many "false
positives" since it is not easy to prove that archive modules have
been statically linked. This feature is experimental and may be
removed in a future release.
Appcert 2.1 Release Notes
This release is a reimplementation of appcert. Most users will not see
many differences in the behavior of appcert. New features in this release:
Appcert can obtain system model information directly from versioned librar
ies. This eliminates the need for it to use model files to find out which
symbols in a versioned library are public or private. Model files are still
required for unversioned libraries.
The -c and -C options may be used to set the Solaris version to check agai
nst to be different from that of the machine on which appcert is run. See the
man page for details.
To minimize false signals from missing any of your bundled support librari
es, appcert checks for any shared objects in your product and modifies LD_LIBR
ARY_PATH so that they will be found. The -L option disables this.
Appcert now also supplies return codes to indicate the overall result; thi
s allows easier use of appcert for quality assurance purposes. For example, i
n order to verify that an application remains free of any stability problems,
a wrapper script can be written which calls appcert (redirecting stdout and st
derr to /dev/null) and examines its return code to verify that appcert did not
detect any potential problems. No user interaction is required. In addition,
the -B option runs batch mode in which tags for each binary are inserted into
the output to aid automatic processing.
There is additional documentation on unstable practices and suggestions
for alternate interfaces to use instead.
Improvements have been made to the HTML navigation in report files.
Appcert no longer offers to return test results to Sun. See the README on
how to do this manually.
Support for Solaris 8 has been added.
Appcert 2.1 will be available in Solaris 8 as an optionally installable
"Early Access" component; it will be a bundled component of Solaris
in a later update. Eventually, we plan to freeze the unbundled
version of appcert and only update the bundled version.
Appcert 2.0 Release Notes
Appcert 2.0 was a beta release available only to users of Solaris 8 beta.<
/li>
Appcert 1.5 Release Notes
New in this release:
Starting with this release, appcert no longer handles certification and
product branding itself: appcert merely reports whatever potential
binary stability problems it encounters, and does not issue a "pass" or
"fail". Users interested in obtaining Sun's "Solaris Ready" (TM) brand for
their application should contact the Solaris Ready program office
through their website:
A system model for Solaris 7 (the operating system formerly known as 2.7).
More efficient handling of very large products (> 1000 binaries).
Various bug fixes and improvements to the report output.
Appcert 1.3 Release Notes
New in this release:
A more stringent passing criterion: no private symbols. See the file doc/p
assing-criterion for details.
A system model for Solaris 2.7 beta.
System model information for all Solaris platforms: 32-bit Sparc and Intel
, and 64-bit Sparc.
Appcert now explicitly fails binaries which are completely statically link
ed, rather than skipping them. It also detects and fails binaries which are o
therwise dynamically linked, but have statically linked either libc, libnsl, o
r libsocket.
Appcert detects and fails cases where needed libraries are not found, even
if all symbols are resolved. This covers cases where non-Solaris libraries h
ave been used to re-implement standard Solaris interfaces. "unbound symbols" a
re symbols that could not be resolved by the runtime dynamic linker (that is i
nvoked by Appcert in its profiling phase). The occurrence of unbound symbols w
ill also cause a product to fail.
The symbols "sys_errlist" and "sys_nerr" have been promoted to deprecated
public, to reflect the fact that they will not change in future releases. Note
, however, that strerror(3C) should be used instead, and that sys_errlist
and sys_nerr are NOT present in the 64-bit version of Solaris. Appcert will fl
ag any usage of these two symbols, to make conversion easier.
Various bug fixes to both the program and the system models.
Appcert 1.2 Release Notes
New in this release:
Appcert now correctly handles symbols in standard filter libraries (e.g.,
libw).
Appcert now reports Solaris libraries which are used by an application,
but whose symbols are not checked by appcert (e.g., libC).
Appcert now reports shared objects which cannot be checked because they
have no dependency information recorded in them. It is strongly advised that
such shared objects be recompiled to record dependency information.
The Solaris 2.6 system model has been updated from 2.6 beta to 2.6 FCS.
Numerous corrections have been made to the Solaris system models.