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