insight on mingw

Last-modified: 2012-08-16 (木) 07:27:11

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