'\" te .\" Copyright (c) 2005, 2014, Oracle and/or its affiliates.All rights reserved. .TH moe 1 "2014 年 4 月 23 日" "SunOS 5.11" "ユーザーコマンド" .SH 名前 moe \- 最適なパス名展開のマニフェストの生成 .SH 形式 .LP .nf \fBmoe\fR [\fB-c\fR] [\fB-32\fR | \fB-64\fR] [\fB-s\fR | \fB-v\fR] \fIpath\fR .fi .SH 機能説明 .sp .LP \fBmoe\fR ユーティリティーは、実行時リンカーの予約トークンを含む最適なパス名展開のマニフェストを生成します。これらのトークンを使用すると、動的なオブジェクト内の依存関係、フィルタ対象、および実行パスを定義できます。これらのトークンを実行時に展開することにより、そのマシン上で最適に実行されるオブジェクトと検索パスを柔軟に選択できます。\fBld.so.1\fR(1) を参照してください。 .sp .LP たとえば、\fB$HWCAP\fR トークンを使用すると、フィルタと依存関係を表すことができます。このトークンを実行時に解釈すると、オブジェクトファミリを得ることができます。これらのオブジェクトを分析することにより、プロセスで読み込む場合のオブジェクトの適用レベルが決定されます。オブジェクトは、各オブジェクトの実行時に必要なハードウェア機能に基づいてソートされます。\fBmoe\fR は、現在のプラットフォーム上で実行するのに最適なオブジェクトの名前を返します。 .sp .LP \fBmoe\fR は、指定されたパスを \fBRTLD_FIRST\fR フラグとともに \fBdlmopen\fR(3C) に渡すことによってパス名を分析します\fI\fR。したがって、予約トークンの展開は、実行中のプロセスで展開が発生したときに \fBld.so.1\fR によって実行されます。\fBdlmopen()\fR を呼び出すことで複数のオブジェクトを分析できますが、\fBRTLD_FIRST\fR フラグを指定すると最適なオブジェクトだけが処理されます。 .sp .LP デフォルトでは、\fBmoe\fR は指定した \fIpath\fR を 2 回分析します。1 回目の分析では、32 ビットオブジェクトが検索されます。2 回目の分析では、64 ビットオブジェクトが検索されます (該当する場合)。通常、32 ビットオブジェクトと 64 ビットオブジェクトは別々のディレクトリに隔離されています。これらのディレクトリには、多くの場合、ディレクトリに格納されているオブジェクトのクラスを反映した名前が付けられています。\fBmoe\fR の複数回の受け渡しにより、32 ビットオブジェクトと 64 ビットオブジェクトが同じディレクトリに含まれるインスタンスが取得されます。複数の受け渡しにより、指定したパス名ではディレクトリに含まれる可能性のあるオブジェクトのクラスがわからない場合にも柔軟に対応できます。 .sp .LP 実行時リンカーによって実行される予約トークンの展開の詳細については、\fI『Oracle Solaris 11.3 Linkers and Libraries Guide』\fRを参照してください。 .SH オプション .sp .LP サポートしているオプションは、次のとおりです。 .sp .ne 2 .mk .na \fB\fB-32\fR\fR .ad .RS 7n .rt 32 ビットオブジェクトのみを分析します。 .RE .sp .ne 2 .mk .na \fB\fB-64\fR\fR .ad .RS 7n .rt 64 ビットオブジェクトのみを分析します。 .RE .sp .ne 2 .mk .na \fB\fB-c\fR\fR .ad .RS 7n .rt 各パス名の前にオブジェクトのクラスを付加します。 .RE .sp .ne 2 .mk .na \fB\fB-s\fR\fR .ad .RS 7n .rt サイレント。最適な名前やエラー診断が表示されません。エラーの戻り値のみが使用できます。このオプションは、\fB-32\fR オプションまたは \fB-64\fR オプションと一緒に指定したときのみ有効です。\fB-s\fR オプションは、\fB-v\fR オプションと同時に使用することはできません。 .RE .sp .ne 2 .mk .na \fB\fB-v\fR\fR .ad .RS 7n .rt 冗長。最適な展開名を決定できない場合に、エラー診断を標準エラーに書き込みます。\fB-v\fR オプションは、\fB-s\fR オプションと同時に使用することはできません。 .RE .SH オペランド .sp .LP 次のオペランドを指定できます。 .sp .ne 2 .mk .na \fB\fIpath\fR\fR .ad .RS 8n .rt 展開するパス名。 .RE .SH 使用例 .sp .LP 次の例では、\fBmoe\fR を使用して \fB/usr/lib/libc\fR ディレクトリ内のオブジェクトの最適な展開を表示しています。このディレクトリには、さまざまなハードウェア機能を使用するために作成された Intel オブジェクトファミリが含まれています。 .sp .in +2 .nf % \fBmoe '/usr/lib/libc/$HWCAP'\fR /usr/lib/libc/libc_hwcap.so.1 .fi .in -2 .sp .sp .LP \fB-c\fR オプションを使用すると、最適なオブジェクトのクラスを明確にできます。 .sp .in +2 .nf % \fBmoe -c '/usr/lib/libc/$HWCAP'\fR 32-bit: /usr/lib/libc/libc_hwcap.so.1 .fi .in -2 .sp .sp .LP 次の例では、\fBmoe\fR を使用して \fB/opt/ISV/cpu\fR ディレクトリ階層下のオブジェクトの最適な展開を表示しています。これらのディレクトリには、さまざまなプラットフォーム用に作成された SPARC オブジェクトファミリが含まれています。 .sp .in +2 .nf % \fBmoe -c -64 '/opt/ISV/$ISALIST/isa.so.1'\fR 64-bit: /opt/ISV/sparcv9/isa.so.1 .fi .in -2 .sp .sp .LP \fB-v\fR を使用すると、最適な名前が返されないインスタンスを診断できます。直前のパス名を 32 ビットオブジェクトとして検査すると、次のような診断が生成されます。 .sp .in +2 .nf % \fBmoe -c -v -32 '/opt/ISV/$ISALIST/isa.so.1'\fR 32-bit: /opt/ISV/sparcv9/isa.so.1: wrong ELF class: ELFCLASS64 .fi .in -2 .sp .SH 終了ステータス .sp .LP \fB-32\fR オプションまたは \fB-64\fR オプションを有効にした場合、最適な展開に成功すると \fB0\fR が返され、失敗すると 0 以外の値が返されます。\fB-32\fR オプションまたは \fB-64\fR オプションを有効にしなかった場合、戻り値は常に \fB0\fR です。 .SH 属性 .sp .LP 属性についての詳細は、マニュアルページの \fBattributes\fR(5) を参照してください。 .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . 属性タイプ属性値 _ 使用条件system/linker _ インタフェースの安定性確実 .TE .SH 関連項目 .sp .LP \fBld.so.1\fR(1), \fBoptisa\fR(1), \fBisalist\fR(1), \fBdlmopen\fR(3C), \fBattributes\fR(5) .sp .LP \fI『Oracle Solaris 11.3 Linkers and Libraries Guide』\fR