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

印刷ビューの終了

更新: 2016年12月6日
 
 

elffile(1)

名前

elffile - ELFファイルタイプの識別

形式

elffile [-s basic | detail | summary] filename...

説明

elffile ユーティリティーは、ELF オブジェクトとそれに関連するファイルタイプで使用することを目的にした、file コマンドの特殊なバリエーションです。elffile は、次の種類のファイルを識別できます。

アーカイブ

file によって提供される情報に加えて、elffile はアーカイブメンバーのタイプを識別します。

ELF オブジェクト/実行時リンカーの構成ファイル

elffile は、file と同じ出力を提供します。

その他の種類のファイルはすべて、ELF 以外として報告されます。このようなファイルをそれ以上分類しようとする試みは行われません。file ユーティリティーは、汎用ファイルの識別に推奨されます。

オプション

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

–s basic | detail | summary

提供される出力の形式を指定します

basic

file によって使用されるのと同じ形式の 1 行の説明を生成します。

detail

アーカイブ以外の場合、summary の出力は basic と同じです。アーカイブを処理する場合は、基本出力行のあとに、アーカイブメンバーごとの 1 行の出力が続きます。

summary

アーカイブ以外の場合、summary の出力は basic と同じです。アーカイブを処理する場合は、アーカイブ内容のサマリーの説明が基本出力の最後に追加されます。–s オプションが指定されていない場合、elffile はデフォルトで summary 形式を使用します。

サマリー形式を使用しているときにアーカイブに対して生成される出力は、そのアーカイブの内容によって異なります。アーカイブに、同じプラットフォームに対するオブジェクトの同種コレクションが含まれている場合は、そのプラットフォームの詳細が 1 つのオブジェクトに使用されるのと同じ形式で示されます。それ以外の場合は、サマリーの説明が生成されます。詳細形式を使用すると、個々のアーカイブメンバーに関するより具体的な情報を取得できます。

サマリー形式と詳細形式では、アーカイブのすべてのメンバーを検査する必要があります。実行の速度はアーカイブメンバーの数に比例し、きわめて大きなアーカイブでは遅くなる場合があります。

使用例 1 アーカイブのサマリー出力の表示

次の例では、異なる内容を含むアーカイブに対する elffile からのサマリー出力を表示します。次のアーカイブが使用されます。

same_elf.a

1 つのプラットフォームに対する ELF オブジェクト。

mixed_elf.a

複数のプラットフォームに対する ELF オブジェクト。

mixed.a

ELF オブジェクトおよび ELF 以外のファイル。

not_elf.a

ELF 以外のファイル。

アーカイブのサマリー出力は、アーカイブメンバーのタイプによって異なります。

example% elffile same_elf.a mixed_elf.a mixed.a not_elf.a
same_elf.a: current ar archive, 32-bit symbol table, \
    ELF 64-bit LSB relocatable AMD64 Version 1
mixed_elf.a: current ar archive, 32-bit symbol table, \
    mixed ELF content
mixed.a: current ar archive, 32-bit symbol table, \
    mixed ELF and non-ELF content
not_elf.a: current ar archive, non-ELF content
使用例 2 アーカイブの詳細出力のフィルタ処理

elffile からの詳細出力では、アーカイブの 1 行の出力が生成され、そのあとにアーカイブメンバーごとの 1 行の出力が続きます。この出力を容易にフィルタ処理して、情報をさまざまな形式で提供できます。次の例では、64 ビットの x86 システム用の再配置可能オブジェクトを含む libCstd. アーカイブを使用してこれを示しています。このアーカイブに対するフィルタ処理されていない elffile の詳細出力は次のとおりです。

example% elffile -s detail libCstd.a
libCstd.a: current ar archive, 32-bit symbol table
libCstd.a(bitset.o): ELF 64-bit LSB relocatable \
    AMD64 Version 1 [CMOV]
libCstd.a(complex.o): ELF 64-bit LSB relocatable \
    AMD64 Version 1 [SSE2 SSE CMOV FPU]
libCstd.a(limits.o): ELF 64-bit LSB relocatable \
    AMD64 Version 1 [SSE2 SSE FPU]
libCstd.a(limitsinit.o): ELF 64-bit LSB relocatable \
    AMD64 Version 1
libCstd.a(stdexcept.o): ELF 64-bit LSB relocatable \
    AMD64 Version 1 [SSE CMOV]
...

この出力は、各オブジェクトに、実行のために必要なハードウェア機能のタグが付けられていることを示しています。これらの機能タグは、各オブジェクト内のコードによって異なります。次のコマンドは、elffile からの出力をフィルタ処理して、一意の各機能マスクを識別し、アーカイブ内の各マスクを含むオブジェクトの数をカウントします。sed コマンドは、出力からアーカイブメンバー名を削除するために使用され、その結果、同じ機能マスクを持つすべてのアーカイブメンバーの出力が同じになります。sort コマンドは、これらの同じ行をグループ化するために使用され、uniq コマンドは、一意の各グループをグループごとの 1 行に置き換え、各行の先頭にその行がグループ内で出現した回数を示すために使用されます。

example% elffile -s detail libCstd.a | sed 's,(.*),,' | \
    sort -f | uniq -c
   1 libCstd.a: current ar archive, 32-bit symbol table
 777 libCstd.a: ELF 64-bit LSB relocatable \
         AMD64 Version 1
   1 libCstd.a: ELF 64-bit LSB relocatable \
         AMD64 Version 1 [CMOV FPU]
 126 libCstd.a: ELF 64-bit LSB relocatable \
         AMD64 Version 1 [CMOV]
  12 libCstd.a: ELF 64-bit LSB relocatable \
         AMD64 Version 1 [FPU]
  69 libCstd.a: ELF 64-bit LSB relocatable \
         AMD64 Version 1 [SSE CMOV]
   2 libCstd.a: ELF 64-bit LSB relocatable \
         AMD64 Version 1 [SSE2 CMOV]
   3 libCstd.a: ELF 64-bit LSB relocatable \
         AMD64 Version 1 [SSE2 SSE CMOV FPU]
   3 libCstd.a: ELF 64-bit LSB relocatable \
         AMD64 Version 1 [SSE2 SSE CMOV]
   1 libCstd.a: ELF 64-bit LSB relocatable \
         AMD64 Version 1 [SSE2 SSE FPU]
   2 libCstd.a: ELF 64-bit LSB relocatable \
         AMD64 Version 1 [SSE2 SSE]
  20 libCstd.a: ELF 64-bit LSB relocatable \
         AMD64 Version 1 [SSE2]
   4 libCstd.a: ELF 64-bit LSB relocatable \
         AMD64 Version 1 [SSE]

終了ステータス

次の終了ステータスが返されます。

0

正常終了

>0

エラーが発生しました

属性

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

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

関連項目

ar(1), dump(1), elfdump(1), file(1)

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