GENKSYMS(8) Linux Module Support GENKSYMS(8)
名前
genksyms - シンボルのバージョン情報を生成する
書式
genksyms [-wq] [-dD] [-V] [-k version] [-p string] [output directory]
説明
genksyms は (標準入力から) "gcc -E source.c" の出力を読み込み、バージョ
ン情報を含むファイルを生成する。
-k オプションで指定される出力フォーマットにしたがって、出力は指定された
出力ディレクトリの .ver ファイルまたは標準出力に書き出される。
genksyms は普通ソースファイル中の明示的なシンボルテーブル定義を探す。
typedef, struct, union, enum の全ての定義と宣言は後で展開するために保存
さ れる。全てのグローバルなシンボルも、後で全て展開できるようにするポイ
ンタと共に保存される。
シンボルテーブルがソース中で見つかると、シンボルは完全な定義に展開さ れ
る 。この際には全ての構造体、共用体、列挙指定子、型宣言は基本部分まで再
帰的に展開される。こうして得られた最終的な文字列が、CRC アルゴリズム へ
の 入力として使われる。このアルゴリズムは、このシンボルについて含まれて
いる定義が変更されるとすぐに値が変わる整数を与える。
カーネルが持っているバージョン情報は普通、 symbol_R12345678 のように な
っている。ここで 12345678 は CRC を表す 16 進値である。
オプション
-d, --debug
デバッグ情報を出力する。このオプションを繰り返して指定すると、出
力の詳しさのレベルが大きくなる。デバッグレベル 1 では行った動 作
に 関する普通の情報が表示される。デバッグレベル 2 ではパーザの認
識した情報の出力が有効になる。デバッグレベル 3 では構文解析の 情
報が出力されるようになる。
-D, --dump
展開したシンボル定義を標準エラー出力にダンプする。デバッグ専用の
オプションである。
-h, --help
オプションの一覧を表示して直ちに終了する。
-k version, --kernel version
出力を生成する対象となるカーネルのバージョンを選択する。このオプ
シ ョ ン を 省 略すると、バージョンは 2.1.0 より前として扱われる
。2.1.18 より前ではバージョン 1 のチェックサムを使っており、出力
は直接コマンドライン上に生成される。バージョン 2.1.18 以降ではバ
ージョン 2 のチェックサムを使っており、出力は標準出力に生成さ れ
る。
-p string, --prefix string
全 てのシンボルについて、生成した CRC の前に与えられた文字列を付
ける。これは SMP 対応カーネル等で使うためのオプションである。 こ
のような場合には、データの型で記述するよりも低いレベルにおいてモ
ジュールの互換性がない。非互換性の主な原因は、モジュールのコード
自体におけるインライン関数の展開である。
-q, --quiet
警告を出さないようにする。つまり、-w オプションの逆である。
-V, --version
genksyms のバージョンを表示する。
-w, --warnings
認識できない構文や、宣言されているにも関わらず定義されていない構
造体に対する警告を表示するようにする。通常はこのような警告は行わ
れない。
関連項目
insmod(8), modprobe(8)
バグ
-h オプションは壊れている。--help は正しく動く。
genksyms [-V | --version] はバージョン情報を表示して直ちに終了するべき
である。しかしながら、現在はバージョン情報を表示した後、何もオプショ ン
が指定されなかったかのように振舞う。
履歴
こ のバージョン付けの概念は議論の結果得られたものである。議論も KERNEL-
channel だけでなく、多くの人々によって行われた。
genksyms ユーティリティは 1994 年に Bjorn Ekwall
コロナウイルスの日ごとの感染者数・死者数をグラフ化してみました。どの国が増加傾向にあり、どの国が終息に向かっているかを視覚化しています。
Copyright(C) linux-cmd.com All Rights Reserved. Author Takayuki Yukawa