Annotation of micropolis/src/tcl/porting.txt, revision 1.1.1.1

1.1       root        1: This file contains a collection of notes that various people have
                      2: provided about porting Tcl to various machines and operating systems.
                      3: I don't have personal access to any of these machines, so I make
                      4: no guarantees that the notes are correct, complete, or up-to-date.
                      5: In some cases, a person has volunteered to act as a contact point
                      6: for questions about porting Tcl to a particular machine;  in these
                      7: cases the person's name and e-mail address are listed.
                      8: 
                      9: ---------------------------------------------
                     10: Cray machines running UNICOS:
                     11: Contact: John Freeman ([email protected])
                     12: ---------------------------------------------
                     13: 
                     14: 1. The nm command on unicos doesn't have a -p option, so I removed it
                     15: from the config script without apparent harm.
                     16: 
                     17: diff -c -r1.1 config
                     18: *** 1.1        1991/11/12 15:11:51
                     19: --- config     1991/11/12 15:14:18
                     20: ***************
                     21: *** 57,63 ****
                     22:       echo "  to set the libc variable."
                     23:       exit(1)
                     24:   endif
                     25: ! nm -p $libc > tmp.libc
                     26:   if ( $status != 0 ) then
                     27:       echo "- ERROR\!\!  Nm failed to extract names of system-supplied library"
                     28:       echo "  procedures from $libc.  You'll have to modify config by hand to"
                     29: --- 57,63 ----
                     30:       echo "  to set the libc variable."
                     31:       exit(1)
                     32:   endif
                     33: ! nm $libc > tmp.libc
                     34:   if ( $status != 0 ) then
                     35:       echo "- ERROR\!\!  Nm failed to extract names of system-supplied library"
                     36:       echo "  procedures from $libc.  You'll have to modify config by hand to"
                     37: 
                     38: 2. There is an error in the strstr function in UNICOS such that if the
                     39: string to be searched is empty (""), the search will continue past the
                     40: end of the string.  Because of this, the history substitution loop
                     41: will sometimes run past the end of its target string and trash
                     42: malloc's free list, resulting in a core dump some time later.  (As you
                     43: can probably guess, this took a while to diagnose.)  I've submitted a
                     44: problem report to the C library maintainers, but in the meantime here
                     45: is a workaround.
                     46: 
                     47: -----------------------------------------------------------------
                     48: diff -c1 -r1.1 tclHistory.c
                     49: *** 1.1        1991/11/12 16:01:58
                     50: --- tclHistory.c       1991/11/12 16:14:22
                     51: ***************
                     52: *** 23,24 ****
                     53: --- 23,29 ----
                     54:   #include "tclInt.h"
                     55: + 
                     56: + #ifdef _CRAY
                     57: + /* There is a bug in strstr in UNICOS; this works around it. */
                     58: + #define strstr(s1,s2) ((s1)?(*(s1)?strstr((s1),(s2)):0):0)
                     59: + #endif _CRAY
                     60: 
                     61: 
                     62: ---------------------------------------------
                     63: HP-UX systems:
                     64: ---------------------------------------------
                     65: 
                     66: 1. The #define for TCL_UNION_WAIT in tclUnix.h needs to be set to 0,
                     67: not 1.  I've tried a number of techniques to get the "config" script
                     68: to figure this out and set it correctly, but so far I haven't been
                     69: able to make it work for HP-UX systems.
                     70: 
                     71: 2. It may also be useful to add the flag "-D_BSD" to CFLAGS in the
                     72: Makefile, but I'm not sure this is necessary (and it may even be
                     73: evil) if TCL_UNION_WAIT has been #define'd correctly.
                     74: 
                     75: ---------------------------------------------
                     76: MIPS systems runing EP/IX:
                     77: ---------------------------------------------
                     78: 
                     79: 1. Need to add a line "#include <bsd/sys/time.h>" in tclUnix.h.
                     80: 
                     81: 2. Need to add "-lbsd" into the line that makes tclTest:
                     82: 
                     83:        ${CC} ${CFLAGS} tclTest.o libtcl.a -lbsd -o tclTest
                     84: 
                     85: ---------------------------------------------
                     86: IBM RS/6000 systems running AIX:
                     87: ---------------------------------------------
                     88: 
                     89: 1. The system version of strtoul is buggy, at least under some
                     90: versions of AIX.  If the expression tests fail, try forcing Tcl
                     91: to use its own version of strtoul instead of the system version.
                     92: To do this, first copy strtoul.c from the compat subdirectory up
                     93: to the main Tcl directory.  Then modify the Makefile so that
                     94: the definition for COMPAT_OBJS includes "strtoul.o".  Note:  the
                     95: "config" script should now detect the buggy strtoul and substitute
                     96: Tcl's version automatically.
                     97: 
                     98: 2. You may have to comment out the declaration of open in tclUnix.h.
                     99: 
                    100: 3. The "nm -p ..." line in the file "config" has to be changed to
                    101: "nm -en ..." if you use the version of nm that's in /bin.  If you're
                    102: set up to use the BSD version (in /usr/ucb) then this won't be a
                    103: problem.
                    104: 
                    105: ---------------------------------------------
                    106: AT&T 4.03 OS:
                    107: ---------------------------------------------
                    108: 
                    109: Machine: i386/33Mhz i387 32k Cache 16MByte 
                    110: OS: AT&T SYSV Release 4 Version 3
                    111: X: X11R5 fixlevel 9
                    112: Xserver: X386 1.2
                    113: 
                    114: 1. Change the Tk Makefile as follows:
                    115: XLIB            = -lX11
                    116:        should be changed to:
                    117: XLIB            = -lX11 -lsocket -lnsl
                    118: 
                    119: 2. Change the Tcl "config" script as follows:
                    120: set libc="/lib/libc.a"
                    121:        should be changed to:
                    122: set libc="/usr/ccs/lib/libc.a"
                    123: 
                    124: -------------------------------------------------------
                    125: Motorola MPC's running UNIX System V/88 Release R32V2:
                    126: -------------------------------------------------------
                    127: 
                    128: 1.  Tcl should build without any modifications to sources, but csh
                    129: isn't supplied with the operating system so you'll have to find and
                    130: use the public-domain tcsh.
                    131: 
                    132: -------------------------------------------------------
                    133: SGI machines running Irix release 4.0.1 or earlier:
                    134: -------------------------------------------------------
                    135: 
                    136: 1. There's a bug in the optimizer;  compile tclVar.c using -O0.
                    137: 
                    138: 2. In tclUnix.h, add the following just before the declaration of environ:
                    139: 
                    140: #ifdef __sgi
                    141: #define environ _environ
                    142: #endif
                    143: 
                    144: ---------------------------------------------
                    145: NeXT machines running NeXTStep 2.1:
                    146: ---------------------------------------------
                    147: 
                    148: 1. Change the "libc" definition in the config file to
                    149:     set libc="/lib/libsys_s.a"
                    150: 
                    151: 2. Several of the "format" and "scan" tests will fail, but these are
                    152: all minor nits stemming from imperfect POSIX compliance in the NeXT
                    153: C library procedures.  The errors are unlikely to affect any Tcl
                    154: applications.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.