comparison 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
comparison
equal deleted inserted replaced
28:f2ea7e07d030 29:cc07adb17855
1
2 GCC への CbC コンパイル機能の実装について
3
4 BUILD方法 (作業ディレクトリとは別ディレクトリで)
5
6 $ cd ../
7 $ mkdir build-test
8 $ cd build-test
9 $ CFLAGS=-O0 ../GCC/configure --disable-nls --disable-bootstrap \
10 --enable-languages=c --prefix=$PWD/INSTALL-DIR \
11 --enable-checking=tree,rtl,assert
12 $ make
13 $ make install
14 installまでしないと環境によってはinclude<stdio.h>に問題が出る場合がある
15 実際に使用する場合はconfigureには何もオプションはつけないでいい
16 CFLAGSには "-O0 -gdwarf-2 -g3"をつけると gdbでのmacro表示できる
17
18 $ CFLAGS="-O0 -gdwarf-2 -g3" ../GCC/configure --disable-nls --disable-bootstrap \
19 --enable-languages=c --prefix=$PWD/INSTALL-DIR \
20 --enable-checking=tree,rtl,assert
21
22
23 CVS管理
24 GCC new release のインポート
25 $ wget gcc-core-4.x.y.tar.gz
26 $ tar xzvf gcc-core-4.x.y.tar.gz
27 $ cd gcc-core-4.x.y.tar.gz
28 $ cvs import -ko -m "comment" CbC_project/GCC FSF_GCC REL_4_x_y
29
30 これでimportされる。
31
32 現在のローカルでの修正とのマージ
33 なにもないディレクトリにて
34 $ cvs checkout -jREL_4_._. -j REL_4_x_y CbC_project/GCC
35
36 もしくは既にある作業ディレクトリにて
37 $ cvs update -jREL_4_._. -j REL_4_x_y
38
39 4_._.は前のバージョン
40 conflictがでたら手作業で修正(運が良ければなにもしないでいい)
41
42 コンパイルして動作確認後、
43 $ cvs commit
44 これであたらしいreleaseにマージ完了
45
46
47 DEBUG手法
48 gccコマンドではなくcc1コマンドに対してgdbを起動
49 $ ls
50 GCC/ build-test/ test/
51 $ cd test
52 $ gdb ../build-test/gcc/cc1
53
54 treeの表示
55 (gdb) p browse_tree (exp) <== expはtree構造体
56
57 rtxの表示
58 (gdb) p debug_rtx (exp) <== expはrtx構造体
59
60 browse_treeはtree, debug_rtxはrtxをconfigureの
61 --enable-checkingで指定している必要がある
62
63
64 ソースコードを読むために
65 ディレクトリ内でbuild
66 $ cd CbC_project/GCC
67 $ cvs release (念のため)
68 $ CFLAGS='-O0 -gdwarf-2 -g3' ../GCC/configure --disable-nls \
69 > --disable-bootstrap --enable-languages=c --prefix=$PWD/INSTALL-DIR \
70 > --enable-checking=tree,rtl,assert
71 $ make
72 $ gtags
73
74
75 GDBでmacroを表示
76 上記のように CFLAGS='-O0 -gdwarf-2 -g3' をつけてbuild
77 (gdb) macro expand MACRO(a)
78 (gdb) info macro MACRO
79 (gdb) help macro
80
81
82 for spu on PS3
83 $ ../CbConGCC/configure --prefix=/usr/local/spu-cbc
84 > --build=powerpc --target=spu --program-prefix=spu-
85 > --disable-bootstrap --enable-checking=tree,rtl,assert
86 > --disable-nls --disable-shared --disable-threads
87 > --enable-languages=c --with-system-zlib --with-newlib
88 > --enable-version-specific-runtime-libs --disable-libssp
89 > --with-gnu-as -with-as=/usr/bin/spu-as --with-gnu-ld
90 > --with-ld=/usr/bin/spu-ld
91 $ make install
92 $ cd /usr/local/spu-cbc
93 $ ln -s /usr/spu spu
94
95
96 for ppu on PS3
97 binutils
98 $ tar xzvf binutils-...tar.gz
99 $ mkdir binutils_4ps3
100 $ cd binutils_4ps3
101 $ ../binutils../configure --prefix=$PWD/INSTALL_DIR
102 > --target=ppc64-yellowdog-linux
103 $ make install
104 $ cd ..
105 cross gcc
106 $ mkdir gcc_4ps3
107 $ PATH=$PWD/../binutils_4ps3/INSTALL_DIR/bin:$PATH
108 $ ../CbConGCC/configure --prefix=$PWD/INSTALL_DIR
109 > --enable-language=c --target=ppc64-yellowdog-linux
110 > --with-newlib --with-included-gettext --enable-shared
111 > --enable-threads
112 $ make
113
114
115