株式会社シジャム・ビーティービー
HOME > CELLプロセッサ > cell > linux > TAG データ作成

TAG データ作成-CELLプロセッサ

topics

早速、構築した環境を使ってソースコードの TAG データを作成してみます。解析の...

image
早速、構築した環境を使ってソースコードの 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

あ〜、やっと解析準備完了。

トラックバック

トラックバックURL:

コメントを投稿


※上に表示されている番号を入力してください