Go to main content
マニュアルページ セク ション 1: ユー ザーコマンド

印刷ビューの終了

更新: 2016年12月6日
 
 

moe(1)

名前

moe - 最適なパス名展開のマニフェストの生成

形式

moe [-c] [-32 | -64] [-s | -v] path

説明

moe ユーティリティーは、実行時リンカーの予約トークンを含む最適なパス名展開のマニフェストを生成します。これらのトークンを使用すると、動的なオブジェクト内の依存関係、フィルタ対象、および実行パスを定義できます。これらのトークンを実行時に展開することにより、そのマシン上で最適に実行されるオブジェクトと検索パスを柔軟に選択できます。ld.so.1(1) を参照してください。

たとえば、$HWCAP トークンを使用すると、フィルタと依存関係を表すことができます。このトークンを実行時に解釈すると、オブジェクトファミリを得ることができます。これらのオブジェクトを分析することにより、プロセスで読み込む場合のオブジェクトの適用レベルが決定されます。オブジェクトは、各オブジェクトの実行時に必要なハードウェア機能に基づいてソートされます。moe は、現在のプラットフォーム上で実行するのに最適なオブジェクトの名前を返します。

moe は、指定されたパスを RTLD_FIRST フラグとともに dlmopen(3C) に渡すことによってパス名を分析します。したがって、予約トークンの展開は、実行中のプロセスで展開が発生したときに ld.so.1 によって実行されます。dlmopen() を呼び出すことで複数のオブジェクトを分析できますが、RTLD_FIRST フラグを指定すると最適なオブジェクトだけが処理されます。

デフォルトでは、moe は指定した path を 2 回分析します。1 回目の分析では、32 ビットオブジェクトが検索されます。2 回目の分析では、64 ビットオブジェクトが検索されます (該当する場合)。通常、32 ビットオブジェクトと 64 ビットオブジェクトは別々のディレクトリに隔離されています。これらのディレクトリには、多くの場合、ディレクトリに格納されているオブジェクトのクラスを反映した名前が付けられています。moe の複数回の受け渡しにより、32 ビットオブジェクトと 64 ビットオブジェクトが同じディレクトリに含まれるインスタンスが取得されます。複数の受け渡しにより、指定したパス名ではディレクトリに含まれる可能性のあるオブジェクトのクラスがわからない場合にも柔軟に対応できます。

実行時リンカーによって実行される予約トークンの展開の詳細については、Oracle Solaris 11.3 リンカーとライブラリガイドを参照してください。

オプション

サポートしているオプションは、次のとおりです。

–32

32 ビットオブジェクトのみを分析します。

–64

64 ビットオブジェクトのみを分析します。

–c

各パス名の前にオブジェクトのクラスを付加します。

–s

サイレント。最適な名前やエラー診断が表示されません。エラーの戻り値のみが使用できます。このオプションは、–32 オプションまたは –64 オプションと一緒に指定したときのみ有効です。–s オプションは、–v オプションと同時に使用することはできません。

–v

冗長。最適な展開名を決定できない場合に、エラー診断を標準エラーに書き込みます。–v オプションは、–s オプションと同時に使用することはできません。

オペランド

次のオペランドを指定できます。

path

展開するパス名。

次の例では、moe を使用して /usr/lib/libc ディレクトリ内のオブジェクトの最適な展開を表示しています。このディレクトリには、さまざまなハードウェア機能を使用するために作成された Intel オブジェクトファミリが含まれています。

% moe '/usr/lib/libc/$HWCAP'
/usr/lib/libc/libc_hwcap.so.1

–c オプションを使用すると、最適なオブジェクトのクラスを明確にできます。

% moe -c '/usr/lib/libc/$HWCAP'
32-bit: /usr/lib/libc/libc_hwcap.so.1

次の例では、moe を使用して /opt/ISV/cpu ディレクトリ階層下のオブジェクトの最適な展開を表示しています。これらのディレクトリには、さまざまなプラットフォーム用に作成された SPARC オブジェクトファミリが含まれています。

% moe -c -64 '/opt/ISV/$ISALIST/isa.so.1'
64-bit: /opt/ISV/sparcv9/isa.so.1

–v を使用すると、最適な名前が返されないインスタンスを診断できます。直前のパス名を 32 ビットオブジェクトとして検査すると、次のような診断が生成されます。

% moe -c -v -32 '/opt/ISV/$ISALIST/isa.so.1'
32-bit: /opt/ISV/sparcv9/isa.so.1: wrong ELF class: ELFCLASS64 

終了ステータス

–32 オプションまたは –64 オプションを有効にした場合、最適な展開に成功すると 0 が返され、失敗すると 0 以外の値が返されます。–32 オプションまたは –64 オプションを有効にしなかった場合、戻り値は常に 0 です。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/linker
インタフェースの安定性
確実

関連項目

ld.so.1(1), optisa(1), isalist(1), dlmopen(3C), attributes(5)

Oracle Solaris 11.3 リンカーとライブラリガイド