GCC バージョン 3.4.5 に同梱されている MinGW 5.1.6 / MSYS 1.0.11 (どちらも Sourceforge.org の自動インストーラ) で実行する GCC 4 シリーズのコンパイラをコンパイルする試みを先週ほど試みました。 . 最終目標は GCC 4.5 をインストールすることですが、4.xx コンパイラをビルドすることができませんでした。
異常な動作を引き起こす一連のビルド命令に絞り込みました。コンパイラは以下を実行します。
build/genmodes.exe > tmp-modes.c
/bin/sh ../../gcc-4.2.4/gcc/../move-if-change tmp-modes.c insn-modes.c
echo timestamp > s-modes
gcc -c -g -fkeep-inline-functions -DIN_GCC -W -Wall -Wwrite-strings
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute
-fno-common -DHAVE_CONFIG_H -I. -I. -I../../gcc-4.2.4/gcc -I../../gcc-4.2.4/gcc/.
-I../../gcc-4.2.4/gcc/../include -I./../intl -I../../gcc-4.2.4/gcc/../libcpp/include
-I../../gcc-4.2.4/gcc/../libdecnumber -I../libdecnumber insn-modes.c -o insn-modes.o
cc1.exe: out of memory allocating 2239725803 bytes
make[3]: *** [insn-modes.o] Error 1
make[3]: Leaving directory `/home/root/gcc-4.2.4-build/gcc'
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory `/home/root/gcc-4.2.4-build'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/root/gcc-4.2.4-build'
make: *** [all] Error 2
主な問題は、genmodes.exe の呼び出しにあるようです。これは、サイズが約 2GB の C ファイル (insn-modes.c) を作成します。これは、私が知る限り、ほとんどが空白で埋められています (ところどころに C コードの行が散らばっていますが)。GCC 3.4.5 はそれをチョークし、それがビルドの終了方法です。私が試したすべてのバージョンで同様の動作が見られますが、4.5 は別の理由で失敗し、コンパイラの中間バージョンを使用することで解決できると期待していました。
だから、3つの質問:
- 他の誰かがこれを経験しましたか?
- 何が原因ですか?
- 回避策が存在する場合はどうなりますか?
64 ビットの Windows 7 マシンでこれを実行しようとしています。
ありがとう。
更新: 2 つの疑わしいファイルの圧縮コピーをこの場所にアップロードしました。 min-insn-modes.c も必要以上に大きいことがわかります。2 つのファイル (合計 3 GB 以上) は 121 KB に圧縮されます。