# HG changeset patch # User tobaru # Date 1509002232 -32400 # Node ID b6f090b584d9002b7de6c7a117269890e7a82d51 # Parent 60c70a8742d27acb99f64cb939f29225b78250f6 fix diff -r 60c70a8742d2 -r b6f090b584d9 mid_thesis.aux --- a/mid_thesis.aux Thu Oct 26 15:43:58 2017 +0900 +++ b/mid_thesis.aux Thu Oct 26 16:17:12 2017 +0900 @@ -15,7 +15,6 @@ \@writefile{toc}{\contentsline {section}{\numberline {5}Raspberry Pi 上での実装}{2}} \@writefile{toc}{\contentsline {section}{\numberline {6}LLVM CrossCompile}{2}} \@writefile{toc}{\contentsline {section}{\numberline {7}仮装マシン}{2}} -\@writefile{toc}{\contentsline {section}{\numberline {8}xv6}{2}} -\@writefile{toc}{\contentsline {section}{\numberline {9}clang のバージョンアップ}{2}} +\@writefile{toc}{\contentsline {section}{\numberline {8}clang のバージョンアップ}{2}} \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces clang による コンパイル}}{2}} \newlabel{fig:cs}{{2}{2}} diff -r 60c70a8742d2 -r b6f090b584d9 mid_thesis.dvi Binary file mid_thesis.dvi has changed diff -r 60c70a8742d2 -r b6f090b584d9 mid_thesis.log --- a/mid_thesis.log Thu Oct 26 15:43:58 2017 +0900 +++ b/mid_thesis.log Thu Oct 26 16:17:12 2017 +0900 @@ -1,4 +1,4 @@ -This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.5.28) 26 OCT 2017 15:25 +This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.5.28) 26 OCT 2017 16:14 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -213,4 +213,4 @@ 929 hyphenation exceptions out of 8191 27i,15n,43p,530b,367s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on mid_thesis.dvi (2 pages, 12056 bytes). +Output written on mid_thesis.dvi (2 pages, 12136 bytes). diff -r 60c70a8742d2 -r b6f090b584d9 mid_thesis.pdf Binary file mid_thesis.pdf has changed diff -r 60c70a8742d2 -r b6f090b584d9 mid_thesis.tex --- a/mid_thesis.tex Thu Oct 26 15:43:58 2017 +0900 +++ b/mid_thesis.tex Thu Oct 26 16:17:12 2017 +0900 @@ -68,18 +68,13 @@ \section{LLVM CrossCompile} Raspberri pi 上ではコンパイルするためのメモリが足りないので、OSX 上で CrossCompile する事でこの問題を解決する方法がある。\\ CrossCompile とは、別の OS で実行可能なコードを生成するコンパイルの手法である。つまり、OSX であらかじめ Raspberry Pi で CbC が動くように CrossCompile を行い、そのコードを Raspberry Pi に移せばよい。\\ -arm-linux-gnueabihf-gcc を使用し、C で書かれたファイルを CrossCompile することで ARM のコードを生成できる事を確認した。CbC を CrossCompile できるコンパイラを書く必要がある。 +arm-linux-gnueabihf-gcc を使用し、C で書かれたファイルを CrossCompile することで ARM のコードを生成できる事を確認した。CbC でも CrossCompile できるコンパイラを書く必要がある。 \section{仮装マシン} -別の手法として、仮装マシン上での実装がある。\\ -linux 上で実装した後に Raspberry pi に linux の kernel を移植する事で CbC を動かす方法がある。llvm を動かす際に、オプションで target を指定する事で、ARM の -linux 用の gcc を CbC に書き直す際に、gcc7 に書き直せば linker がそのまま使えるので、xv6 で動くようになる。 - - - - -\section{xv6} +CrossCompile と別に linux 環境で CbC を動かした後に、Raspberry Pi に載せる手法がある +LLVM を動かす際に、オプションで target を指定する事で、ARM のコードを生成することができる。\\ +linux 用の gcc を CbC に書き直す際に、gcc7 に書き直せば linker がそのまま使えるので、xv6 で動くようになる。\\ xv6とは、マサチューセッツ工科大の大学院生向け講義の教材として使うために、UNIX V6 という OS を ANSI-C に書き換え、x86に移植した OS である。 xv6 は Raspberry Pi に移植する事ができる。ANSI-C で書かれている xv6 を CbC に書き直す事で、Raspberry Pi で CbC を動かせるようになる。