Mercurial > hg > CbC > CbC_gcc
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 + + +