]>
Commit | Line | Data |
---|---|---|
6a5fa4e0 MG |
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 (jlf@cray.com) | |
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. |