This file contains a collection of notes that various people have
provided about porting Tcl to various machines and operating systems.
I don't have personal access to any of these machines, so I make
no guarantees that the notes are correct, complete, or up-to-date.
If you see the word "I" in any explanations, it refers to the person
who contributed the information, not to me;  this means that I
probably can't answer any questions about any of this stuff.  In
some cases, a person has volunteered to act as a contact point for
questions about porting Tcl to a particular machine;  in these
cases the person's name and e-mail address are listed.  I'm
interested in getting new porting information to add to the file;
please mail updates to "john.ousterhout@eng.sun.com".

This file reflects information provided for Tcl 7.4 and later releases.
If there is no information for your configuration in this file, check
the file "porting.old" too;  it contains information that was
submitted for Tcl 7.3 and earlier releases, and some of that information
may still be valid.

A new porting database has recently become available on the Web at
the following URL:
    http://www.sunlabs.com/cgi-bin/tcl/info.4.0
This page provides information about the platforms on which Tcl 7.4
and Tk 4.0 have been compiled and what changes were needed to get Tcl
and Tk to compile.  You can also add new entries to that database
when you install Tcl and Tk on a new platform.  The Web database is
likely to be more up-to-date than this file.


--------------------------------------------
Solaris, various versions
--------------------------------------------

1. If typing "make test" results in an error message saying that
there are no "*.test" files, or you get lots of globbing errors,
it's probably because your system doesn't have cc installed and
you used gcc.  In order for this to work, you have to set your
CC environment variable to gcc and your CPP environment variable
to "gcc -E" before running the configure script.

2. Make sure that /usr/ucb is not in your PATH or LD_LIBRARY_PATH
environment variables;  this will cause confusion between the new
Solaris libraries and older UCB versions (Tcl will expect one version
and get another).

3. There have been several reports of problems with the "glob" command.
So far these reports have all been for older versions of Tcl, but
if you run into problems, edit the Makefile after "configure" is
run and add "-DNO_DIRENT_H=1" to the definitions of DEFS.  Do this
before compiling.

--------------------------------------------
Pyramid DC/OSx SVr4, DC/OSx version 94c079
--------------------------------------------

Tcl seems to dump core in cmdinfo.test when compiled with the
optimiser turned on in TclEval which calls 'free'.  To get around
this, turn the optimiser off.

--------------------------------------------
SGI machines, IRIX 5.2, 5.3, IRIX64 6.0.1
--------------------------------------------

1. If you compile with gcc-2.6.3 under some versions of IRIX (e.g.
   4.0.5), DBL_MAX is defined too large for gcc and Tcl complains
   about all floating-point values being too large to represent.
   If this happens, redefining DBL_MAX to 9.99e299.

--------------------------------------------
IBM RTs, AOS
--------------------------------------------

1. Steal fmod from 4.4BSD
2. Add a #define to tclExpr such that:
extern double fmod(); 
is defined conditionally on ibm032

--------------------------------------------
FreeBSD
--------------------------------------------

FreeBSD's math library does not properly handle floating-point exceptions,
which can cause core dumps.  The following patch eliminates the problem:

*** tclBasic.c:1.1.1.1  Tue Sep 27 15:49:29 1994
--- tclBasic.c  Tue Sep 27 15:49:29 1994
***************
*** 35,40 ****
--- 35,42 ----
  #   include "tclUnix.h"
  #endif
  
+ #include <floatingpoint.h>
+ 
  /*
   * The following structure defines all of the commands in the Tcl core,
   * and the C procedures that execute them.
***************
*** 276,281 ****
--- 278,285 ----
            error $msg\n\
        }";
  
+     fpsetround(FP_RN);
+     fpsetmask(0L);
      return Tcl_Eval(interp, initCmd);
  }

--------------------------------------------
QNX 4.22
--------------------------------------------

tclPort.h
	- commented out 2 lines containing #include <sys/param.h>

tcl.h
	- changed  #define VARARGS ()
	- to       #ifndef __QNX__
	             #define VARARGS ()
	           #else
	             #define VARARGS (void *, ...)
	           #endif
