view CbC-implemantation.ja @ 29:cc07adb17855

deleting old commented out code.
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Thu, 26 Nov 2009 13:27:48 +0900
parents
children 59194914942b
line wrap: on
line source


	GCC への CbC コンパイル機能の実装について

BUILD方法 (作業ディレクトリとは別ディレクトリで)

  $ cd ../
  $ mkdir build-test
  $ cd build-test
  $ CFLAGS=-O0 ../GCC/configure --disable-nls --disable-bootstrap \
   --enable-languages=c --prefix=$PWD/INSTALL-DIR \
   --enable-checking=tree,rtl,assert
  $ make
  $ make install
  installまでしないと環境によってはinclude<stdio.h>に問題が出る場合がある
  実際に使用する場合はconfigureには何もオプションはつけないでいい
  CFLAGSには "-O0 -gdwarf-2 -g3"をつけると gdbでのmacro表示できる

  $ CFLAGS="-O0 -gdwarf-2 -g3" ../GCC/configure --disable-nls --disable-bootstrap \
   --enable-languages=c --prefix=$PWD/INSTALL-DIR \
   --enable-checking=tree,rtl,assert


CVS管理
 GCC new release のインポート
  $ wget gcc-core-4.x.y.tar.gz
  $ tar xzvf gcc-core-4.x.y.tar.gz
  $ cd gcc-core-4.x.y.tar.gz
  $ cvs import -ko -m "comment" CbC_project/GCC FSF_GCC REL_4_x_y

  これでimportされる。

 現在のローカルでの修正とのマージ
  なにもないディレクトリにて
  $ cvs checkout -jREL_4_._. -j REL_4_x_y CbC_project/GCC

  もしくは既にある作業ディレクトリにて
  $ cvs update -jREL_4_._. -j REL_4_x_y

  4_._.は前のバージョン
  conflictがでたら手作業で修正(運が良ければなにもしないでいい)

  コンパイルして動作確認後、
  $ cvs commit
これであたらしいreleaseにマージ完了


DEBUG手法
 gccコマンドではなくcc1コマンドに対してgdbを起動
  $ ls
  GCC/  build-test/  test/
  $ cd test
  $ gdb ../build-test/gcc/cc1

 treeの表示
  (gdb) p browse_tree (exp) <== expはtree構造体

 rtxの表示
  (gdb) p debug_rtx (exp)   <== expはrtx構造体

  browse_treeはtree, debug_rtxはrtxをconfigureの
  --enable-checkingで指定している必要がある


ソースコードを読むために
 ディレクトリ内でbuild
  $ cd CbC_project/GCC
  $ cvs release   (念のため)
  $ CFLAGS='-O0 -gdwarf-2 -g3' ../GCC/configure --disable-nls \
  > --disable-bootstrap --enable-languages=c --prefix=$PWD/INSTALL-DIR \
  > --enable-checking=tree,rtl,assert
  $ make
  $ gtags
  

GDBでmacroを表示
 上記のように CFLAGS='-O0 -gdwarf-2 -g3' をつけてbuild
  (gdb) macro expand MACRO(a)
  (gdb) info macro MACRO
  (gdb) help macro


for spu on PS3
  $ ../CbConGCC/configure --prefix=/usr/local/spu-cbc
  > --build=powerpc --target=spu --program-prefix=spu-
  > --disable-bootstrap --enable-checking=tree,rtl,assert
  > --disable-nls --disable-shared --disable-threads
  > --enable-languages=c --with-system-zlib --with-newlib
  > --enable-version-specific-runtime-libs --disable-libssp
  > --with-gnu-as -with-as=/usr/bin/spu-as --with-gnu-ld
  > --with-ld=/usr/bin/spu-ld
  $ make install
  $ cd /usr/local/spu-cbc
  $ ln -s /usr/spu spu


for ppu on PS3
  binutils
    $ tar xzvf binutils-...tar.gz
    $ mkdir binutils_4ps3
    $ cd binutils_4ps3
    $ ../binutils../configure --prefix=$PWD/INSTALL_DIR
    > --target=ppc64-yellowdog-linux
    $ make install
    $ cd ..
  cross gcc
    $ mkdir gcc_4ps3
    $ PATH=$PWD/../binutils_4ps3/INSTALL_DIR/bin:$PATH
    $ ../CbConGCC/configure --prefix=$PWD/INSTALL_DIR
    > --enable-language=c --target=ppc64-yellowdog-linux
    > --with-newlib --with-included-gettext --enable-shared
    > --enable-threads
    $ make