Oracle® Solaris 11.2 链接程序和库指南

退出打印视图

更新时间: 2014 年 7 月
 
 

特定于系统的共享目标文件

将在运行时扩展动态标记 $OSNAME$OSREL$PLATFORM$MACHINE,以提供特定于系统的信息。这些标记可用于过滤器、运行路径或依赖项定义。

将扩展 $OSNAME 以反映操作系统的名称,如组合使用实用程序 uname(1)–s 选项时所示。将扩展 $OSREL 以反映操作系统的发行版级别,如 uname -r 所示。将扩展 $PLATFORM 以反映底层平台名称,如 uname -i 所示。将扩展 $MACHINE 以反映底层计算机硬件名称,如 uname -m 所示。

以下示例说明了如何设计辅助过滤器 libfoo.so.1 以使其访问特定于平台的 filtee libbar.so.1

$ LD_OPTIONS='-f /platform/$PLATFORM/lib/libbar.so.1' \
    cc -o libfoo.so.1 -G -K pic -h libfoo.so.1 -R. foo.c
$ elfdump -d libfoo.so.1 | egrep 'SONAME|AUXILIARY'
     [2]  SONAME             0x1                libfoo.so.1
     [3]  AUXILIARY         0x96                /platform/$PLATFORM/lib/libbar.so.1

此机制在 Oracle Solaris OS 中用于提供特定于平台的共享目标文件 /lib/libc.so.1 的扩展。