Go to main content
Oracle® Solaris 11.3 リンカーとライブラリガイド

印刷ビューの終了

更新: 2015 年 10 月
 
 

システム固有の共有オブジェクト

動的トークン $OSNAME$OSREL$PLATFORM、および $MACHINE は実行時に展開され、システム固有の情報を提供します。これらのトークンは、フィルタ、「実行パス」、または依存関係の定義に利用できます。

$OSNAME は、ユーティリティー uname(1) にオプション –s を付けて実行した場合に表示されるように、オペレーティングシステムの名前を反映して展開されます。$OSREL は、uname -r を実行した場合に表示されるように、オペレーティングシステムのリリースレベルを反映して展開されます。$PLATFORM は、uname -i を実行した場合に表示されるように、ベースとなるプラットフォーム名を反映して展開されます。$MACHINE は、uname -m を実行した場合に表示されるように、ベースとなるマシンのハードウェア名を反映して展開されます。

次の例は、プラットフォーム固有の「フィルティー」libfoo.so.1 にアクセスするように補助フィルタ 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

このメカニズムは、共有オブジェクト /lib/libc.so.1 にプラットフォーム固有の拡張を行うために、Oracle Solaris OS で使用されます。