Appcert 2.5 Release Notes

  • 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:

    lib300.a
    libTL.a
    libXdmcp.a
    libXol.a
    libauth.a
    libce.a
    libdbm.a
    libform.a
    libldfeature.a
    libmapmalloc.a
    libnls.a
    libplot.a
    libsec.a
    libvolmgt.a
    lib300s.a
    libX11.a
    libXext.a
    libXt.a
    libbsdmalloc.a
    libcmd.a
    libdps.a
    libgen.a
    libm.a
    libmenu.a
    libolgx.a
    libpsres.a
    libtermcap.a
    libvt0.a
    lib4014.a
    libXau.a
    libXi.a
    libXtst.a
    libbsm.a
    libcrypt_i.a
    libdpstk.a
    libgenIO.a
    libmail.a
    libmp.a
    libpanel.a
    librac.a
    libtermlib.a
    libxview.a
    lib450.a
    libXaw.a
    libXmu.a
    libadm.a
    libc2stubs.a
    libcurses.a
    libelf.a
    libkrb.a
    libmalloc.a
    libnisdb.a
    libpkg.a
    librpcsvc.a
    libucb.a

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:

http://www.sun.com/solarisready/

 
 

Appcert 1.4 Release Notes

New in this release:

  • 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.