TAG データ作成-CELLプロセッサ
早速、構築した環境を使ってソースコードの TAG データを作成してみます。解析の...
早速、構築した環境を使ってソースコードの TAG データを作成してみます。解析のターゲットにしている Linux kernel と libspe は BSC (Barcelona Supercomputer Center) にありますので、以下をダウンロードします。
http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk1.1/kernel-2.6.16-bsc4.2.src.rpm
http://www.bsc.es/projects/deepcomputing/linuxoncell/stable/libspe/libspe-1.1.0.tar.gz
まずは Linux kernel からですが、rpm には linux-2.6.16 と、quilt で管理するファイルの入ったディレクトリ (patches/) が kernel-2.6.16.tar.gz として入っていますので、Linux kernel を展開した後に quilt を使って Cell 用 kernel のソースコードを作成します。
$ rpm -ivh kernel-2.6.16-bsc4.2.src.rpm
$ tar xvzf ~/rpm/SOURCES/linux-2.6.16.tar.bz2
$ mv linux-2.6.16 cbe-linux-2.6.16
$ cd cbe-linux-2.6.16/
$ tar xvzf ~/rpm/SOURCES/kernel-2.6.16.tar.gz
では、quilt を使ってこれから適用する patch の状態を見てみます。
$ quilt series -v
patches/hvc-console-rework-4.diff
patches/hvc-console-rtas-4.diff
patches/cell-detect.diff
:
patches/spufs-dma-events-2.diff
patches/spufs-correct-dma-exceptions.diff
patches/SDK
patch を全部適用します。
$ quilt push -a
で、patch の状態を確認すると
$ quilt series -v
+ patches/hvc-console-rework-4.diff
+ patches/hvc-console-rtas-4.diff
+ patches/cell-detect.diff
:
+ patches/spufs-dma-events-2.diff
+ patches/spufs-correct-dma-exceptions.diff
= patches/SDK
という具合に適用されている patch の先頭には + が付き、この内、最上位の patch には = が付きます。全ての patch をはずす場合は
$ quilt pop -a
です。push, pop に -a を指定すると管理している全ての patch が対象となり、指定しないと一つだけが対象となります。あとは、最上位の patch の表示の仕方くらい覚えておけばソースコードを解析はできます。
$ quilt diff
で、gtags 実行
$ gtags
ちなみに TAG データのサイズはこのくらいです。ほぼ 1GB ですが、最近の HDD のサイズを考えれば問題にならないでしょう。
GPATH: 3137536 byte
GTAGS: 115400704 byte
GRTAGS: 758595584 byte
GSYMS: 93298688 byte
libspe も同様に解凍して gtags します。
$ tar xvzf libspe-1.1.0.tar.gz
$ cd libspe-1.1.0/
$ gtags
こちらの TAG データのサイズはこのくらいです。
GPATH: 16384 byte
GTAGS: 81920 byte
GRTAGS: 352256 byte
GSYMS: 188416 byte
あ〜、やっと解析準備完了。
http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk1.1/kernel-2.6.16-bsc4.2.src.rpm
http://www.bsc.es/projects/deepcomputing/linuxoncell/stable/libspe/libspe-1.1.0.tar.gz
まずは Linux kernel からですが、rpm には linux-2.6.16 と、quilt で管理するファイルの入ったディレクトリ (patches/) が kernel-2.6.16.tar.gz として入っていますので、Linux kernel を展開した後に quilt を使って Cell 用 kernel のソースコードを作成します。
$ rpm -ivh kernel-2.6.16-bsc4.2.src.rpm
$ tar xvzf ~/rpm/SOURCES/linux-2.6.16.tar.bz2
$ mv linux-2.6.16 cbe-linux-2.6.16
$ cd cbe-linux-2.6.16/
$ tar xvzf ~/rpm/SOURCES/kernel-2.6.16.tar.gz
では、quilt を使ってこれから適用する patch の状態を見てみます。
$ quilt series -v
patches/hvc-console-rework-4.diff
patches/hvc-console-rtas-4.diff
patches/cell-detect.diff
:
patches/spufs-dma-events-2.diff
patches/spufs-correct-dma-exceptions.diff
patches/SDK
patch を全部適用します。
$ quilt push -a
で、patch の状態を確認すると
$ quilt series -v
+ patches/hvc-console-rework-4.diff
+ patches/hvc-console-rtas-4.diff
+ patches/cell-detect.diff
:
+ patches/spufs-dma-events-2.diff
+ patches/spufs-correct-dma-exceptions.diff
= patches/SDK
という具合に適用されている patch の先頭には + が付き、この内、最上位の patch には = が付きます。全ての patch をはずす場合は
$ quilt pop -a
です。push, pop に -a を指定すると管理している全ての patch が対象となり、指定しないと一つだけが対象となります。あとは、最上位の patch の表示の仕方くらい覚えておけばソースコードを解析はできます。
$ quilt diff
で、gtags 実行
$ gtags
ちなみに TAG データのサイズはこのくらいです。ほぼ 1GB ですが、最近の HDD のサイズを考えれば問題にならないでしょう。
GPATH: 3137536 byte
GTAGS: 115400704 byte
GRTAGS: 758595584 byte
GSYMS: 93298688 byte
libspe も同様に解凍して gtags します。
$ tar xvzf libspe-1.1.0.tar.gz
$ cd libspe-1.1.0/
$ gtags
こちらの TAG データのサイズはこのくらいです。
GPATH: 16384 byte
GTAGS: 81920 byte
GRTAGS: 352256 byte
GSYMS: 188416 byte
あ〜、やっと解析準備完了。




コメント
Created the grteeast articles, you have.
Posted by: Millicent | 2011年07月19日 18:18
cqc8CK jrlssfbkfcqc
Posted by: nwrfmheyu | 2011年07月20日 18:19
pknciH sgvxzqzmpwyj
Posted by: zmzmlwlshq | 2011年07月22日 18:55