jpman project specific RCS keyword (jpman %Id) is obsolete, after manual entries are stored in freefall CVS repository. This old Id is useless and more worse it confuses users and bug reporters. So, this old Id is removed. Submitted by:jpman project <man-jp@jp.FreeBSD.org>
70 lines
1.8 KiB
Groff
70 lines
1.8 KiB
Groff
.\"
|
|
.\" %FreeBSD: src/usr.bin/genassym/genassym.8,v 1.2.2.1 2000/12/08 15:13:37 ru Exp %
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd December 20, 1999
|
|
.Dt GENASSYM 8
|
|
.Os
|
|
.Sh 名称
|
|
.Nm genassym
|
|
.Nd C からアセンブラのシンボルを作成する
|
|
.Sh 書式
|
|
.Nm
|
|
.Op Fl o Ar outfile
|
|
.Ar objfile
|
|
.Sh 解説
|
|
.Nm
|
|
コマンドは、
|
|
C のコードよりアセンブラシンボルを作成するための
|
|
特別な目的のためのプログラムであり、
|
|
C のコードと低レベルなアセンブラコードとのインタフェースとして使われます。
|
|
これは、例えば、
|
|
.Fx
|
|
のカーネルやモジュールを作成するために
|
|
使われます。引数
|
|
.Ar objfile
|
|
はシンボルの定義を保持している ELF オブジェクトファイルの名前です。
|
|
これらの定義はオブジェクトファイルより抽出され、
|
|
標準出力、もしくは
|
|
アセンブラソースファイルで取り込むために適した
|
|
.Ar outfile
|
|
で指定されたファイルに書かれます。
|
|
.Pp
|
|
.Nm
|
|
コマンドはオブジェクトファイルより
|
|
.Nm assym_
|
|
プレフィックスを持ちグローバルデータ型であるシンボルの抽出のみを行い、
|
|
その値はシンボルに与えられた値となります。以下の C の宣言
|
|
.Bd -literal -offset indent -compact
|
|
int assym_MY_SYMBOL = 3;
|
|
.Ed
|
|
は以下のアセンブラシンボルを作成するために用いられます。
|
|
.Bd -literal -offset indent -compact
|
|
#define MY_SYMBOL 0x3
|
|
.Ed
|
|
シンボルの大きさはオブジェクトファイルから抽出されることに
|
|
注意してください。これはシンボルが値を保持するために
|
|
十分に大きい様々な型を持つかもしれないということを意味しています。
|
|
.Sh 関連項目
|
|
.Xr config 8 ,
|
|
.Xr gensetdefs 8
|
|
.Sh 作者
|
|
.Nm
|
|
コマンドは
|
|
.An Marcel Moolenaar Aq marcel@FreeBSD.org
|
|
が記述しました。本コマンドは
|
|
.Dv gensetdefs
|
|
コマンドを元にしています。
|
|
.Sh バグ
|
|
全てのリンカが ELF オブジェクトファイルにシンボルの大きさを
|
|
保存するわけではありません。
|
|
例えば Alpha 向けの GNU リンカ (binutils 2.9.1) では
|
|
このバグが存在します。
|
|
このよう場合シンボルの大きさは ELF オブジェクトファイルでの
|
|
ワードサイズと等しいと仮定されます。
|
|
Alpha では 64 ビットであり、i386 では 32 ビットとなります。
|
|
.Sh 歴史
|
|
.Nm
|
|
コマンドは
|
|
.Fx 4.0
|
|
ではじめて登場しました。
|