mingw 用の insight(gdb)のソースはgdb-6.6 まで公開されている。
これを gcc4 でビルドするといくつかエラーになる。
警告の無視
gcc4 は警告をエラーとして扱う。
insight のビルドに限れば、警告を無視して欲しい。
そこで configure をしたあと、警告を無視するようにオプションをつける。
$ mkdir build_insight $ cd build_insight $ ../insight-src/configure $ make CFLAGS="-Wno-unused-but-set-variable -Wno-sign-conversion -Wno-sign-compare" 2>&1 | tee make.log
ソースの変更
以下の2つのパッチから、2つのファイルを修正すると、ビルドに成功した。
http://www.cygwin.com/ml/insight/2011-q3/msg00010/insight-mingw.patch
http://permalink.gmane.org/gmane.comp.debugging.insight/2770
- tclWinReg.c
--- a/src/tcl/win/tclWinReg.c +++ b/src/tcl/win/tclWinReg.c @@ -747,7 +747,7 @@ GetValue( Tcl_NewStringObj(Tcl_DStringValue(&buf), Tcl_DStringLength(&buf))); if (regWinProcs->useWide) { - while (*((Tcl_UniChar *)p)++ != 0) {} + while (*((Tcl_UniChar *)p++) != 0) {} } else { while (*p++ != '\0') {} }
- tclWinDde.c
--- a/src/tcl/win/tclWinDde.c +++ b/src/tcl/win/tclWinDde.c @@ -1175,7 +1175,8 @@ Tcl_DdeObjCmd( } case DDE_EVAL: { objc -= (async + 3); - ((Tcl_Obj **) objv) += (async + 3); + //((Tcl_Obj **) objv) += (async + 3); + objv += (async + 3);
Index: tcl/win/tclWinDde.c =================================================================== RCS file: /cvs/src/src/tcl/win/tclWinDde.c,v retrieving revision 1.5 diff -u -r1.5 tclWinDde.c --- tcl/win/tclWinDde.c 21 Jan 2003 19:40:22 -0000 1.5 +++ tcl/win/tclWinDde.c 11 Aug 2011 09:22:06 -0000 @@ -1175,7 +1175,7 @@ } case DDE_EVAL: { objc -= (async + 3); - ((Tcl_Obj **) objv) += (async + 3); + objv += (async + 3);
/* * See if the target interpreter is local. If so, execute