diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CbC-implemantation.ja	Thu Nov 26 13:27:48 2009 +0900
@@ -0,0 +1,115 @@
+
+	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
+
+
+