使用专用符号-依赖专用符号的应用程序在与其开发发行版不同的 Solaris 发行版中可能无法运行。发生这种情况是因为,出现在给定 Solaris 发行版中的专用符号在其他发行版中可能具有不同的行为或者不存在。如果 appcert 报告应用程序中使用了专用符号,请重新编写应用程序,以避免使用专用符号。
降级符号-降级符号是 Solaris 库中已删除的函数或数据变量,也可以是在以后的 Solaris 发行版中作用域限定为局部的函数或数据变量。如果某个发行版的库未导出此符号,则直接调用此类符号的应用程序将无法在此发行版中运行。
非绑定符号-非绑定符号是指在 appcert 调用时动态链接程序无法解析的应用程序所引用的库符号。尽管非绑定符号并不始终指示二进制稳定性欠佳,但是非绑定符号可能会指示更严重的问题,如存在降级符号的依赖项。
过时库-将来的发行版中可能会从 Solaris 操作系统中删除过时的库。appcert 实用程序可用于标志此类库的所有使用情况。依赖此类库的应用程序在不支持此类库的将来发行版中可能无法正常运行。要避免此问题,请勿使用过时库中的接口。
使用 sys_errlist 或 sys_nerr-使用 sys_errlist 和 sys_nerr 符号可能会降低二进制稳定性。可能会在 sys_errlist 数组结尾后面进行引用。要避免此风险,请改用 strerror。
使用强符号和弱符号-与弱符号关联的强符号会保留作为专用符号,因为其行为在将来的 Solaris 发行版中可能会发生变化。应用程序只应直接引用弱符号。_socket 即是一个强符号示例,它与弱符号 socket 关联。