ghdl
cygwin で ghdl をコンパイルするも結局できなかった。おそらく 32bit 環境ならできる。
vhdl/ortho-lang.c がコンパイルできなかった。
[追記] 最終的にうまくいったryos36.hatenablog.com
以下ダメだった記録。
cygwin で ada をインストール。gnatmake が動くことを確認。
procedure Example is begin null; end Example;
example.adb でセーブして gnatmake
> gnatmake example
example.exe ができた。
毎回言われる gmp と mpfr
configure: error: Building GCC requires GMP 4.1+ and MPFR 2.3.0+.
これらもインストール
gcc-4.3.4 のしたの gcc に ghdl の vhdl というディレクトリをシンボリックリンク。gcc-4.3.4 の下ではなくて ggcc-4.3.4/gcc のしたに ghdl-0.29 ではなくて vhdl 。間違えると、configure 時にこんな感じでエラー
The following requested languages could not be built: vhdl Supported languages are: c,ada,c++,fortran,java,objc,obj-c++,treelang
でもって、configure
../gcc-4.3.4/configure --prefix=/home/FPGA/test-install --enable-languages=vhdl,treelang --disable-bootstrap
-
- disable-bootstrap オプションは GHDL の README につけた方がよい(つけろではない)と書かれていたので意味も分からず追加。treelang は必要ないけど追加。Makefile ができるので make。README には
make CFLAGS="-O"
と書いてあったのでその通りにする。make だけでうまくいくかは不明。あとは make install でいくはずだ。そう願いたい。ただいまコンパイル中。
*** Configuration x86_64-unknown-cygwin not supported
がーん x86_64 サポートしていない。gcc-4.9.3 でやりなおし。(なんか達成しない気がしてきた)
configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
げで、こんどは MPC が必要だって。なめてんのか。4.9.3 では treelang がなくなっている、、、まぁべつにいいや。
../gcc-4.9.3/configure --prefix=/home/FPGA/test-install --enable-languages=vhdl --disable-bootstrap make CFLAGS="-O"
できるとすごくうれしい。コンパイル中。
/home/ryos/FPGA/ghdl/gcc-4.9.3/gcc/vhdl/ortho-lang.c:31: parse error: GTY must be specified before identifier
やはりエラー。できね~~。
GTY でエラーになるらしい。GTY は
GTY - GCC Wikia - Wikia
によると
GCC が使用する GC,GGC のためのタグらしい.いたるところで使われまくっている.
このタグがついてる構造体を含む C ソースを,gengtype というプログラムに渡すと,GC 用のコードが自動生成されるというステキなことをやっているらしい.
で、微妙に構文が変わったみたい。GTY の位置をずらしたらコンパイルが通り始めた。3たびコンパイル中。
無念。またもコンパイルできず。
options.c:1276:2: エラー: #error Multiple different help strings for C: #error Multiple different help strings for C: ^ options.c:1279:2: エラー: #error Multiple different help strings for P: #error Multiple different help strings for P:
v と C と P のオプションが C言語のそれとかぶっている。 v は意味が同じなのでコメントアウト。C と P は上書きしたいのだが lang.opt のフォーマットわからず。やむを得ずコメントアウト。4たびコンパイル中。
アーまたエラー
../gcc/coretypes.h:171:1: エラー: 不明な型名 ‘class’ です class rtl_opt_pass; ^ ../gcc/coretypes.h:173:1: エラー: 不明な型名 ‘namespace’ です namespace gcc {
ん?C++ じゃないか。