GENKSYMS

Section: Linux Module Support (8)
Updated: January 30, 2002
Index JM Home Page
 

名前

genksyms - シンボルのバージョン情報を生成する  

書式

genksyms [-wq] [-dD] [-V] [-k version] [-p string] [output directory]  

説明

genksyms は (標準入力から) "gcc -E source.c" の出力を読み込み、 バージョン情報を含むファイルを生成する。

-k オプションで指定される出力フォーマットにしたがって、 出力は指定された出力ディレクトリの .ver ファイルまたは標準出力に 書き出される。

genksyms は普通ソースファイル中の明示的なシンボルテーブル定義を探す。 typedefstructunionenum の全ての定義と宣言は後で展開するために保存される。 全てのグローバルなシンボルも、後で全て展開できるようにするポインタと共に 保存される。

シンボルテーブルがソース中で見つかると、シンボルは完全な定義に展開される。 この際には全ての構造体、共用体、列挙指定子、型宣言は基本部分まで再帰的に 展開される。 こうして得られた最終的な文字列が、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 <bj0rn@blox.se> が作成した。 その多くのアイディアは Jacques Gelinas <jack@solucorp.ca> と Jeremy Fitzhardinge <jeremy@suite.sw.oz.au> によるものである。

このユーティリティは 1996 年に Richard Hendersnon が書き直し、より適切な 字句解析器とパーザを使うようにした。


関連キーワード

出力, バージョン, 情報, genksyms, GENKSYMS, 展開, シンボル, 生成, 定義, 表示

Linux マニュアル 一覧

[man1] [man2] [man3] [man4] [man5] [man6] [man7] [man8]
[a] [b] [c] [d] [e] [f] [g] [h] [i] [j] [k] [l] [m] [n] [o] [p] [q] [r] [s] [t] [u] [v] [w] [x] [y] [z]

 

Index

名前
書式
説明
オプション
関連項目
バグ
履歴

This document was created by man2html, using the manual pages.
Time: 12:08:55 GMT, June 11, 2022