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