diff -r -C 5 -x configure -x .MkPatch -x CVS -x 'build_*' -x .cvsignore -x '*.swp' -I '.*RCS.*' -I '.*tcl.spec.*' -I '.*strftime.*' -I '.*CVS.*' ./ChangeLog /home/dev1usr/Project/TclHEAD.save/ChangeLog
*** ./ChangeLog	2004-04-30 18:39:42.000000000 +0200
--- /home/dev1usr/Project/TclHEAD.save/ChangeLog	2004-04-30 18:40:23.000000000 +0200
***************
*** 1,22 ****
- 2004-04-30  Andreas Otto <aotto1968@users.sourceforge.net>
- 
-         * adding support for Interix:
-         * build as native Unix application at the Windows (XP) SFU subsystem
-         * SFU = Service For Unix; changed files:
-         *   tests/fileName.test
-         *   tests/http.test
-         *   tests/socket.test
-         *   tests/clock.test
-         *   generic/tclCompile.c
-         *   unix/configure.in
-         *   unix/Makefile.in
-         *   unix/tcl.m4
-         *   unix/tclUnixChan.c
-         *   unix/tclUnixInit.c
-         *   unix/tclUnixTime.c
- 
  2004-04-29  Don Porter  <dgp@users.sourceforge.net>
  
  	* tests/execute.test (execute-8.2):	Avoid crashes when there
  	is limited system stack space (threads-enabled).
  
--- 1,5 ----
diff -r -C 5 -x configure -x .MkPatch -x CVS -x 'build_*' -x .cvsignore -x '*.swp' -I '.*RCS.*' -I '.*tcl.spec.*' -I '.*strftime.*' -I '.*CVS.*' ./generic/tclCompile.c /home/dev1usr/Project/TclHEAD.save/generic/tclCompile.c
*** ./generic/tclCompile.c	2004-04-30 15:06:52.000000000 +0200
--- /home/dev1usr/Project/TclHEAD.save/generic/tclCompile.c	2004-04-02 22:07:05.000000000 +0200
***************
*** 27,47 ****
   * WARNING!! DO NOT USE THIS MACRO TO ALIGN POINTERS: it will produce
   * the wrong result on platforms that allocate addresses that are divisible
   * by 4 or 2. Only use it for offsets or sizes.
   */
  
! /*
!  * Interix defines ALIGN in /usr/include/limits.h with
!  * 
!  *  ALIGNBYTES was originally setup in BSD machine/param.h via
!  *  #define      ALIGNBYTES      3
!  *  #define      ALIGN(p)        (((u_int)(p) + ALIGNBYTES) &~ ALIGNBYTES)
!  *
!  *  change ALIGN in TCLALIGN
!  */
! 
! #define TCLALIGN(x) (((int)(x) + 7) & ~7)
  
  
  /*
   * Table of all AuxData types.
   */
--- 27,37 ----
   * WARNING!! DO NOT USE THIS MACRO TO ALIGN POINTERS: it will produce
   * the wrong result on platforms that allocate addresses that are divisible
   * by 4 or 2. Only use it for offsets or sizes.
   */
  
! #define ALIGN(x) (((int)(x) + 7) & ~7)
  
  
  /*
   * Table of all AuxData types.
   */
***************
*** 1684,1696 ****
      /*
       * Compute the total number of bytes needed for this bytecode.
       */
  
      structureSize = sizeof(ByteCode);
!     structureSize += TCLALIGN(codeBytes);        /* align object array */
!     structureSize += TCLALIGN(objArrayBytes);    /* align exc range arr */
!     structureSize += TCLALIGN(exceptArrayBytes); /* align AuxData array */
      structureSize += auxDataArrayBytes;
      structureSize += cmdLocBytes;
  
      if (envPtr->iPtr->varFramePtr != NULL) {
          namespacePtr = envPtr->iPtr->varFramePtr->nsPtr;
--- 1674,1686 ----
      /*
       * Compute the total number of bytes needed for this bytecode.
       */
  
      structureSize = sizeof(ByteCode);
!     structureSize += ALIGN(codeBytes);        /* align object array */
!     structureSize += ALIGN(objArrayBytes);    /* align exc range arr */
!     structureSize += ALIGN(exceptArrayBytes); /* align AuxData array */
      structureSize += auxDataArrayBytes;
      structureSize += cmdLocBytes;
  
      if (envPtr->iPtr->varFramePtr != NULL) {
          namespacePtr = envPtr->iPtr->varFramePtr->nsPtr;
***************
*** 1721,1746 ****
  
      p += sizeof(ByteCode);
      codePtr->codeStart = p;
      memcpy((VOID *) p, (VOID *) envPtr->codeStart, (size_t) codeBytes);
      
!     p += TCLALIGN(codeBytes);	      /* align object array */
      codePtr->objArrayPtr = (Tcl_Obj **) p;
      for (i = 0;  i < numLitObjects;  i++) {
  	codePtr->objArrayPtr[i] = envPtr->literalArrayPtr[i].objPtr;
      }
  
!     p += TCLALIGN(objArrayBytes);    /* align exception range array */
      if (exceptArrayBytes > 0) {
  	codePtr->exceptArrayPtr = (ExceptionRange *) p;
  	memcpy((VOID *) p, (VOID *) envPtr->exceptArrayPtr,
  	        (size_t) exceptArrayBytes);
      } else {
  	codePtr->exceptArrayPtr = NULL;
      }
      
!     p += TCLALIGN(exceptArrayBytes); /* align AuxData array */
      if (auxDataArrayBytes > 0) {
  	codePtr->auxDataArrayPtr = (AuxData *) p;
  	memcpy((VOID *) p, (VOID *) envPtr->auxDataArrayPtr,
  	        (size_t) auxDataArrayBytes);
      } else {
--- 1711,1736 ----
  
      p += sizeof(ByteCode);
      codePtr->codeStart = p;
      memcpy((VOID *) p, (VOID *) envPtr->codeStart, (size_t) codeBytes);
      
!     p += ALIGN(codeBytes);	      /* align object array */
      codePtr->objArrayPtr = (Tcl_Obj **) p;
      for (i = 0;  i < numLitObjects;  i++) {
  	codePtr->objArrayPtr[i] = envPtr->literalArrayPtr[i].objPtr;
      }
  
!     p += ALIGN(objArrayBytes);    /* align exception range array */
      if (exceptArrayBytes > 0) {
  	codePtr->exceptArrayPtr = (ExceptionRange *) p;
  	memcpy((VOID *) p, (VOID *) envPtr->exceptArrayPtr,
  	        (size_t) exceptArrayBytes);
      } else {
  	codePtr->exceptArrayPtr = NULL;
      }
      
!     p += ALIGN(exceptArrayBytes); /* align AuxData array */
      if (auxDataArrayBytes > 0) {
  	codePtr->auxDataArrayPtr = (AuxData *) p;
  	memcpy((VOID *) p, (VOID *) envPtr->auxDataArrayPtr,
  	        (size_t) auxDataArrayBytes);
      } else {
diff -r -C 5 -x configure -x .MkPatch -x CVS -x 'build_*' -x .cvsignore -x '*.swp' -I '.*RCS.*' -I '.*tcl.spec.*' -I '.*strftime.*' -I '.*CVS.*' ./tests/clock.test /home/dev1usr/Project/TclHEAD.save/tests/clock.test
*** ./tests/clock.test	2004-04-30 18:12:31.000000000 +0200
--- /home/dev1usr/Project/TclHEAD.save/tests/clock.test	2004-04-15 23:06:39.000000000 +0200
***************
*** 17,31 ****
  if {[lsearch [namespace children] ::tcltest] == -1} {
      package require tcltest
      namespace import -force ::tcltest::*
  }
  
- # Interix does not handle the %V format right in strftime
- if {$tcl_platform(os) ne "Interix"} {
-     configure -constraints notInterix
- }
- 
  test clock-1.1 {clock tests} {
      list [catch {clock} msg] $msg
  } {1 {wrong # args: should be "clock option ?arg ...?"}}
  test clock-1.2 {clock tests} {
      list [catch {clock foo} msg] $msg
--- 17,26 ----
***************
*** 528,538 ****
      clock format 1009152000 -format {%a %A %u %V %w} -gmt true; # 2001-12-24
  } {Mon Monday 1 52 1}
  test clock-10.7 {ISO week-based calendar} {
      clock format 1009670400 -format {%a %A %u %V %w} -gmt true; # 2001-12-30
  } {Sun Sunday 7 52 0}
! test clock-10.8 {ISO week-based calendar} {notInterix} {
      clock format 1009756800 -format {%a %A %u %V %w} -gmt true; # 2001-12-31
  } {Mon Monday 1 01 1}
  test clock-10.9 {ISO week-based calendar} {
      clock format 1009843200 -format {%a %A %u %V %w} -gmt true; # 2002-1-1
  } {Tue Tuesday 2 01 2}
--- 523,533 ----
      clock format 1009152000 -format {%a %A %u %V %w} -gmt true; # 2001-12-24
  } {Mon Monday 1 52 1}
  test clock-10.7 {ISO week-based calendar} {
      clock format 1009670400 -format {%a %A %u %V %w} -gmt true; # 2001-12-30
  } {Sun Sunday 7 52 0}
! test clock-10.8 {ISO week-based calendar} {
      clock format 1009756800 -format {%a %A %u %V %w} -gmt true; # 2001-12-31
  } {Mon Monday 1 01 1}
  test clock-10.9 {ISO week-based calendar} {
      clock format 1009843200 -format {%a %A %u %V %w} -gmt true; # 2002-1-1
  } {Tue Tuesday 2 01 2}
***************
*** 546,559 ****
      clock format 1040601600 -format {%a %A %u %V %w} -gmt true; # 2002-12-23
  } {Mon Monday 1 52 1}
  test clock-10.13 {ISO week-based calendar} {
      clock format 1041120000 -format {%a %A %u %V %w} -gmt true; # 2002-12-29
  } {Sun Sunday 7 52 0}
! test clock-10.14 {ISO week-based calendar} {notInterix} {
      clock format 1041206400 -format {%a %A %u %V %w} -gmt true; # 2002-12-30
  } {Mon Monday 1 01 1}
! test clock-10.15 {ISO week-based calendar} {notInterix} {
      clock format 1041292800 -format {%a %A %u %V %w} -gmt true; # 2002-12-31
  } {Tue Tuesday 2 01 2}
  test clock-10.16 {ISO week-based calendar} {
      clock format 1041379200 -format {%a %A %u %V %w} -gmt true; # 2003-1-1
  } {Wed Wednesday 3 01 3}
--- 541,554 ----
      clock format 1040601600 -format {%a %A %u %V %w} -gmt true; # 2002-12-23
  } {Mon Monday 1 52 1}
  test clock-10.13 {ISO week-based calendar} {
      clock format 1041120000 -format {%a %A %u %V %w} -gmt true; # 2002-12-29
  } {Sun Sunday 7 52 0}
! test clock-10.14 {ISO week-based calendar} {
      clock format 1041206400 -format {%a %A %u %V %w} -gmt true; # 2002-12-30
  } {Mon Monday 1 01 1}
! test clock-10.15 {ISO week-based calendar} {
      clock format 1041292800 -format {%a %A %u %V %w} -gmt true; # 2002-12-31
  } {Tue Tuesday 2 01 2}
  test clock-10.16 {ISO week-based calendar} {
      clock format 1041379200 -format {%a %A %u %V %w} -gmt true; # 2003-1-1
  } {Wed Wednesday 3 01 3}
***************
*** 567,580 ****
      clock format 1072051200 -format {%a %A %u %V %w} -gmt true; # 2003-12-22
  } {Mon Monday 1 52 1}
  test clock-10.20 {ISO week-based calendar} {
      clock format 1072569600 -format {%a %A %u %V %w} -gmt true; # 2003-12-28
  } {Sun Sunday 7 52 0}
! test clock-10.21 {ISO week-based calendar} {notInterix} {
      clock format 1072656000 -format {%a %A %u %V %w} -gmt true; # 2003-12-29
  } {Mon Monday 1 01 1}
! test clock-10.22 {ISO week-based calendar} {notInterix} {
      clock format 1072828800 -format {%a %A %u %V %w} -gmt true; # 2003-12-31
  } {Wed Wednesday 3 01 3}
  test clock-10.23 {ISO week-based calendar} {
      clock format 1072915200 -format {%a %A %u %V %w} -gmt true; # 2004-1-1
  } {Thu Thursday 4 01 4}
--- 562,575 ----
      clock format 1072051200 -format {%a %A %u %V %w} -gmt true; # 2003-12-22
  } {Mon Monday 1 52 1}
  test clock-10.20 {ISO week-based calendar} {
      clock format 1072569600 -format {%a %A %u %V %w} -gmt true; # 2003-12-28
  } {Sun Sunday 7 52 0}
! test clock-10.21 {ISO week-based calendar} {
      clock format 1072656000 -format {%a %A %u %V %w} -gmt true; # 2003-12-29
  } {Mon Monday 1 01 1}
! test clock-10.22 {ISO week-based calendar} {
      clock format 1072828800 -format {%a %A %u %V %w} -gmt true; # 2003-12-31
  } {Wed Wednesday 3 01 3}
  test clock-10.23 {ISO week-based calendar} {
      clock format 1072915200 -format {%a %A %u %V %w} -gmt true; # 2004-1-1
  } {Thu Thursday 4 01 4}
***************
*** 615,625 ****
      clock format 1135555200 -format {%a %A %u %V %w} -gmt true; # 2005-12-26
  } {Mon Monday 1 52 1}
  test clock-10.36 {ISO week-based calendar} {
      clock format 1135987200 -format {%a %A %u %V %w} -gmt true; # 2005-12-31
  } {Sat Saturday 6 52 6}
! test clock-10.37 {ISO week-based calendar} {notInterix} {
      clock format 1136073600 -format {%a %A %u %V %w} -gmt true; # 2006-1-1
  } {Sun Sunday 7 52 0}
  test clock-10.38 {ISO week-based calendar} {
      clock format 1136160000 -format {%a %A %u %V %w} -gmt true; # 2006-1-2
  } {Mon Monday 1 01 1}
--- 610,620 ----
      clock format 1135555200 -format {%a %A %u %V %w} -gmt true; # 2005-12-26
  } {Mon Monday 1 52 1}
  test clock-10.36 {ISO week-based calendar} {
      clock format 1135987200 -format {%a %A %u %V %w} -gmt true; # 2005-12-31
  } {Sat Saturday 6 52 6}
! test clock-10.37 {ISO week-based calendar} {
      clock format 1136073600 -format {%a %A %u %V %w} -gmt true; # 2006-1-1
  } {Sun Sunday 7 52 0}
  test clock-10.38 {ISO week-based calendar} {
      clock format 1136160000 -format {%a %A %u %V %w} -gmt true; # 2006-1-2
  } {Mon Monday 1 01 1}
diff -r -C 5 -x configure -x .MkPatch -x CVS -x 'build_*' -x .cvsignore -x '*.swp' -I '.*RCS.*' -I '.*tcl.spec.*' -I '.*strftime.*' -I '.*CVS.*' ./tests/fileName.test /home/dev1usr/Project/TclHEAD.save/tests/fileName.test
*** ./tests/fileName.test	2004-04-30 14:41:08.000000000 +0200
--- /home/dev1usr/Project/TclHEAD.save/tests/fileName.test	2004-03-30 17:35:47.000000000 +0200
***************
*** 18,32 ****
  }
  
  tcltest::testConstraint testsetplatform [string equal testsetplatform [info commands testsetplatform]]
  tcltest::testConstraint testtranslatefilename [string equal testtranslatefilename [info commands testtranslatefilename]]
  
- # Interix is unix but has the NTFS filesytem.
- if {$tcl_platform(os) ne "Interix"} {
-     configure -constraints notInterix
- }
- 
  global env
  if {[tcltest::testConstraint testsetplatform]} {
      set platform [testgetplatform]
  }
  
--- 18,27 ----
***************
*** 1381,1391 ****
  } {1}
  test filename-15.5 {unix specific globbing} {unixOnly nonPortable} {
      glob ~ouster/.csh*
  } "/home/ouster/.cshrc"
  catch {close [open globTest/odd\\\[\]*?\{\}name w]} 
! test filename-15.6 {unix specific globbing} {unixOnly notInterix} {
      global env
      set temp $env(HOME)
      set env(HOME) $env(HOME)/globTest/odd\\\[\]*?\{\}name
      set result [list [catch {glob ~} msg] $msg]
      set env(HOME) $temp
--- 1376,1386 ----
  } {1}
  test filename-15.5 {unix specific globbing} {unixOnly nonPortable} {
      glob ~ouster/.csh*
  } "/home/ouster/.cshrc"
  catch {close [open globTest/odd\\\[\]*?\{\}name w]} 
! test filename-15.6 {unix specific globbing} {unixOnly} {
      global env
      set temp $env(HOME)
      set env(HOME) $env(HOME)/globTest/odd\\\[\]*?\{\}name
      set result [list [catch {glob ~} msg] $msg]
      set env(HOME) $temp
diff -r -C 5 -x configure -x .MkPatch -x CVS -x 'build_*' -x .cvsignore -x '*.swp' -I '.*RCS.*' -I '.*tcl.spec.*' -I '.*strftime.*' -I '.*CVS.*' ./tests/http.test /home/dev1usr/Project/TclHEAD.save/tests/http.test
*** ./tests/http.test	2004-04-30 14:41:08.000000000 +0200
--- /home/dev1usr/Project/TclHEAD.save/tests/http.test	2003-11-14 21:44:46.000000000 +0100
***************
*** 17,31 ****
  if {[lsearch [namespace children] ::tcltest] == -1} {
      package require tcltest 2
      namespace import -force ::tcltest::*
  }
  
- # Interix is unix with some windows-limitations
- if {$tcl_platform(os) ne "Interix"} {
-     configure -constraints notInterix
- }
- 
  if {[catch {package require http 2} version]} {
      if {[info exists http2]} {
  	catch {puts "Cannot load http 2.* package"}
  	return
      } else {
--- 17,26 ----
***************
*** 438,450 ****
  } {timeout}
  
  #	Longer timeout to good host, bad port, gets an error
  #	after the connection "completes" but the socket is bad
  
! # Interix (WinSocket) does not create an error-msg on async sockets
! 
! test http-4.14 {http::Event} {notInterix} {
      set code [catch {
  	set token [http::geturl $badurl/?timeout=10 -timeout 10000 -command {#}]
  	if {[string length $token] == 0} {
  	    error "bogus return from http::geturl"
  	}
--- 433,443 ----
  } {timeout}
  
  #	Longer timeout to good host, bad port, gets an error
  #	after the connection "completes" but the socket is bad
  
! test http-4.14 {http::Event} {
      set code [catch {
  	set token [http::geturl $badurl/?timeout=10 -timeout 10000 -command {#}]
  	if {[string length $token] == 0} {
  	    error "bogus return from http::geturl"
  	}
diff -r -C 5 -x configure -x .MkPatch -x CVS -x 'build_*' -x .cvsignore -x '*.swp' -I '.*RCS.*' -I '.*tcl.spec.*' -I '.*strftime.*' -I '.*CVS.*' ./tests/socket.test /home/dev1usr/Project/TclHEAD.save/tests/socket.test
*** ./tests/socket.test	2004-04-30 18:17:12.000000000 +0200
--- /home/dev1usr/Project/TclHEAD.save/tests/socket.test	2004-03-17 19:14:18.000000000 +0100
***************
*** 63,77 ****
  # using the remote server are not performed.
  
  package require tcltest 2
  namespace import -force ::tcltest::*
  
- # Interix is unix with some windows-limitations
- if {$tcl_platform(os) ne "Interix"} {
-     configure -constraints notInterix
- }
- 
  # Some tests require the testthread and exec commands
  testConstraint testthread [llength [info commands testthread]]
  testConstraint exec [llength [info commands exec]]
  
  # If remoteServerIP or remoteServerPort are not set, check in the
--- 63,72 ----
***************
*** 519,530 ****
      set x
  } -cleanup {
      removeFile script
  } -result {done 50}
  set path(script) [makeFile {} script]
! #Interix (WinSocket) allows two server-connections on the same port
! test socket-2.9 {socket conflict} {socket stdio notInterix} {
      set s [socket -server accept 0]
      file delete $path(script)
      set f [open $path(script) w]
      puts -nonewline $f "socket -server accept [lindex [fconfigure $s -sockname] 2]"
      close $f
--- 514,524 ----
      set x
  } -cleanup {
      removeFile script
  } -result {done 50}
  set path(script) [makeFile {} script]
! test socket-2.9 {socket conflict} {socket stdio} {
      set s [socket -server accept 0]
      file delete $path(script)
      set f [open $path(script) w]
      puts -nonewline $f "socket -server accept [lindex [fconfigure $s -sockname] 2]"
      close $f
***************
*** 587,598 ****
      close $sock
      set result
  } {a:one b: c:two}
  
  
! #Interix (WinSocket) allows two server-connections on the same port
! test socket-3.1 {socket conflict} {socket stdio notInterix} {
      file delete $path(script)
      set f [open $path(script) w]
      puts $f {
  	set f [socket -server accept 0]
  	puts ready
--- 581,591 ----
      close $sock
      set result
  } {a:one b: c:two}
  
  
! test socket-3.1 {socket conflict} {socket stdio} {
      file delete $path(script)
      set f [open $path(script) w]
      puts $f {
  	set f [socket -server accept 0]
  	puts ready
***************
*** 741,753 ****
  	close $msg
      }
      set x
  } ok
  
- #Interix (WinSocket) allows connections to low-ports
  test socket-5.1 {byte order problems, socket numbers, htons} \
! 	{socket unixOnly notRoot notInterix} {
      set x {couldn't open socket: not owner}
      if {![catch {socket -server dodo 0x1} msg]} {
          set x {htons problem, should be disallowed, are you running as SU?}
  	close $msg
      }
--- 734,745 ----
  	close $msg
      }
      set x
  } ok
  
  test socket-5.1 {byte order problems, socket numbers, htons} \
! 	{socket unixOnly notRoot} {
      set x {couldn't open socket: not owner}
      if {![catch {socket -server dodo 0x1} msg]} {
          set x {htons problem, should be disallowed, are you running as SU?}
  	close $msg
      }
***************
*** 759,771 ****
  	set x {port resolution problem, should be disallowed}
  	close $msg
      }
      set x
  } {couldn't open socket: port number too high}
- #Interix (WinSocket) allows connections to low-ports
  test socket-5.3 {byte order problems, socket numbers, htons} \
! 	{socket unixOnly notRoot notInterix} {
      set x {couldn't open socket: not owner}
      if {![catch {socket -server dodo 21} msg]} {
  	set x {htons problem, should be disallowed, are you running as SU?}
  	close $msg
      }
--- 751,762 ----
  	set x {port resolution problem, should be disallowed}
  	close $msg
      }
      set x
  } {couldn't open socket: port number too high}
  test socket-5.3 {byte order problems, socket numbers, htons} \
! 	{socket unixOnly notRoot} {
      set x {couldn't open socket: not owner}
      if {![catch {socket -server dodo 21} msg]} {
  	set x {htons problem, should be disallowed, are you running as SU?}
  	close $msg
      }
***************
*** 1156,1167 ****
      }
      close $f
      sendCommand {close $socket10_7_test_server}
      set cnt
  } 50
! #Interix (WinSocket) allows two server-connections on the same port
! test socket-11.6 {socket conflict} {socket doTestsWithRemoteServer notInterix} {
      set s1 [socket -server accept 2836]
      if {[catch {set s2 [socket -server accept 2836]} msg]} {
  	set result [list 1 $msg]
      } else {
  	set result [list 0 [lindex [fconfigure $s2 -sockname] 2]]
--- 1147,1157 ----
      }
      close $f
      sendCommand {close $socket10_7_test_server}
      set cnt
  } 50
! test socket-11.6 {socket conflict} {socket doTestsWithRemoteServer} {
      set s1 [socket -server accept 2836]
      if {[catch {set s2 [socket -server accept 2836]} msg]} {
  	set result [list 1 $msg]
      } else {
  	set result [list 0 [lindex [fconfigure $s2 -sockname] 2]]
Nur in ./unix: autom4te.cache.
diff -r -C 5 -x configure -x .MkPatch -x CVS -x 'build_*' -x .cvsignore -x '*.swp' -I '.*RCS.*' -I '.*tcl.spec.*' -I '.*strftime.*' -I '.*CVS.*' ./unix/configure.in /home/dev1usr/Project/TclHEAD.save/unix/configure.in
*** ./unix/configure.in	2004-04-30 14:41:08.000000000 +0200
--- /home/dev1usr/Project/TclHEAD.save/unix/configure.in	2004-03-26 20:47:29.000000000 +0100
***************
*** 134,164 ****
  #	This appears to be true only on the RS/6000 under AIX.  Some
  #	systems like OSF/1 have a sys/select.h that's of no use, and
  #	other systems like SCO UNIX have a sys/select.h that's
  #	pernicious.  If "fd_set" isn't defined anywhere then set a
  #	special flag.
- #       Interix defines fd_set in sys/times.h included by sys/select.h
  #--------------------------------------------------------------------
  
  AC_MSG_CHECKING([for fd_set in sys/types])
  AC_CACHE_VAL(tcl_cv_type_fd_set,
      AC_TRY_COMPILE([#include <sys/types.h>],[fd_set readMask, writeMask;],
  	tcl_cv_type_fd_set=yes, tcl_cv_type_fd_set=no))
  AC_MSG_RESULT($tcl_cv_type_fd_set)
  tk_ok=$tcl_cv_type_fd_set
  if test $tcl_cv_type_fd_set = no; then
-     AC_MSG_CHECKING([for fd_set in sys/select])
-     AC_CACHE_VAL(tcl_cv_type_fd_set_in_select,
- 	AC_TRY_COMPILE([#include <sys/select.h>],[fd_set readMask, writeMask;],
- 	    tcl_cv_type_fd_set_in_select=yes, tcl_cv_type_fd_set_in_select=no))
-     AC_MSG_RESULT($tcl_cv_type_fd_set_in_select)
-     if test $tcl_cv_type_fd_set_in_select = yes; then
- 	AC_DEFINE(HAVE_SYS_SELECT_H)
- 	tk_ok=yes
-     fi
- fi
- if test $tcl_cv_type_fd_set = no && test $tcl_cv_type_fd_set_in_select = no ; then
      AC_MSG_CHECKING([for fd_mask in sys/select])
      AC_CACHE_VAL(tcl_cv_grep_fd_mask,
  	AC_HEADER_EGREP(fd_mask, sys/select.h,
  	     tcl_cv_grep_fd_mask=present, tcl_cv_grep_fd_mask=missing))
      AC_MSG_RESULT($tcl_cv_grep_fd_mask)
--- 134,152 ----
***************
*** 299,309 ****
      #include <stddef.h>
      #endif
      ], ac_cv_type_socklen_t=yes, ac_cv_type_socklen_t=no)])
  AC_MSG_RESULT($ac_cv_type_socklen_t)
  if test $ac_cv_type_socklen_t = no; then
!     SC_SOCKLEN_TYPE
  fi
  
  #--------------------------------------------------------------------
  #	If a system doesn't have an opendir function (man, that's old!)
  #	then we have to supply a different version of dirent.h which
--- 287,297 ----
      #include <stddef.h>
      #endif
      ], ac_cv_type_socklen_t=yes, ac_cv_type_socklen_t=no)])
  AC_MSG_RESULT($ac_cv_type_socklen_t)
  if test $ac_cv_type_socklen_t = no; then
!     AC_DEFINE(socklen_t, unsigned)
  fi
  
  #--------------------------------------------------------------------
  #	If a system doesn't have an opendir function (man, that's old!)
  #	then we have to supply a different version of dirent.h which
diff -r -C 5 -x configure -x .MkPatch -x CVS -x 'build_*' -x .cvsignore -x '*.swp' -I '.*RCS.*' -I '.*tcl.spec.*' -I '.*strftime.*' -I '.*CVS.*' ./unix/Makefile.in /home/dev1usr/Project/TclHEAD.save/unix/Makefile.in
*** ./unix/Makefile.in	2004-04-30 14:41:08.000000000 +0200
--- /home/dev1usr/Project/TclHEAD.save/unix/Makefile.in	2004-04-24 07:59:19.000000000 +0200
***************
*** 734,749 ****
  	$(SHELL) config.status
  
  clean:
  	rm -f *.a *.o libtcl* core errs *~ \#* TAGS *.E a.out \
  		errors tclsh tcltest lib.exp
! 	-cd dltest ; $(MAKE) clean
  
  distclean: clean
  	rm -rf Makefile config.status config.cache config.log tclConfig.sh \
  		$(PACKAGE).* prototype
! 	-cd dltest ; $(MAKE) distclean
  
  depend:
  	makedepend -- $(DEPEND_SWITCHES) -- $(SRCS)
  
  # Test binaries.  The rules for tclTestInit.o and xtTestInit.o are
--- 734,749 ----
  	$(SHELL) config.status
  
  clean:
  	rm -f *.a *.o libtcl* core errs *~ \#* TAGS *.E a.out \
  		errors tclsh tcltest lib.exp
! 	cd dltest ; $(MAKE) clean
  
  distclean: clean
  	rm -rf Makefile config.status config.cache config.log tclConfig.sh \
  		$(PACKAGE).* prototype
! 	cd dltest ; $(MAKE) distclean
  
  depend:
  	makedepend -- $(DEPEND_SWITCHES) -- $(SRCS)
  
  # Test binaries.  The rules for tclTestInit.o and xtTestInit.o are
Nur in ./unix: tags.
diff -r -C 5 -x configure -x .MkPatch -x CVS -x 'build_*' -x .cvsignore -x '*.swp' -I '.*RCS.*' -I '.*tcl.spec.*' -I '.*strftime.*' -I '.*CVS.*' ./unix/tcl.m4 /home/dev1usr/Project/TclHEAD.save/unix/tcl.m4
*** ./unix/tcl.m4	2004-04-30 14:41:08.000000000 +0200
--- /home/dev1usr/Project/TclHEAD.save/unix/tcl.m4	2004-03-18 20:01:43.000000000 +0100
***************
*** 507,518 ****
  #		DBGX		Debug library extension
  #
  #------------------------------------------------------------------------
  
  AC_DEFUN(SC_ENABLE_SYMBOLS, [
!     AC_MSG_CHECKING([for build with [symbols]])
!     AC_ARG_ENABLE([[symbols]], [  --enable-symbols        build with debugging symbols [--disable-symbols]],    [tcl_ok=$enableval], [tcl_ok=no])
  # FIXME: Currently, LDFLAGS_DEFAULT is not used, it should work like CFLAGS_DEFAULT.
      if test "$tcl_ok" = "no"; then
  	CFLAGS_DEFAULT='$(CFLAGS_OPTIMIZE)'
  	LDFLAGS_DEFAULT='$(LDFLAGS_OPTIMIZE)'
  	DBGX=""
--- 507,518 ----
  #		DBGX		Debug library extension
  #
  #------------------------------------------------------------------------
  
  AC_DEFUN(SC_ENABLE_SYMBOLS, [
!     AC_MSG_CHECKING([for build with symbols])
!     AC_ARG_ENABLE(symbols, [  --enable-symbols        build with debugging symbols [--disable-symbols]],    [tcl_ok=$enableval], [tcl_ok=no])
  # FIXME: Currently, LDFLAGS_DEFAULT is not used, it should work like CFLAGS_DEFAULT.
      if test "$tcl_ok" = "no"; then
  	CFLAGS_DEFAULT='$(CFLAGS_OPTIMIZE)'
  	LDFLAGS_DEFAULT='$(LDFLAGS_OPTIMIZE)'
  	DBGX=""
***************
*** 539,549 ****
  	AC_DEFINE(TCL_COMPILE_STATS)
      fi
  
      if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then
  	if test "$tcl_ok" = "all"; then
! 	    AC_MSG_RESULT([enabled [symbols] mem compile debugging])
  	else
  	    AC_MSG_RESULT([enabled $tcl_ok debugging])
  	fi
      fi
  ])
--- 539,549 ----
  	AC_DEFINE(TCL_COMPILE_STATS)
      fi
  
      if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then
  	if test "$tcl_ok" = "all"; then
! 	    AC_MSG_RESULT([enabled symbols mem compile debugging])
  	else
  	    AC_MSG_RESULT([enabled $tcl_ok debugging])
  	fi
      fi
  ])
***************
*** 1607,1630 ****
  	    LDFLAGS=""
  	    fi
  	    CC_SEARCH_FLAGS=""
  	    LD_SEARCH_FLAGS=""
  	    ;;
- 	Interix*)
- 	    AC_CHECK_HEADER(dlfcn.h,, [AC_MSG_ERROR([cannot find dlfcn.h, bailing out])])
- 	    CFLAGS="${CFLAGS} -D_ALL_SOURCE -D_INTERIX"
- 	    CPPFLAGS="${CPPFLAGS} -D_ALL_SOURCE"
- 	    SHLIB_CFLAGS=""
- 	    SHLIB_LD="gcc -shared"
- 	    SHLIB_LD_LIBS='${LIBS}'
- 	    SHLIB_SUFFIX=".so"
- 	    DL_OBJS="tclLoadDl.o"
- 	    DL_LIBS="-ldl"
- 	    LDFLAGS=""
- 	    CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR} -Wl,--export-dynamic'
- 	    LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
- 	    ;;
      esac
  
      if test "$do64bit" = "yes" -a "$do64bit_ok" = "no" ; then
      AC_MSG_WARN("64bit support being disabled -- don\'t know magic for this platform")
      fi
--- 1607,1616 ----
***************
*** 1755,1766 ****
  		    ;;
  		SCO_SV-3.2*)
  		    ;;
  		ULTRIX-4.*)
  		    ;;
- 		Interix*)
- 		    ;;
  		*)
  		    SHLIB_CFLAGS="-fPIC"
  		    ;;
  	    esac
  	fi
--- 1741,1750 ----
***************
*** 2150,2200 ****
      if test "$XLIBSW" = nope ; then
  	AC_MSG_RESULT(couldn't find any!  Using -lX11.)
  	XLIBSW=-lX11
      fi
  ])
- 
- #--------------------------------------------------------------------
- # SC_SOCKLEN_TYPE
- #
- #	Interix uses "int" as type for socklen_t 
- #
- # Arguments:
- #	none
- #	
- # Results:
- #
- #	Defines the following var:
- #		socklen_t
- #
- #--------------------------------------------------------------------
- 
- AC_DEFUN(SC_SOCKLEN_TYPE, [
-     if test -f /usr/lib/NextStep/software_version; then
- 	system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
-     else
- 	system=`uname -s`-`uname -r`
- 	if test "$?" -ne 0 ; then
- 	    system=unknown
- 	else
- 	    # Special check for weird MP-RAS system (uname returns weird
- 	    # results, and the version is kept in special file).
- 	
- 	    if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
- 		system=MP-RAS-`awk '{print $3}' /etc/.relid'`
- 	    fi
- 	    if test "`uname -s`" = "AIX" ; then
- 		system=AIX-`uname -v`.`uname -r`
- 	    fi
- 	fi
-     fi
-     case $system in
-         Interix*)   AC_DEFINE(socklen_t, int)  ;;
-         *)          AC_DEFINE(socklen_t, unsigned)  ;;
-     esac
- ])
- 
  #--------------------------------------------------------------------
  # SC_BLOCKING_STYLE
  #
  #	The statements below check for systems where POSIX-style
  #	non-blocking I/O (O_NONBLOCK) doesn't work or is unimplemented. 
--- 2134,2143 ----
diff -r -C 5 -x configure -x .MkPatch -x CVS -x 'build_*' -x .cvsignore -x '*.swp' -I '.*RCS.*' -I '.*tcl.spec.*' -I '.*strftime.*' -I '.*CVS.*' ./unix/tclUnixChan.c /home/dev1usr/Project/TclHEAD.save/unix/tclUnixChan.c
*** ./unix/tclUnixChan.c	2004-04-30 14:41:08.000000000 +0200
--- /home/dev1usr/Project/TclHEAD.save/unix/tclUnixChan.c	2004-04-07 00:25:56.000000000 +0200
***************
*** 53,63 ****
  #   endif /* HAVE_SYS_MODEM_H */
  #   define IOSTATE			struct termios
  #   define GETIOSTATE(fd, statePtr)	tcgetattr((fd), (statePtr))
  #   define SETIOSTATE(fd, statePtr)	tcsetattr((fd), TCSADRAIN, (statePtr))
  #   define GETCONTROL(fd, intPtr)	ioctl((fd), TIOCMGET, (intPtr))
! #   define SETCONTROL(fd, intPtr)	ioctl((fd), (int)TIOCMSET, (intPtr))
      /*
       * TIP #35 introduced a different on exit flush/close behavior that
       * doesn't work correctly with standard channels on all systems.
       * The problem is tcflush throws away waiting channel data.	 This may
       * be necessary for true serial channels that may block, but isn't
--- 53,63 ----
  #   endif /* HAVE_SYS_MODEM_H */
  #   define IOSTATE			struct termios
  #   define GETIOSTATE(fd, statePtr)	tcgetattr((fd), (statePtr))
  #   define SETIOSTATE(fd, statePtr)	tcsetattr((fd), TCSADRAIN, (statePtr))
  #   define GETCONTROL(fd, intPtr)	ioctl((fd), TIOCMGET, (intPtr))
! #   define SETCONTROL(fd, intPtr)	ioctl((fd), TIOCMSET, (intPtr))
      /*
       * TIP #35 introduced a different on exit flush/close behavior that
       * doesn't work correctly with standard channels on all systems.
       * The problem is tcflush throws away waiting channel data.	 This may
       * be necessary for true serial channels that may block, but isn't
***************
*** 1124,1136 ****
      if (len==0 || (len>1 && strncmp(optionName, "-xchar", len)==0)) {
  	IOSTATE iostate;
  	valid = 1;
  
  	GETIOSTATE(fsPtr->fd, &iostate);
! 	sprintf(buf, "%c", (int) iostate.c_cc[VSTART]);
  	Tcl_DStringAppendElement(dsPtr, buf);
! 	sprintf(buf, "%c", (int) iostate.c_cc[VSTOP]);
  	Tcl_DStringAppendElement(dsPtr, buf);
      }
      if (len == 0) {
  	Tcl_DStringEndSublist(dsPtr);
      }
--- 1124,1136 ----
      if (len==0 || (len>1 && strncmp(optionName, "-xchar", len)==0)) {
  	IOSTATE iostate;
  	valid = 1;
  
  	GETIOSTATE(fsPtr->fd, &iostate);
! 	sprintf(buf, "%c", iostate.c_cc[VSTART]);
  	Tcl_DStringAppendElement(dsPtr, buf);
! 	sprintf(buf, "%c", iostate.c_cc[VSTOP]);
  	Tcl_DStringAppendElement(dsPtr, buf);
      }
      if (len == 0) {
  	Tcl_DStringEndSublist(dsPtr);
      }
diff -r -C 5 -x configure -x .MkPatch -x CVS -x 'build_*' -x .cvsignore -x '*.swp' -I '.*RCS.*' -I '.*tcl.spec.*' -I '.*strftime.*' -I '.*CVS.*' ./unix/tclUnixInit.c /home/dev1usr/Project/TclHEAD.save/unix/tclUnixInit.c
*** ./unix/tclUnixInit.c	2004-04-30 14:41:08.000000000 +0200
--- /home/dev1usr/Project/TclHEAD.save/unix/tclUnixInit.c	2004-04-08 00:04:30.000000000 +0200
***************
*** 528,543 ****
  		/* if langinfo reports "ibm*" we should use "cp*" */
  		p = Tcl_DStringValue(&ds);
  		*p++ = 'c'; *p++ = 'p';
  		for(q = p+1; *p ; *p++ = *q++);
  	    } else if ((*encoding == '\0')
! 		    || !strcmp(encoding, "ansi_x3.4-1968")
! #		    ifdef _INTERIX
! 		    || !strcmp(encoding, "ascii")
! #		    endif
! 		    ) {
! 		/* Use iso8859-1 for empty or 'ansi_x3.4-1968' or 'Interix:ascii' encoding */
  		encoding = "iso8859-1";
  	    }
  #ifdef HAVE_LANGINFO_DEBUG
  	    fprintf(stderr, " ?%s?", encoding);
  #endif
--- 528,539 ----
  		/* if langinfo reports "ibm*" we should use "cp*" */
  		p = Tcl_DStringValue(&ds);
  		*p++ = 'c'; *p++ = 'p';
  		for(q = p+1; *p ; *p++ = *q++);
  	    } else if ((*encoding == '\0')
! 		    || !strcmp(encoding, "ansi_x3.4-1968")) {
! 		/* Use iso8859-1 for empty or 'ansi_x3.4-1968' encoding */
  		encoding = "iso8859-1";
  	    }
  #ifdef HAVE_LANGINFO_DEBUG
  	    fprintf(stderr, " ?%s?", encoding);
  #endif
diff -r -C 5 -x configure -x .MkPatch -x CVS -x 'build_*' -x .cvsignore -x '*.swp' -I '.*RCS.*' -I '.*tcl.spec.*' -I '.*strftime.*' -I '.*CVS.*' ./unix/tclUnixTime.c /home/dev1usr/Project/TclHEAD.save/unix/tclUnixTime.c
*** ./unix/tclUnixTime.c	2004-04-30 18:12:42.000000000 +0200
--- /home/dev1usr/Project/TclHEAD.save/unix/tclUnixTime.c	2004-04-07 00:25:57.000000000 +0200
***************
*** 38,57 ****
   * Forward declarations for procedures defined later in this file.
   */
  
  static struct tm *ThreadSafeGMTime _ANSI_ARGS_(( CONST time_t* ));
  static struct tm *ThreadSafeLocalTime _ANSI_ARGS_(( CONST time_t* ));
- 
- #ifdef _INTERIX
- /*
-  * Interix defines gmtime_r and localtime_r only with _REENTRANT defined.
-  * to avoid global defining _REENTRANT, I shadow the prototype from
-  * /usr/include/time.h
-  */
- extern struct tm* __cdecl gmtime_r(const time_t *, struct tm*);
- extern struct tm* __cdecl localtime_r(const time_t *, struct tm*);
- #endif
  
  /*
   *-----------------------------------------------------------------------------
   *
   * TclpGetSeconds --
--- 38,47 ----
