summaryrefslogtreecommitdiffstats
path: root/unix/porting.old
diff options
context:
space:
mode:
authorKevin B Kenny <kennykb@acm.org>2001-05-31 23:45:44 (GMT)
committerKevin B Kenny <kennykb@acm.org>2001-05-31 23:45:44 (GMT)
commitf16a9d29ec4b0f401338397dee7f5d24f9acffb5 (patch)
treefdd7e6cc3e4c627755440c7f60e6ebe4311248fc /unix/porting.old
parent97464e6cba8eb0008cf2727c15718671992b913f (diff)
downloadtcl-f16a9d29ec4b0f401338397dee7f5d24f9acffb5.zip
tcl-f16a9d29ec4b0f401338397dee7f5d24f9acffb5.tar.gz
tcl-f16a9d29ec4b0f401338397dee7f5d24f9acffb5.tar.bz2
Development branch for TIPs 22 and 33 kennykb_tip_22_33_botched
Diffstat (limited to 'unix/porting.old')
-rw-r--r--unix/porting.old384
1 files changed, 0 insertions, 384 deletions
diff --git a/unix/porting.old b/unix/porting.old
deleted file mode 100644
index d56c593..0000000
--- a/unix/porting.old
+++ /dev/null
@@ -1,384 +0,0 @@
-This is an old version of the file "porting.notes". It contains
-porting information that people submitted for Tcl releases numbered
-7.3 and earlier. You may find information in this file useful if
-there is no information available for your machine in the current
-version of "porting.notes".
-
-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.
-
-sccsid = RCS: @(#) $Id: porting.old,v 1.2 1998/09/14 18:40:16 stanton Exp $
-
----------------------------------------------
-Cray machines running UNICOS:
-Contact: John Freeman (jlf@cray.com)
----------------------------------------------
-
-1. There is an error in the strstr function in UNICOS such that if the
-string to be searched is empty (""), the search will continue past the
-end of the string. Because of this, the history substitution loop
-will sometimes run past the end of its target string and trash
-malloc's free list, resulting in a core dump some time later. (As you
-can probably guess, this took a while to diagnose.) I've submitted a
-problem report to the C library maintainers, but in the meantime here
-is a workaround.
-
------------------------------------------------------------------
-diff -c1 -r1.1 tclHistory.c
-*** 1.1 1991/11/12 16:01:58
---- tclHistory.c 1991/11/12 16:14:22
-***************
-*** 23,24 ****
---- 23,29 ----
- #include "tclInt.h"
-+
-+ #ifdef _CRAY
-+ /* There is a bug in strstr in UNICOS; this works around it. */
-+ #define strstr(s1,s2) ((s1)?(*(s1)?strstr((s1),(s2)):0):0)
-+ #endif _CRAY
-
----------------------------------------------
-MIPS systems runing EP/IX:
----------------------------------------------
-
-1. Need to add a line "#include <bsd/sys/time.h>" in tclUnix.h.
-
-2. Need to add "-lbsd" into the line that makes tclTest:
-
- ${CC} ${CFLAGS} tclTest.o libtcl.a -lbsd -o tclTest
-
----------------------------------------------
-IBM RS/6000 systems running AIX:
----------------------------------------------
-
-1. The system version of strtoul is buggy, at least under some
-versions of AIX. If the expression tests fail, try forcing Tcl
-to use its own version of strtoul instead of the system version.
-To do this, first copy strtoul.c from the compat subdirectory up
-to the main Tcl directory. Then modify the Makefile so that
-the definition for COMPAT_OBJS includes "strtoul.o". Note: the
-"config" script should now detect the buggy strtoul and substitute
-Tcl's version automatically.
-
-2. You may have to comment out the declaration of open in tclUnix.h.
-
-3. You may need to add "-D_BSD -lbsd" to the CFLAGS definition. This
-causes the system include files to look like BSD include files and
-causes C library routines to act like bsd library routines. Without
-this, the system may choke on "struct wait".
-
----------------------------------------------
-AT&T 4.03 OS:
----------------------------------------------
-
-Machine: i386/33Mhz i387 32k Cache 16MByte
-OS: AT&T SYSV Release 4 Version 3
-X: X11R5 fixlevel 9
-Xserver: X386 1.2
-
-1. Change the Tk Makefile as follows:
-XLIB = -lX11
- should be changed to:
-XLIB = -lX11 -lsocket -lnsl
-
--------------------------------------------------------
-Silicon Graphics systems:
--------------------------------------------------------
-
-1. Change the CC variable in the Makefile to:
-
-CC = cc -xansi -D__STDC__ -signed
-
-2. In Irix releases 4.0.1 or earlier the C compiler has a buggy optimizer.
- If Tcl fails its test suite or generates inexplicable errors,
- compile tclVar.c with -O0 instead of -O.
-
-3. For IRIX 5.1 or later, comments 1 and 2 are no longer relevant,
-but you must add -D_BSD_SIGNALS to CFLAGS to get the proper signal
-routines.
-
-4. Add a "-lsun" switch in the targets for tclsh and tcltest,
-just before ${MATH_LIBS}.
-
-5. Rumor has it that you also need to add the "-lmalloc" library switch
-in the targets for tclsh and tcltest.
-
-6. In IRIX 5.2 you'll have to modify Makefile to fix the following problems:
- - The "-c" option is illegal with this version of install, but
- the "-F" switch is needed instead. Change this in the "INSTALL ="
- definition line.
- - The order of file and directory have to be changed in all the
- invocations of INSTALL_DATA or INSTALL_PROGRAM.
-
----------------------------------------------
-NeXT machines running NeXTStep 3.1:
----------------------------------------------
-
-1. Run configure with predefined CPP:
- CPP='cc -E' ./configure
- (If your shell is [t]csh, do a "setenv CPP 'cc -E' ")
-
-2. Edit Makefile:
- -add tmpnam.o to COMPAT_OBJS:
- COMPAT_OBJS = getcwd.o waitpid.o strtod.o tmpnam.o
- -add the following to AC_FLAGS:
- -Dstrtod=tcl_strtod
-
-3. Edit compat/tmpnam.c and replace "/usr/tmp" with "/tmp"
-
-After this, tcl7.0 will be build fine on NeXT (ignore linker warning)
-and run all the tests. There are some formatting problems in printf() or
-scanf() which come from NeXT's lacking POSIX conformance. Ignore those
-errors, they don't matter much.
-
-4. Additional information that may apply to NeXTStep 3.2 only:
-
- The problem on NEXTSTEP 3.2 is that the configure script makes some
- bad assumptions about the uid_t and gid_t types. Actually, the may
- have been valid for NEXTSTEP 3.0, or it may be NEXTSTEP's rudimentary
- attempt at POSIX support under 3.2, but no matter what the reason, the
- configure script sets up the Makefile with CFLAGS '-Duid_t=int' and
- '-Dgid_t=int', which are, unfortunately, incorrect, since they shoudl
- actually be (I think) unsigned shorts. This causes problems when the
- 'stat' structure is included, since it throws off the field offsets
- from what the 'fstat' function thinks they should be.
-
- Anyway, the quick fix is to run configure and then edit the Makefile
- to remove the uid_t and gid_t defines. This will allow tcl and Tk to
- compile and run. There are some other problems on NEXTSTEP,
- specifically with %g in the printf family of functions, but making the
- uid_t and gid_t change will get it up and running.
-
----------------------------------------------
-NeXT machines running NeXTStep 3.2:
----------------------------------------------
-
-1. Run configure with predefined CPP:
- CPP='cc -E' ./configure
- (If your shell is [t]csh, do a "setenv CPP 'cc -E' ")
-
-2. Edit Makefile:
- -add tmpnam.o to COMPAT_OBJS:
- COMPAT_OBJS = getcwd.o waitpid.o strtod.o tmpnam.o
- -add the following to AC_FLAGS:
- -Dstrtod=tcl_strtod
- -add '-m' to MATH_LIBS:
- MATH_LIBS = -m -lm
- -add '-O2 -arch m68k -arch i386' to CFLAGS:
- CFLAGS = -O2 -arch m68k -arch i386
-
--------------------------------------------------
-ISC 2.2 UNIX (using standard ATT SYSV compiler):
--------------------------------------------------
-
-In Makefile, change
-
-CFLAGS = -g -I. -DTCL_LIBRARY=\"${TCL_LIBRARY}\"
-
-to
-
-CFLAGS = -g -I. -DPOSIX_JC -DTCL_LIBRARY=\"${TCL_LIBRARY}\"
-
-This brings in the typedef for pid_t, which is needed for
-/usr/include/sys/wait.h in tclUnix.h.
-
----------------------------------------------
-DEC Alphas:
----------------------------------------------
-
-1. There appears to be a compiler/library bug that causes core-dumps
-unless you compile tclVar.c without optimization (remove the -O compiler
-switch). The problem appears to have been fixed in the 1.3-4 version
-of the compiler.
-
----------------------------------------------
-CDC 4680MP, EP/IX 1.4.3:
----------------------------------------------
-
-The installation was done in the System V environment (-systype sysv)
-with the BSD extensions available (-I/usr/include/bsd and -lbsd). It was
-built with the 2.20 level C compiler. The 2.11 level should not be used
-because it has a problem with detecting NaN values in lines like:
- if (x != x) ...
-which appear in the TCL code.
-
-To make the configure script find the BSD extensions, I set environment
-variable DEFS to "-I/usr/include/bsd" and LIBS to "-lbsd" before
-running it. I would have also set CC to "cc2.20", but that compiler
-driver has a bug that loader errors (e.g. not finding a library routine,
-which the script uses to tell what is available) do not cause an error
-status to be returned to the shell (but see the comments about "-non_shared"
-below in the 2.1.1 notes).
-
-There is a bug in the <sys/wait.h> include file that mis-defines the
-structure fields and causes WIFEXITED and WIFSIGNALED to return incorrect
-values. My solution was to create a subdirectory "sys" of the main TCL
-source directory and put a corrected wait.h in it. The "-I." already on
-all the compile lines causes it to be used instead of the system version.
-To fix this, compare the structure definition in /usr/include/bsd/sys/wait.h
-with /bsd43/include/sys/wait.h (or mail to John Jackson, jrj@cc.purdue.edu,
-and he'll send you a context diff).
-
-After running configure, I made the following changes to Makefile:
-
- 1) In AC_FLAGS, change:
- -DNO_WAIT3=1
- to
- -DNO_WAIT3=0 -Dwait3=wait2
- EP/IX (in the System V environment) provides a wait2() system
- call with what TCL needs (the WNOHANG flag). The extra parameter
- TCL passes to what it thinks is wait3() (the resources used by
- the child process) is always zero and will be safely ignored.
-
- 2) Change:
- CC=cc
- to
- CC=cc2.20
- because of the NaN problem mentioned earlier. Skip this if the
- default compiler is already 2.20 (or later).
-
- 3) Add "-lbsd" to the commands that create tclsh and tcltest
- (look for "-o").
-
----------------------------------------------
-CDC 4680MP, EP/IX 2.1.1:
----------------------------------------------
-
-The installation was done in the System V environment (-systype sysv)
-with the BSD extensions available (-I/usr/include/bsd and -lbsd). It was
-built with the 3.11 level C compiler. The 2.11 level should not be used
-because it has a problem with detecting NaN values in lines like:
- if (x != x) ...
-which appear in the TCL code. The 2.20 compiler does not have this
-problem.
-
-To make the configure script find the BSD extensions, I set environment
-variable DEFS to:
-
- "-I/usr/include/bsd -D__STDC__=0 -non_shared"
-
-and LIBS to:
-
- "-lbsd"
-
-before running it. The "-non_shared" is needed because with shared
-libraries, the compiler (actually, the loader) does not report an
-error for "missing" routines. The configuration script depends on this
-error to know what routines are available. This is the real problem
-I reported above for EP/IX 1.4.3 that I incorrectly attributed to a
-compiler driver bug. I don't have 1.4.3 available any more, but it's
-possible using "-non_shared" on it would have solved the problem.
-
-The same <sys/wait.h> bug exists at 2.1.1 (yes, I have reported it to
-CDC), and the same fix as described in the 1.4.3 porting notes works.
-
-In addition to the three Makefile changes described in the 1.4.3 notes,
-you can remove the "-non_shared" flag from AC_FLAGS. It is only needed
-for the configuration step, not the build.
-
-You will get duplicate definition compilation warnings of:
-
- DBL_MIN
- DBL_MAX
- FLT_MIN
- FLT_MAX
-
-during tclExpr.c. These can be ignored.
-
-During expr.test, you will get a failure for one of the "fmod" tests
-unless you have CDC patch CC40038311 installed.
-
----------------------------------------------
-Convex systems, OS 10.1 and 10.2:
-Contact: Lennart Sorth (ls@dmi.min.dk)
----------------------------------------------
-
-1. tcl7.0b2 compiles on Convex systems (OS 10.1 and 10.2) by just running
- configure, typing make, except tclUnixUtil.c needs to be compiled
- with option "-pcc" (portable cc, =!ANSI) due to:
- cc: Error on line 1111 of tclUnixUtil.c: 'waitpid' redeclared:
- incompatible types.
-
--------------------------------------------------
-Pyramid, OSx 5.1a (UCB universe, GCC installed):
--------------------------------------------------
-
-1. The procedures memcpy, strchr, fmod, and strrchr are all missing,
-so you'll need to provide substitutes for them. After you do that
-everything should compile fine. There will be one error in a scan
-test, but it's an obscure one because of a non-ANSI implementation
-of sscanf on the machine; you can ignore it.
-
-2. You may also have to add "tmpnam.o" to COMPAT_OBJS in Makefile:
-the system version appears to be bad.
-
--------------------------------------------------
-Encore 91, UMAX V 3.0.9.3:
--------------------------------------------------
-
-1. Modify the CFLAGS assignment in file Makefile.in to include the
--DENCORE flag in Makefile:
-
- CFLAGS = -O -DENCORE
-
-2. "mkdir" does not by default create the parent directories. The mkdir
-directives should be modified to "midir -p".
-
--------------------------------------------------
-Sequent machines running Dynix:
-Contact: Andrew Swan (aswan@soda.berkeley.edu)
--------------------------------------------------
-
-1. Use gcc instead of the cc distributed by Sequent
-
-2. The distributed math library does not include the fmod
- function. Source for fmod can be retrieved from a BSD
- source archive (such as ftp.uu.net) and included in the
- compat directory. Add fmod.o to the COMPAT_OBJS variable
- in the Makefile. You may need to comment out references
- to 'isnan' and 'finite' in fmod.c
-
-3. If the linker complains that there are two copies of the
- 'tanh' function, use the ar command to extract the objects
- from the math library and build a new one without tanh.o
-
-4. The *scanf functions in the Sequent libraries are apparently
- broken, which will cause the scanning tests to fail. The
- cases that fail are fairly obscure. Using GNU libc apparently
- solves this problem.
-
--------------------------------------------------
-Systems running Interactive 4.0:
--------------------------------------------------
-
-1. Add "-posix -D_SYSV3" to CFLAGS in Makefile (or Makefile.in).
-
--------------------------------------------------
-Systems running FreeBSD 1.1.5.1:
--------------------------------------------------
-
-The following changes comprise the entire porting effort of tcl7.3 to
-FreeBSD (i.e. these were the changes to tclTest.c) and should probably
-be made part of the tcl distribution. The changes only effect the way that
-floating point exceptions are reported. I've choosen to move the changes
-out of tclTest.c and into tclBasic.c.
-
-in tclBasic.c at top-of-file:
-
-#ifdef BSD_NET2
-#include <floatingpoint.h>
-#endif
-
-in tclBasic.c in Tcl_Init():
-
-#ifdef BSD_NET2
- fpsetround(FP_RN);
- fpsetmask(0L);
-#endif
-