|
|
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.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.