This may be due to a change in gcc version 4, according to this thread.
So, applying this diff to nsd/conn.c seems to work:
--- nsd/conn.c~ 2003-08-05 15:56:05.000000000 -0400
+++ nsd/conn.c 2005-08-01 12:08:38.000000000 -0400
@@ -840,7 +840,7 @@
}
result = Tcl_GetObjResult(interp);
- connPtr = (Conn *) conn = itPtr->conn;
+ connPtr = conn = (Conn *) itPtr->conn;
/*
* Only the "isconnected" option operates without a conn.