]> cvs.zerfleddert.de Git - micropolis/blob - src/tcl/porting.txt
src/tclx/tkucbsrc/makefile: Micropolis build fixes for recent macOS
[micropolis] / src / tcl / porting.txt
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.
Impressum, Datenschutz