本家mingw32のgccはノーパッチ?だったので、なるべくpatchなしでやってます。
$ mkdir gcc47
$ cd gcc47
$ wget
http://www.dnsbalance.ring.gr.jp/archives/lang/egcs/snapshots/4.7-20130126/gcc-4.7-20130126.tar.bz2$ tar xjf gcc-4.7-20130126.tar.bz2
$ cd gcc-4.7-20130126/gcc
$ patch <
gcc-diagnostic-mingw.patch$ cd ../..
$ mkdir 20130127
$ cd 20130127
$ ../gcc-4.7-20130126/configure --enable-languages=c,c++,ada,fortran,objc,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --disable-win32-registry --enable-version-specific-runtime-libs --build=mingw32 --prefix=/mingw CFLAGS='-g -O2 -fomit-frame-pointer' CXXFLAGS='-g -O2 -fomit-frame-pointer' CFLAGS_FOR_TARGET='-g -O2 -fomit-frame-pointer' CXXFLAGS_FOR_TARGET='-g -O2 -fomit-frame-pointer'
$ make
gnatのビルドでコンパイルエラーになりますが、ほとんどcastすればいいだけです。
ハマリどころは、gcc/ada/tracebak.cのこの行ぐらいです。
#define IS_BAD_PTR(ptr) (IsBadCodePtr((FARPROC)ptr))
adaがええだと思えない人には関係ないことです。
libadaでコケたら、これです。
$ sed -i 's/$(LN_S) $(ADA_RTS_DIR)/$(LN_S)r $(ADA_RTS_DIR)/' mingw32/libada/Makefile
$ make LN_S="ln -s"
どうも、失敗したようなので、続く?
[0回]
PR