OSDN Git Service

modutils: add notices telling that this package is obsolete.
[linuxjm/jm.git] / manual / modutils / release / man8 / genksyms.8
1 .\" Copyright (c) 1994 Bjorn Ekwall <bj0rn@blox.se>
2 .\" Copyright (c) 1997 Linux International
3 .\" This program is distributed according to the Gnu General Public License.
4 .\" See the file COPYING in the kernel source directory /linux
5 .\"
6 .\" Translated Sun Aug 15 10:58:55 JST 1999
7 .\"         by FUJIWARA Teruyoshi <fujiwara@linux.or.jp>
8 .\" Updated Mon Mar 18 JST 2002 by Kentaro Shirakata <argrath@ub32.org>
9 .\"
10 .TH GENKSYMS 8 "January 30, 2002" Linux "Linux Module Support"
11 .SH 名前
12 genksyms \- シンボルのバージョン情報を生成する
13 .SH 書式
14 .B genksyms
15 [\-wq] [\-dD] [\-V] [\-k\ \fIversion\fR] [\-p string]
16 [\fIoutput\ directory\fR]
17 .SH このマニュアルについて、
18 これは、Linux Kernel 2.4 の時代に使われていた modutils
19 パッケージ所収の古いユーティリティのマニュアルです。(2022/12/02,
20 Linux JM Project)
21 .SH 説明
22 .B genksyms
23 は (標準入力から) "\fBgcc -E source.c\fR" の出力を読み込み、
24 バージョン情報を含むファイルを生成する。
25 .PP
26 \fB\-k\fR\ オプションで指定される出力フォーマットにしたがって、
27 出力は指定された出力ディレクトリの \fB.ver\fR ファイルまたは標準出力に
28 書き出される。
29 .PP
30 .B genksyms
31 は普通ソースファイル中の明示的なシンボルテーブル定義を探す。
32 .BR typedef ,\  struct ,\  union ,\  enum
33 の全ての定義と宣言は後で展開するために保存される。
34 全てのグローバルなシンボルも、後で全て展開できるようにするポインタと共に
35 保存される。
36 .PP
37 シンボルテーブルがソース中で見つかると、シンボルは完全な定義に展開される。
38 この際には全ての構造体、共用体、列挙指定子、型宣言は基本部分まで再帰的に
39 展開される。
40 こうして得られた最終的な文字列が、CRC アルゴリズムへの入力として使われる。
41 このアルゴリズムは、このシンボルについて含まれている定義が変更されると
42 すぐに値が変わる整数を与える。
43 .PP
44 カーネルが持っているバージョン情報は普通、
45 .B symbol_R12345678
46 のようになっている。
47 ここで 12345678 は CRC を表す 16 進値である。
48 .SH オプション
49 .TP
50 .BR \-d ", " \-\-debug
51 デバッグ情報を出力する。このオプションを繰り返して指定すると、
52 出力の詳しさのレベルが大きくなる。デバッグレベル 1 では行った動作に関する
53 普通の情報が表示される。デバッグレベル 2 ではパーザの認識した情報の出力が
54 有効になる。デバッグレベル 3 では構文解析の情報が出力されるようになる。
55 .TP
56 .BR \-D ", " \-\-dump
57 展開したシンボル定義を標準エラー出力にダンプする。デバッグ専用の
58 オプションである。
59 .TP
60 .BR \-h ", " \-\-help
61 オプションの一覧を表示して直ちに終了する。
62 .TP
63 \fB\-k\fR\ \fIversion\fR,\ \fB\-\-kernel\fR\ \fIversion\fR
64 出力を生成する対象となるカーネルのバージョンを選択する。このオプションを
65 省略すると、バージョンは 2.1.0 より前として扱われる。2.1.18 より前では
66 バージョン 1 のチェックサムを使っており、出力は直接コマンドライン上に
67 生成される。バージョン 2.1.18 以降ではバージョン 2 のチェックサムを
68 使っており、出力は標準出力に生成される。
69 .TP
70 \fB\-p\fR\ \fIstring\fR,\ \fB\-\-prefix\fR\ \fIstring\fR
71 全てのシンボルについて、生成した CRC の前に与えられた文字列を付ける。
72 これは SMP 対応カーネル等で使うためのオプションである。このような場合には、
73 データの型で記述するよりも低いレベルにおいてモジュールの互換性がない。
74 非互換性の主な原因は、モジュールのコード自体におけるインライン関数の
75 展開である。
76 .TP
77 .BR \-q ", " \-\-quiet
78 警告を出さないようにする。つまり、\-w オプションの逆である。
79 .TP
80 .BR \-V ", " \-\-version
81 \fBgenksyms\fR のバージョンを表示する。
82 .TP
83 .BR \-w ", " \-\-warnings
84 認識できない構文や、宣言されているにも関わらず定義されていない構造体に
85 対する警告を表示するようにする。通常はこのような警告は行われない。
86 .SH 関連項目
87 .BR insmod "(8), " modprobe "(8) "
88 .SH バグ
89 \fB\-h\fR\ オプションは壊れている。\fB\-\-help\fR\ は正しく動く。
90 .br
91 \fBgenksyms\fR [\fB\-V\fR\ |\ \fB\-\-version\fR] はバージョン情報を
92 表示して直ちに終了するべきである。
93 しかしながら、現在はバージョン情報を表示した後、
94 何もオプションが指定されなかったかのように振舞う。
95 .SH 履歴
96 このバージョン付けの概念は議論の結果得られたものである。
97 議論も KERNEL-channel だけでなく、多くの人々によって行われた。
98 .PP
99 genksyms ユーティリティは 1994 年に Bjorn Ekwall <bj0rn@blox.se> が作成した。
100 その多くのアイディアは Jacques Gelinas <jack@solucorp.ca> と
101 Jeremy Fitzhardinge <jeremy@suite.sw.oz.au> によるものである。
102 .PP
103 このユーティリティは 1996 年に Richard Hendersnon が書き直し、より適切な
104 字句解析器とパーザを使うようにした。