genassym(8) FreeBSD 一般コマンドマニュアル

genassym

前のページ 上に戻る 次のページ

genassym




解説

     genassym コマンドは、 C のコードよりアセンブラシンボルを作成するための特
     別な目的のためのプログラムであり、 C のコードと低レベルなアセンブラコード
     とのインタフェースとして使われます。これは、例えば、 FreeBSD のカーネルや
     モジュールを作成するために使われます。引数 objfile はシンボルの定義を保持
     している ELF オブジェクトファイルの名前です。これらの定義はオブジェクト
     ファイルより抽出され、標準出力、もしくはアセンブラソースファイルで取り込
     むために適した outfile で指定されたファイルに書かれます。

     genassym コマンドはオブジェクトファイルより assym_ プレフィックスを持ちグ
     ローバルデータ型であるシンボルの抽出のみを行い、その値はシンボルに与えら
     れた値となります。以下の C の宣言
           int assym_MY_SYMBOL = 3;
     は以下のアセンブラシンボルを作成するために用いられます。
           #define MY_SYMBOL 0x3
     シンボルの大きさはオブジェクトファイルから抽出されることに注意してくださ
     い。これはシンボルが値を保持するために十分に大きい様々な型を持つかもしれ
     ないということを意味しています。


関連項目

     config(8), gensetdefs(8)


作者

     genassym コマンドは Marcel Moolenaar <marcel@FreeBSD.org> が記述しまし
     た。本コマンドは gensetdefs コマンドを元にしています。


バグ

     全てのリンカが ELF オブジェクトファイルにシンボルの大きさを保存するわけで
     はありません。例えば Alpha 向けの GNU リンカ (binutils 2.9.1) ではこのバ
     グが存在します。このよう場合シンボルの大きさは ELF オブジェクトファイルで
     のワードサイズと等しいと仮定されます。 Alpha では 64 ビットであり、i386
     では 32 ビットとなります。


歴史

     genassym コマンドは FreeBSD 4.0 ではじめて登場しました。

FreeBSD 4.4                    December 20, 1999                   FreeBSD 4.4

ABELNET VPSサービス