Commit | Line | Data |
---|---|---|
b727702b EZ |
1 | Emacs machines list |
2 | ||
0a33da51 | 3 | Copyright (C) 1989, 1990, 1992, 1993, 1998, 2001, 2002, 2003, 2004, |
1bb97e22 | 4 | 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
5b87ad55 | 5 | See the end of the file for license conditions. |
b727702b | 6 | |
f4b79972 EZ |
7 | This is a list of the status of GNU Emacs on various machines and systems. |
8 | ||
9 | For each system and machine, we give the configuration name you should | |
10 | pass to the `configure' script to prepare to build Emacs for that | |
11 | system/machine. | |
12 | ||
13 | The `configure' script uses the configuration name to decide which | |
14 | machine and operating system description files `src/config.h' should | |
15 | include. The machine description files are all in `src/m', and have | |
16 | names similar to, but not identical to, the machine names used in | |
17 | configuration names. The operating system files are all in `src/s', | |
18 | and are named similarly. See the `configure' script if you need to | |
19 | know which configuration names use which machine and operating system | |
20 | description files. | |
21 | ||
22 | If you add support for a new configuration, add a section to this | |
23 | file, and then edit the `configure' script to tell it which | |
24 | configuration name(s) should select your new machine description and | |
25 | system description files. | |
26 | ||
e10bf4de EZ |
27 | Some obsolete platforms are unsupported beginning with Emacs 23.1, see |
28 | the full list at the end of this file. | |
29 | ||
f4b79972 EZ |
30 | \f |
31 | Here are the configurations Emacs is intended to work with, with the | |
32 | corresponding configuration names. You can postpend version numbers | |
33 | to operating system names (i.e. sunos4.1) or architecture names (i.e. | |
34 | hppa1.1). If you leave out the version number, the `configure' script | |
35 | will configure Emacs for the latest version it knows about. | |
36 | ||
f3041af1 | 37 | Alpha (DEC) running GNU/Linux (alpha-dec-linux-gnu) |
f4b79972 | 38 | |
538af1cd EZ |
39 | DEC C compiler version 5.9 (DEC C V5.9-005 on Digital UNIX V4.0f) |
40 | is reported to produce bogus binaries of Emacs 21.2 when the | |
41 | command-line switches "-O4 -arch ev6 -tune ev6" are used. Using | |
42 | just -O4 produces a good executable. | |
43 | ||
f4b79972 EZ |
44 | For 4.0 revision 564, and 4.0A and 4.0B, Emacs 20 seems to work |
45 | with no special configuration options. However, if you use GCC as | |
46 | your compiler, you will need version 2.8.1 or later, as older | |
47 | versions fail to build with a message "Invalid dimension for the | |
48 | charset-ID 160". | |
49 | ||
50 | Note that the X11 libraries on GNU/Linux systems for the Alpha are | |
51 | said to have bugs that prevent Emacs from working with X (as of | |
52 | November 1995). Recent releases work (July 2000). | |
53 | ||
128a6043 ST |
54 | Apple Macintosh running Mac OS X |
55 | ||
0819bf7e | 56 | For installation on all versions of the Mac OS platform, see the file |
128a6043 ST |
57 | mac/INSTALL. |
58 | ||
9ff069a5 EZ |
59 | Apple PowerPC Macintosh running GNU/Linux |
60 | ||
61 | There are special considerations for a variety of this system which | |
723718ff | 62 | is known as the ``Yellow Dog [GNU/]Linux'': Emacs may crash during |
9ff069a5 EZ |
63 | dumping. To solve this, edit the header file src/m/macppc.h in the |
64 | Emacs distribution, and remove the "#if 0" and "#endif" directives | |
65 | which surround the following block near the end of the file: | |
66 | ||
178b60d7 | 67 | #if 0 /* This breaks things on PPC GNU/Linux except for Yellowdog, |
9ff069a5 EZ |
68 | even with identical GCC, as, ld. Let's take it out until we |
69 | know what's really going on here. */ | |
70 | /* GCC 2.95 and newer on GNU/Linux PPC changed the load address to | |
71 | 0x10000000. */ | |
72 | #if defined __linux__ | |
73 | #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) | |
74 | #define DATA_SEG_BITS 0x10000000 | |
75 | #endif | |
76 | #endif | |
77 | #endif /* 0 */ | |
78 | ||
79 | After that, reconfigure and rebuild Emacs. It should now build | |
80 | successfully. | |
81 | ||
f4b79972 EZ |
82 | Cubix QBx/386 (i386-cubix-sysv) |
83 | ||
84 | Changes merged in 19.1. Systems before 2/A/0 may fail to compile etags.c | |
85 | due to a compiler bug. | |
86 | ||
f4b79972 EZ |
87 | DECstation (mips-dec-ultrix or mips-dec-osf) |
88 | ||
89 | This machine is the older Mips-based DECstation. | |
90 | Emacs should now work on the Alpha CPU. | |
91 | ||
92 | 19.25 works on Ultrix 4.2. The 19.26 pretest was reported to work | |
93 | on Ultrix 4.2a and on 4.4. | |
94 | ||
95 | One user reported 19.25 did not work at all with --with-x-toolkit | |
96 | using X11R5 patch level 10, but worked ok with X11R5 pl26. | |
97 | ||
98 | See under Ultrix for problems using X windows on Ultrix. | |
99 | Note that this is a MIPS machine. | |
100 | ||
101 | For Ultrix versions 4.1 or earlier, you may need to define | |
102 | SYSTEM_MALLOC in `src/m/pmax.h', because XvmsAlloc.o in libX11.a seems | |
103 | to insist on defining malloc itself. | |
104 | ||
105 | For Ultrix versions prior to 4.0, you may need to delete | |
106 | the definition of START_FILES from `src/m/pmax.h'. | |
107 | ||
108 | Motorola Delta 147 (m68k-motorola-sysv) | |
109 | ||
110 | The EMacs 19.26 pretest was reported to work. | |
111 | ||
112 | Motorola Delta boxes running System V/68 release 3. | |
113 | Tested on 147 board with SVR3V7, no X and gcc. | |
114 | Tested on 167 board with SVR3V7, no X, cc, gnucc and gcc. | |
115 | Reports say it works with X too. | |
116 | ||
117 | The installation script chooses the compiler itself. gnucc is | |
118 | preferred. | |
119 | ||
f4b79972 EZ |
120 | Fujitsu DS/90 (sparc-fujitsu-sysv4) |
121 | ||
122 | Changes merged in 20.3. | |
123 | ||
f4b79972 EZ |
124 | Harris Power PC (powerpc-harris-powerunix) |
125 | ||
126 | Patches have been merged in 19.31. | |
127 | ||
f4b79972 EZ |
128 | HP 9000 series 500: not supported. |
129 | ||
130 | The series 500 has a seriously incompatible memory architecture | |
131 | which relocates data in memory during execution of a program, | |
132 | and support for it would be difficult to implement. | |
133 | ||
134 | HP 9000 series 700 or 800 (Spectrum) (hppa1.0-hp-hpux or hppa1.1-hp-hpux | |
f2a77c3a | 135 | or ...hpux9shr) |
f4b79972 EZ |
136 | |
137 | Use hppa1.1 for the 700 series and hppa1.0 for the 800 | |
138 | series machines. (Emacs may not actually care which one you use.) | |
139 | ||
f4b79972 EZ |
140 | Emacs 20 may work on HPUX 10. You need patch PHSS_6202 to install |
141 | the Xaw and Xmu libraries. On HPUX 10.20 you may need to compile with GCC; | |
142 | when Emacs was compiled with HP's C compiler, HP92453-01 A.10.32.03, | |
143 | the subprocess features failed to work. | |
144 | ||
145 | 19.26 is believed to work on HPUX 9 provided you compile with GCC. | |
146 | As of version 19.16, Emacs was reported to build (using GCC) and run | |
147 | on HP 9000/700 series machines running HP/UX versions 8.07 and 9.01. | |
148 | The HP compiler is known to fail on some versions if you use +O3, | |
149 | but it may work with lower optimization levels. | |
150 | ||
151 | Use hppa1.1-hp-hpux9shr to use shared libraries on HPUX version 9. | |
152 | You may need to create the X libraries libXaw.a and libXmu.a from | |
153 | the MIT X distribute, and you may need to edit src/Makefile's | |
154 | definition of LIBXT to look like this: | |
155 | ||
156 | LIBXT= $(LIBW) -lXmu -lXt $(LIBXTR6) -lXext | |
157 | ||
158 | Some people report trouble using the GNU memory allocator under | |
159 | HP/UX version 9. The problems often manifest as lots of ^@'s in the | |
160 | buffer. | |
c60ee5e7 | 161 | |
f4b79972 EZ |
162 | We are told that these problems go away if you obtain the latest |
163 | patches for the HP/UX C compiler. James J Dempsey | |
164 | <jjd@spserv.bbn.com> says that this set of versions works for him: | |
165 | /bin/cc: | |
166 | HP92453-01 A.09.28 HP C Compiler | |
167 | /lib/ccom: | |
168 | HP92453-01 A.09.28 HP C Compiler | |
169 | HP-UX SLLIC/OPTIMIZER HP-UX.09.00.23 02/18/93 | |
170 | Ucode Code Generator - HP-UX.09.00.23.5 (patch) 2/18/93 | |
171 | ||
172 | For 700 series machines, the HP-UX patch needed is known as | |
173 | PHSS_2653. (Perhaps for 800 series machines as well; we don't | |
174 | know.) If you are on the Internet, you should be able to obtain | |
175 | this patch by using telnet to access the machine | |
176 | support.mayfield.hp.com and logging in as "hpslreg" and following | |
177 | the instructions there. Or you may be able to use this | |
178 | web site: | |
179 | ||
180 | HP Patch Server: http://support.mayfield.hp.com/patches/html/patches.html | |
181 | HP Support Line: http://support.mayfield.hp.com | |
182 | ||
183 | Please do not ask FSF for further support on this. If you have any | |
184 | trouble obtaining the patch, contact HP Software Support. | |
185 | ||
186 | If your buffer fills up with nulls (^@) at some point, it could well | |
187 | be that problem. That problem does not happen when people use GCC | |
188 | to compile Emacs. On the other hand, the HP compiler version 9.34 | |
189 | was reported to work for the 19.26 pretest. 9.65 was also reported to work. | |
190 | ||
191 | If you turn on the DSUSP character (delayed suspend), | |
192 | Emacs 19.26 does not know how to turn it off on HPUX. | |
193 | You need to turn it off manually. | |
194 | ||
195 | If you are running HP/UX release 8.0 or later, you need the optional | |
196 | "C/ANSI C" software in order to build Emacs (older releases of HP/UX | |
197 | do not require any special software). If the file "/etc/filesets/C" | |
198 | exists on your machine, you have this software, otherwise you do not. | |
199 | ||
f4b79972 EZ |
200 | IBM RS/6000 (rs6000-ibm-aix*) |
201 | ||
202 | Emacs 19.26 is believed to work; its pretest was tested. | |
203 | ||
204 | Compiling with the system's `cc' and CFLAGS containing `-O5' might | |
205 | fail because libXbsd isn't found. This is a compiler bug; | |
206 | re-configure Emacs so that it isn't compiled with `-O5'. | |
207 | ||
a9f66ecb EZ |
208 | On AIX 4.3.x and 4.4, compiling with /bin/c89 fails because it |
209 | treats certain warnings as errors. Use `cc' instead. | |
210 | ||
f4b79972 EZ |
211 | At last report, Emacs didn't run well on terminals. Informed |
212 | persons say that the tty VMIN and VTIME settings have been | |
213 | corrupted; if you have a fix, please send it to us. | |
214 | ||
215 | Compiling with -O using the IBM compiler has been known | |
216 | to make Emacs work incorrectly. It's reported that on | |
217 | AIX 3.2.5 with an IBM compiler earlier than 1.03.00.14, | |
218 | cc -O fails for some files. You need to install any | |
219 | PTF containing APAR #IX42810 to bring the compiler to | |
220 | the 1.03.00.14 level to allow optimized compiles. | |
221 | ||
222 | There are reports that IBM compiler versions earlier than 1.03.00.02 | |
223 | fail even without -O. However, another report said that compiler | |
224 | version 1.02.01.00 did work, on AIX 3.2.4, with Emacs 19.31. | |
225 | ||
226 | As of 19.11, if you strip the Emacs executable, it ceases to work. | |
227 | ||
228 | If you are using AIX 3.2.3, you may get a core dump when loading | |
229 | ange-ftp. You may be able to fix the problem by defining LIBS_TERMCAP | |
230 | as -ltermcap -lcurses. Please tell us if this fails to work. | |
231 | ||
232 | If anyone can fix the above problems, or confirm that they don't happen | |
233 | with certain versions of various programs, we would appreciate it. | |
234 | ||
cc9458f7 EZ |
235 | IBM System/390 running GNU/Linux (s390-*-linux-gnu) |
236 | ||
237 | As of Emacs 21.2, a 31-bit only version is supported on this | |
238 | system. | |
239 | ||
f3041af1 | 240 | Intel 386 (i386-*-bsdi2, i386-*-freebsd, i386-*-linux-gnu, |
f4b79972 EZ |
241 | i386-*-sol2.4, i386-*-sysv3, i386-intsys-sysv, |
242 | i386-*-sysv4, i386-*-sysv4.2, | |
c60ee5e7 | 243 | i386-*-sysv5.3, i386-*-bsd4.2, i386-*-cygwin, |
f3041af1 | 244 | i386-*-bsd386, i386-*-386bsd, |
f4b79972 EZ |
245 | i386-*-msdos, i386-*-windowsnt. |
246 | i386... can be replaced with i486... or i586...) | |
247 | ||
248 | In the above configurations, * means that the manufacturer's name | |
249 | you specify does not matter, and you can use any name you like | |
250 | (but it should not contain any dashes or stars). | |
251 | ||
252 | When using the ISC configurations, be sure to specify the isc | |
253 | version number - for example, if you're running ISC 3.0, use | |
254 | i386-unknown-isc3.0 as your configuration name. | |
f4b79972 | 255 | Use i386-*-linux-gnu for GNU/Linux systems; Emacs runs as of version 19.26. |
bf247b6e | 256 | Use i386-*-cygwin for Cygwin; Emacs builds as of version 22.1, in both X11 |
c60ee5e7 | 257 | and non-X11 modes. (The Cygwin site has source and binaries for 21.2.) |
f4b79972 EZ |
258 | Use i386-intsys-sysv for Integrated Solutions 386 machines. |
259 | It may also be correct for Microport systems. | |
f4b79972 EZ |
260 | |
261 | On GNU/Linux systems, Emacs 19.23 was said to work properly with libc | |
262 | version 4.5.21, but not with 4.5.19. If your system uses QMAGIC | |
263 | for the executable format, you must edit config.h to define LINUX_QMAGIC. | |
264 | ||
265 | On GNU/Linux, configure may fail to put these definitions in config.h: | |
266 | ||
267 | #define HAVE_GETTIMEOFDAY | |
268 | #define HAVE_MKDIR | |
269 | #define HAVE_RMDIR | |
270 | #define HAVE_XSCREENNUMBEROFSCREEN | |
271 | ||
272 | To work around the problem, add those definitions by hand. | |
273 | It is possible that this problem happens only with X11R6. | |
274 | Newer system versions have fixed it. | |
275 | ||
276 | The 19.26 pretest was reported to work on SVR4.3 and on Freebsd. | |
277 | ||
278 | 19.29 is reported to crash when using Motif on Solaris 2.5. | |
279 | The reasons are not yet known. | |
280 | ||
281 | Use i386-*-bsdiN for BSDI BSD/OS version N; Emacs runs as of version 19.23. | |
282 | In some system versions, `make' is broken; use GNU make instead. | |
283 | Shell bugs in version 1.0 of BSD/OS cause configure | |
284 | to do the wrong thing with --with-x-toolkit; the workaround is to edit | |
285 | configure to run another shell such as bash. | |
286 | ||
287 | For System V release 3, use i386-*-sysv3. | |
288 | For System V release 4, use i386-*-sysv4. | |
289 | For System V release 4.2, use i386-*-sysv4.2. | |
290 | ||
f4b79972 EZ |
291 | If you are using SCO Unix, see notes at end under SCO. |
292 | ||
293 | On 386bsd, NetBSD and FreeBSD, at one time, it was necessary to use | |
294 | GNU make, not the system's make. Assuming it's installed as gmake, | |
295 | do `gmake install MAKE=gmake'. However, more recently it is | |
296 | reported that using the system Make on NetBSD 1.3.1 works ok. | |
297 | ||
298 | If you are using System V release 4.2, you may find that `cc -E' | |
299 | puts spurious spaces in `src/xmakefile'. If that happens, | |
300 | specify CPP=/lib/cpp as an option when you run make. | |
301 | There is no problem if you compile with GCC. | |
c60ee5e7 | 302 | |
f4b79972 EZ |
303 | Note that use of Linux with GCC 2.4 and the DLL 4.4 libraries |
304 | requires the experimental "net 2" network patches (no relation to | |
305 | Berkeley Net 2). There is a report that (some version of) Linux | |
306 | requires including `/usr/src/linux/include/linux' in buffer.c | |
307 | but no coherent explanation of why that might be so. If it is so, | |
308 | in current versions of Linux, something else should probably be changed. | |
309 | ||
310 | Some sysV.3 systems seem to have bugs in `opendir'; | |
311 | for them, alter `config.h' to define NONSYSTEM_DIR_LIBRARY | |
312 | and undefine SYSV_SYSTEM_DIR. | |
313 | ||
314 | If you use optimization on V.3, you may need the option -W2,'-y 0' | |
315 | to prevent certain faulty optimization. | |
316 | ||
317 | On 386/ix, to link with shared libraries, add #define USG_SHARED_LIBRARIES | |
318 | to config.h. | |
319 | ||
320 | On SCO, there are problems in regexp matching when Emacs is compiled | |
321 | with the system compiler. The compiler version is "Microsoft C | |
322 | version 6", SCO 4.2.0h Dev Sys Maintenance Supplement 01/06/93; | |
323 | Quick C Compiler Version 1.00.46 (Beta). The solution is to compile | |
324 | with GCC. | |
325 | ||
326 | On ISC systems (2.02 and more recent), don't try to use the versions | |
327 | of X that come with the system; use XFree86 instead. | |
328 | ||
329 | There is no consistency in the handling of certain system header files | |
330 | on V.3. | |
331 | ||
332 | Some versions have sys/sioctl.h, and require it in sysdep.c. | |
333 | But some versions do not have sys/sioctl.h. | |
334 | For a given version of the system, this may depend on whether you have | |
335 | X Windows or TCP/IP. Define or undefine NO_SIOCTL_H in config.h | |
336 | according to whether you have the file. | |
337 | ||
338 | Likewise, some versions have been known to need sys/ttold.h, sys/stream.h, | |
339 | and sys/ptem.h included in sysdep.c. If your system has these files, | |
340 | try defining NEED_PTEM_H in config.h if you have trouble without it. | |
341 | ||
342 | You may find that adding -I/usr/X/include or -I/usr/netinclude or both | |
343 | to CFLAGS avoids compilation errors on certain systems. | |
344 | ||
345 | Some versions convince sysdep.c to try to use `struct tchars' | |
346 | but define `struct tc' instead; add `#define tchars tc' | |
347 | to config.h to solve this problem. | |
348 | ||
f4b79972 EZ |
349 | Iris 4D (mips-sgi-irix[456].*) |
350 | ||
17ce526b RS |
351 | Emacs 21.3 is reported to work on IRIX 6.5.x. |
352 | ||
f4b79972 EZ |
353 | You can build a 64-bit executable (with larger maximum buffer size) |
354 | on Irix 6.5 by specifying the 64-bit ABI using the `-64' compiler | |
355 | flag or otherwise (see cc(1)). This may work on earlier Irix 6 | |
356 | systems if you edit src/s/irix6-0.h following irix6-5.h. | |
357 | ||
358 | If compiling with GCC on Irix 6 yields an error "conflicting types | |
359 | for `initstate'", install GCC 2.95 or a newer version, and this | |
360 | problem should go away. It is possible that this problem results | |
361 | from upgrading the operating system without reinstalling GCC; so you | |
362 | could also try reinstalling the same version of GCC, and telling us | |
363 | whether that fixes the problem. | |
364 | ||
f4b79972 EZ |
365 | Mips (mips-mips-riscos, mips-mips-riscos4.0, or mips-mips-bsd) |
366 | ||
367 | The C compiler on Riscos 4.51 dumps core trying to optimize | |
368 | parts of Emacs. Try without optimization or try GCC. | |
369 | ||
370 | Meanwhile, the linker on that system returns success even if | |
371 | there are undefined symbols; as a result, configure gets the | |
372 | wrong answers to various questions. No work-around is known | |
373 | except to edit src/config.h by hand to indicate which functions | |
374 | don't exist. | |
375 | ||
376 | Use mips-mips-riscos4.0 for RISCOS version 4. | |
377 | Use mips-mips-bsd with the BSD world. | |
378 | ||
379 | Note that the proper configuration names for DECstations are | |
380 | mips-dec-ultrix and mips-dec-osf. | |
381 | ||
382 | If you are compiling with GCC, then you must run fixincludes; | |
383 | the alternative of using -traditional won't work because | |
384 | the definition of SIGN_EXTEND_CHAR uses the keyword `signed'. | |
385 | ||
386 | If the SYSV world is the default, then you probably need the following | |
387 | line in etc/Makefile: | |
388 | ||
389 | CFLAGS= -g -systype bsd43 | |
390 | ||
391 | Some operating systems on MIPS machines give SIGTRAP for division by | |
392 | zero instead of the usual signals. The only real solution is to fix | |
393 | the system to give a proper signal. | |
394 | ||
395 | In the meantime, you can change init_data in data.c if you wish. | |
396 | Change it to handle SIGTRAP as well as SIGFPE. But this will have a | |
397 | great disadvantage: you will not be able to run Emacs under a | |
398 | debugger. I think crashing on division by zero is a lesser problem. | |
399 | ||
400 | dsg@mitre.org reported needing to use --x-libraries=/bsd43/usr/lib | |
401 | on a riscos4bsd site. But it is not clear whether this is needed in | |
402 | general or only because of quirks on a particular site. | |
403 | ||
f4b79972 EZ |
404 | NCR Intel system (i386-ncr-sysv4.2) |
405 | ||
406 | This system works in 19.31, but if you don't link it with GNU ld, | |
407 | you may need to set LD_RUN_PATH at link time to specify where | |
408 | to find the X libraries. | |
409 | ||
f4b79972 EZ |
410 | Prime EXL (i386-prime-sysv) |
411 | ||
412 | Minor changes merged in 19.1. | |
413 | ||
f4b79972 EZ |
414 | Siemens Nixdorf RM600 and RM400 (mips-siemens-sysv4) |
415 | ||
f3041af1 | 416 | Changes merged in 19.29. The version configured with |
f4b79972 EZ |
417 | `--with-x' works without any modifications, but `--with-x-toolkit' |
418 | works only if the Athena library and the Toolkit library are linked | |
419 | statically. For this, edit `src/Makefile' after the `configure' run | |
420 | and modify the lines with `-lXaw' and `-lXt' as follows: | |
421 | ||
422 | LIBW= /usr/lib/libXaw.a | |
423 | LIBXT= $(LIBW) -lXmu /usr/lib/libXt.a $(LIBXTR6) -lXext | |
424 | ||
425 | In addition, `--with-x-toolkit=motif' works only | |
426 | if the Motif library and the Toolkit library are linked statically. | |
427 | To do this, edit `src/Makefile' after the `configure' run | |
428 | and modify the lines with `-lXm' and `-lXt' as follows: | |
429 | ||
430 | LIBW= /usr/lib/libXm.a /usr/ccs/lib/libgen.a | |
431 | LIBXT= $(LIBW) -lXmu /usr/lib/libXt.a $(LIBXTR6) -lXext | |
432 | ||
f2a77c3a DN |
433 | Sun 4 (sparc), Sun 386 (sparc-sun-solaris2.*, |
434 | i386-sun-solaris2.*, sparc*-*-linux-gnu) | |
f4b79972 | 435 | |
5ebc76c9 EZ |
436 | To build a 32-bit Emacs (i.e. if you are having any sort of problem |
437 | bootstrapping a 64-bit version), you can use the Sun Studio compiler | |
438 | and configure Emacs with: | |
439 | env CC="cc -xarch=v7" CFLAGS='' ./configure # on SPARC systems | |
440 | env CC="cc -xarch=386" CFLAGS='' ./configure # on x86 systems | |
441 | On Solaris 2.10, it is also possible to use /usr/sfw/bin/gcc to build | |
442 | a 32-bit version of Emacs. Just make sure you point ./configure to | |
443 | the right compiler: | |
444 | ||
445 | env CC='/usr/sfw/bin/gcc -m32' ./configure | |
446 | ||
f4b79972 EZ |
447 | To build a 64-bit Emacs (with larger maximum buffer size and |
448 | including large file support) on a Solaris system which supports | |
449 | 64-bit executables, use the Sun compiler, configuring something like | |
450 | this (see the cc documentation for information on 64-bit | |
5ebc76c9 EZ |
451 | compilation): |
452 | ||
453 | env CC="cc -xarch=v9" CFLAGS='' ./configure # on SPARC systems | |
454 | env CC="cc -xarch=amd64" CFLAGS='' ./configure # on x86 systems | |
f4b79972 EZ |
455 | |
456 | As of version 2.95, GCC doesn't support the 64-bit ABI properly, but | |
457 | later releases may. | |
458 | ||
1ebfc51b EZ |
459 | Some versions of Solaris 8 have a bug in their XIM (X Input Method) |
460 | implementation which causes Emacs to dump core when one of several | |
461 | frames is closed. To avoid this, either install patch 108773-12 | |
462 | (for Sparc) or 108874-12 (for x86), or configure Emacs with the | |
463 | `--with-xim=no' switch (you can use Leim input methods instead). | |
464 | ||
f4b79972 EZ |
465 | On Solaris 2.7, building Emacs with WorkShop Compilers 5.0 98/12/15 |
466 | C 5.0 failed, apparently with non-default CFLAGS, most probably due to | |
467 | compiler bugs. Using Sun Solaris 2.7 Sun WorkShop 6 update 1 C | |
468 | release was reported to work without problems. It worked OK on | |
469 | another system with Solaris 8 using apparently the same 5.0 compiler | |
470 | and the default CFLAGS. | |
471 | ||
9b4505aa EZ |
472 | Emacs 21.1 and 21.2 built with Sun's ProWorks PC3.0.1 compiler on |
473 | Intel/Solaris 8 was reported to abort and dump core during startup. | |
474 | Using GCC or a newer SUN compiler (Sun WokShop 6 update 2 C 5.3 | |
475 | 2001/05/15) solves the problem. | |
476 | ||
f4b79972 EZ |
477 | Emacs 20.5 and later work on SPARC GNU/Linux with the 32-bit ABI. |
478 | As of release 2.95, GCC doesn't work properly with the 64-bit ABI | |
479 | (applicable on UltraSPARC), but that isn't the default mode. | |
480 | ||
481 | Emacs 20.3 fails to build on Solaris 2.5 if you use GCC 2.7.2.3. | |
482 | Installing GCC 2.8 fixes the problem. | |
483 | ||
484 | 19.32 works on Solaris 2.4 and 2.5. On Solaris 2.5 | |
485 | you may need one of these patches to prevent Emacs from crashing | |
486 | when it starts up: | |
c60ee5e7 JB |
487 | 103093-03: [README] SunOS 5.5: kernel patch (2140557 bytes) |
488 | 102832-01: [README] OpenWindows 3.5: Xview Jumbo Patch (4181613 bytes) | |
f4b79972 EZ |
489 | 103242-04: [README] SunOS 5.5: linker patch (595363 bytes) |
490 | ||
491 | There are reports that using SunSoft cc with -xO4 -xdepend produces | |
492 | bad code for some part of Emacs. | |
493 | ||
f4b79972 EZ |
494 | Some people report that Emacs crashes immediately on startup when |
495 | used with a non-X terminal, but we think this is due to compiling | |
496 | with GCC and failing to use GCC's "fixed" system header files. | |
497 | ||
498 | Some Sun versions of X windows use the clipboard, not the selections, | |
499 | for transferring text between clients. The Cut, Paste and Copy items | |
500 | in the menu bar Edit menu work with the clipboard. | |
501 | ||
f4b79972 EZ |
502 | A user reported irreproducible segmentation faults when using 19.29 |
503 | on Solaris 2.3 and 2.4 after compiling it with the Sun compiler. | |
504 | The problem went away when GCC 2.7.0 was used instead. We do not know | |
505 | whether anything in Emacs is partly to blame for this. | |
506 | ||
f4b79972 EZ |
507 | If you compile with Sun's ANSI compiler acc, you need additional options |
508 | when linking temacs, such as | |
509 | /usr/lang/SC2.0.1/values-Xt.o -L/usr/lang/SC2.0.1/cg87 -L/usr/lang/SC2.0.1 | |
510 | (those should be added just before the libraries) and you need to | |
511 | add -lansi just before -lc. The precise file names depend on the | |
512 | compiler version, so we cannot easily arrange to supply them. | |
513 | ||
f4b79972 EZ |
514 | On Solaris 2, you need to install patch 100947-02 to fix a system bug. |
515 | Presumably this patch comes from Sun. You must alter the definition of | |
516 | LD_SWITCH_SYSTEM if your X11 libraries are not in /usr/openwin/lib. | |
517 | You must make sure that /usr/ucblib is not in your LD_LIBRARY_PATH. | |
518 | ||
519 | On Solaris 2.2, with a multiprocessor SparcCenter 1000, Emacs 19.17 is | |
520 | reported to hang sometimes if it exits while it has one or more | |
521 | subprocesses (e.g. the `wakeup' subprocess used by `display-time'). | |
522 | Emacs and its subprocesses become zombies, and in their zombie state | |
523 | slow down their host and disable rlogin and telnet. This is most | |
524 | likely due to a bug in Solaris 2.2's multiprocessor support, | |
525 | rather than an Emacs bug. | |
526 | ||
527 | On Solaris, do not use /usr/ucb/cc. Use /opt/SUNWspro/bin/cc. Make | |
528 | sure that /usr/ccs/bin and /opt/SUNWspro/bin are in your PATH before | |
529 | /usr/ucb. (Most free software packages have the same requirement on | |
67b33cb0 GM |
530 | Solaris.) With this compiler, use `/opt/SUNWspro/bin/cc -E' as the |
531 | preprocessor. If this inserts extra whitespace into its output (see | |
532 | the PROBLEMS file) then add the option `-Xs'. | |
f4b79972 EZ |
533 | |
534 | If you have trouble using open-network-stream, get the distribution | |
535 | of `bind' (the BSD name-server), build libresolv.a, and link Emacs | |
536 | with -lresolv, by copying the #definition of LIBS_SYSTEM in | |
537 | src/s/sunos4-1.h to src/config.h. This problem is due to obsolete | |
538 | software in the nonshared standard library. | |
539 | ||
f4b79972 EZ |
540 | Note that Emacs on a Sun is not really as big as it looks. |
541 | As dumped, it includes around 200k of zeros between the | |
542 | original text section and the original data section | |
543 | (now remapped as part of the text). These are never | |
544 | swapped in. | |
545 | ||
f4b79972 EZ |
546 | Tadpole 68K (m68k-tadpole-sysv) |
547 | ||
548 | Changes merged in 19.1. | |
549 | ||
550 | You may need to edit Makefile to change the variables LIBDIR and | |
551 | BINDIR from /usr/local to /usr/contrib. | |
552 | ||
553 | To give movemail access to /usr/mail, you may need to execute | |
554 | ||
555 | chmod 2755 etc/movemail; chgrp mail etc/movemail | |
556 | ||
f4b79972 EZ |
557 | Vaxen running Berkeley Unix (vax-dec-bsd4.1, vax-dec-bsd4.2, vax-dec-bsd4.3), |
558 | Ultrix (vax-dec-ultrix), | |
559 | System V (vax-dec-sysv0, vax-dec-sysv2), or | |
560 | VMS (vax-dec-vms) | |
561 | ||
562 | Works. | |
563 | ||
564 | See under Ultrix for problems using X windows on Ultrix (vax-dec-ultrix). | |
565 | ||
566 | 18.27 worked on System V rel 2 (vax-dec-sysv2). | |
567 | ||
568 | 18.36 worked on System V rel 0 (vax-dec-sysv0). | |
569 | ||
570 | Richard Levitte <levitte@e.kth.se> distributes a set of patches to | |
571 | Emacs 18.59 to make it work nicely under VMS. Emacs 19 probably | |
572 | won't work very well, or even compile. Levitte is working on a | |
573 | port, so these problems should be fixed in the near future. | |
574 | ||
f4b79972 EZ |
575 | \f |
576 | Here are notes about some of the systems supported: | |
577 | ||
f4b79972 EZ |
578 | Linux (actually GNU/Linux) |
579 | ||
580 | Most of the complete systems which use the Linux kernel are close | |
581 | enough to the GNU system to be considered variant GNU systems. We | |
582 | call them "Linux-based GNU systems," or GNU/Linux for short. | |
583 | ||
584 | It is not coincidence that many of the other components used with | |
585 | Linux--including GNU Emacs--were developed specifically for the GNU | |
586 | project. The GNU project was launched in 1984 to develop a free | |
587 | complete Unix-like operating system. To reach this goal, we had to | |
588 | develop whatever system components were not available as freely | |
589 | redistributable software from some other source. | |
590 | ||
591 | The GNU project wants users of GNU/Linux systems to be aware of how | |
592 | these systems relate to the GNU project, because that will help | |
593 | spread the GNU idea that software should be free--and thus encourage | |
594 | people to write more free software. See the file LINUX-GNU in this | |
595 | directory for more explanation. | |
596 | ||
597 | Microport | |
598 | ||
599 | See under "Intel 386". | |
600 | ||
601 | MSDOS | |
602 | ||
603 | For installation on MSDOS, see the file INSTALL (search for `MSDOG', | |
604 | near the end of the file). See the "MS-DOS" chapter of the manual | |
605 | for information about using Emacs on MSDOS. | |
606 | ||
607 | SCO Unix | |
f4b79972 EZ |
608 | |
609 | If you are using MMDF instead of sendmail, you need to remove | |
610 | /usr/lib/sendmail or modify lisp/paths.el before compiling. | |
611 | lisp/paths.el (which is loaded during the build) will attempt to use | |
612 | sendmail if it exists. | |
613 | ||
614 | If you are using SMAIL, you need to define the macro | |
615 | SMAIL in config.h. | |
616 | ||
f4b79972 EZ |
617 | System V rel 4.0.3 and 4.0.4 (usg5.4) |
618 | ||
619 | Supported, including shared libraries for ELF, but ptys do not work | |
620 | because TIOCGPGRP fails to work on ptys (but Dell 2.2 seems to have | |
621 | fixed this). This failure is probably due to a misunderstanding of | |
622 | the consequences of the POSIX spec: many system designers mistakenly | |
623 | think that POSIX requires this feature to fail. This is untrue; | |
624 | ptys are an extension, and POSIX says that extensions *when used* | |
625 | may change the action of standard facilities in any fashion. | |
626 | ||
627 | If you get compilation errors about wrong number of | |
628 | arguments to getpgrp, define GETPGRP_NO_ARG. | |
629 | ||
630 | The standard C preprocessor may generate xmakefile incorrectly. However, | |
631 | /lib/cpp will work, so use `make CPP=/lib/cpp'. Standard cpp | |
632 | seems to work OK under Dell 2.2. | |
633 | ||
634 | Some versions 3 and earlier of V.4, on the Intel 386 and 860, had | |
635 | problems in the X11 libraries. These prevent Emacs from working | |
636 | with X. You can use Emacs with X provided your copy of X is based | |
637 | on X11 release 4 or newer, or is Dell's 2.2 (which is a 4.0.3). | |
638 | Unfortunately, the only way you can tell whether your X11 library is | |
639 | new enough is to try compiling Emacs to use X. If emacs runs, your | |
640 | X11 library is new enough. | |
641 | ||
642 | In this context, GSV4 and GSV4i are alternate names for X11R4. | |
643 | OL2.* is X11R3 based. OL3 is in between X11R3 and X11R4, and may or | |
644 | may not work, depending on who made the Unix system. If the library | |
645 | libXol is part of the X distribution, then you have X11R3 and Emacs | |
646 | won't work with X. | |
647 | ||
648 | Most versions of V.4 support sockets. If `/usr/lib/libsocket.so' | |
649 | exists, your system supports them. If yours does not, you must add | |
650 | #undef HAVE_SOCKETS in config.h, after the inclusion of s-usg5-4.h. | |
651 | (Any system that supports Internet should implement sockets.) | |
652 | ||
f4b79972 EZ |
653 | VMS (vmsM.N) |
654 | ||
655 | Richard Levitte <levitte@e.kth.se> distributes a set of patches to | |
656 | Emacs 18.59 to make it work nicely under VMS. Emacs 19 probably | |
657 | won't work very well, or even compile. Levitte is working on a | |
658 | port, so these problems should be fixed in the near future. | |
659 | ||
660 | Note that Emacs for VMS is usually distributed in a special VMS | |
661 | distribution. See the file ../vms/VMSINSTALL for info on moving | |
662 | Unix distributions to VMS, and other VMS-related topics. | |
663 | ||
664 | Windows NT/95/98/ME/2000 | |
665 | ||
666 | For installation on all versions of the MS-Windows platform, see the | |
667 | file nt/INSTALL. | |
668 | ||
745377e8 GM |
669 | X86_64 GNU/Linux |
670 | ||
671 | No special procedures should be needed to build a 64-bit Emacs. To | |
672 | build a 32-bit Emacs, first ensure that the necessary 32-bit system | |
673 | libraries and include files are installed. Then use: | |
674 | ||
675 | env CC="gcc -m32" ./configure --build=i386-linux-gnu \ | |
676 | --x-libraries=/usr/X11R6/lib | |
677 | ||
678 | (using the location of the 32-bit X libraries on your system). | |
679 | ||
e10bf4de EZ |
680 | Support for the following obsolete platforms was removed in Emacs 23.1 |
681 | (the names in parentheses state the files in src/ that were removed): | |
682 | ||
683 | Apollo SR10.x (unexapollo.c) | |
684 | Convex (unexconvex.c and m/convex.c) | |
685 | Xenix (unexenix.c and s/xenix.h) | |
686 | Iris (unexmips.c m/iris4d.h m/irist.h s/iris3-5.h s/iris3-6.h) | |
687 | Gould (m/gould*) | |
688 | Siemens machines running Sinix (unexsni.c) | |
689 | Harris CXUX (s/cxux*) | |
690 | ESIX, a variant of v.5.3 for the 386 (s/esix*) | |
691 | Interactive (ISC) Unix (s/isc*) | |
692 | Sony News (s/newsos*) | |
693 | RTU 3.0, ucb universe (s/rtu.h) | |
694 | UniSoft's UniPlus 5.2 (s/uniplus.h) | |
695 | UMAX (s/umax.h) | |
696 | AT&T UNIX PC model 7300 (m/7300.h) | |
697 | Acorn | |
698 | Alliant (m/alliant*) | |
699 | Amdahl (m/amdahl*) | |
700 | Altos 3068 Unix System V Release 2 (m/altos.h) | |
701 | Apollo (m/apollo.h) | |
702 | AT&T 3b (m/att3b.h) | |
703 | Aviion (m/aviion*) | |
f2a77c3a DN |
704 | Berkeley 4.1 (m/bsd4.1.h) |
705 | Berkeley 4.2 (m/bsd4.2.h) | |
706 | Berkeley 4.3 (m/bsd4.3.h) | |
e10bf4de EZ |
707 | Celerity (m/celerity.h) |
708 | clipper (m/clipper.h) | |
709 | convergent S series (m/cnvrgnt.h) | |
710 | cydra (m/cydra5.h) | |
711 | Motorola System V/88 machines (m/delta88k.h) | |
712 | Bull DPX/2 range (m/dpx2.h) | |
713 | Dual machines using unisoft port (m/dual.h) | |
714 | Elxsi machine (running enix) (m/elxsi.h) | |
715 | Fujitsu F301 machine (m/f301.h) | |
716 | i860 (m/i860.h) | |
717 | ibm ps/2 aix386 (m/ibmps2-aix.h) | |
718 | ISI 68000's (m/is*) | |
719 | Masscomp 5000 series running RTU, ucb universe (m/masscomp.h) | |
720 | Megatest 68000's (m/mega68.h) | |
721 | Whitechapel Computer Works MG1 (ns16000 based) (m/mg1.h) | |
722 | Harris Night Hawk Series 1200 and Series 3000 (m/nh3000.h m/nh4000.h) | |
723 | ns16000 (m/ns16000.h) | |
724 | National Semiconductor 32000, running Genix (m/ns32000.h) | |
725 | TI Nu machines using system V (m/nu.h) | |
726 | HLH Orion (m/orion.h m/orion105.h) | |
727 | Paragon i860 (m/paragon.h) | |
728 | PFU A-series (m/pfa50.h) | |
729 | Plexus running System V.2 (m/plexus.h) | |
730 | pyramid. (m/pyramid.h) | |
731 | sh3el (m/sh3el.h) | |
732 | Bull SPS-7 (m/sps7.h) | |
733 | Hitachi SR2001/SR2201 (m/sr2k.h) | |
734 | Stride (m/stride.h) | |
735 | Sun 1 (m/sun1.h) | |
736 | Sun 2 (m/sun2.h) | |
737 | SEQUENT SYMMETRY (m/symmetry.h) | |
738 | Tadpole 68k machines (m/tad68k.h) | |
739 | tahoe (m/tahoe.h) | |
740 | targon31 (m/targon31.h) | |
741 | Tektronix* (m/tek4300.h m/tekxd88.h) | |
742 | NCR Tower 32 running System V.2 (m/tower32.h) | |
743 | NCR Tower 32 running System V.3 (m/tower32v3.h) | |
744 | U-station (Nihon Unisys, SS5E; Sumitomo Denkoh, U-Station E30) (m/ustation.h) | |
745 | Wicat (m/wicat.h) | |
746 | Honeywell XPS100 running UNIX System V.2 (m/xps100.h) | |
747 | Data General's DG/UX (s/dgux*) | |
748 | Irix before version 6 | |
749 | osf1 (s/osf*) | |
750 | SunOS4 (s/sunos*) | |
751 | RISCiX (s/riscix*) | |
752 | SCO 3.2v4 (s/sco4.h) | |
753 | SCO 3.2v5 (s/sco5.h) | |
754 | Sun's 386-based RoadRunner (m/sun386.h) | |
755 | Sun3 machines (m/sun3*) | |
0d5998d1 | 756 | Integrated Solutions 386 machine (m/is386.h) |
f2a77c3a DN |
757 | Integrated Solutions `Optimum V' -- m68k-isi-bsd4.2 or -bsd4.3 |
758 | Hewlett-Packard 9000 series 200 or 300 -- m68k-hp-bsd or m68k-hp-hpux or m68k-hp-netbsd | |
759 | IBM PS/2 -- i386-ibm-aix1.1 or i386-ibm-aix1.2 | |
760 | GEC 63 -- local-gec63-usg5.2 | |
761 | Tandem Integrity S2 -- mips-tandem-sysv | |
762 | System V rel 0 -- usg5.0 | |
763 | System V rel 2 -- usg5.2 | |
764 | System V rel 2.2 -- usg5.2.2 | |
765 | System V rel 3 -- usg5.3 | |
766 | Ultrix -- bsd4.3 | |
e10bf4de | 767 | |
f4b79972 EZ |
768 | \f |
769 | Local variables: | |
48e7e123 | 770 | mode: text |
f4b79972 EZ |
771 | fill-prefix: " " |
772 | End: | |
ab5796a9 | 773 | |
5b87ad55 GM |
774 | This file is part of GNU Emacs. |
775 | ||
ab73e885 | 776 | GNU Emacs is free software: you can redistribute it and/or modify |
5b87ad55 | 777 | it under the terms of the GNU General Public License as published by |
ab73e885 GM |
778 | the Free Software Foundation, either version 3 of the License, or |
779 | (at your option) any later version. | |
5b87ad55 GM |
780 | |
781 | GNU Emacs is distributed in the hope that it will be useful, | |
782 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
783 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
784 | GNU General Public License for more details. | |
785 | ||
786 | You should have received a copy of the GNU General Public License | |
ab73e885 | 787 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
c8aeb93e | 788 | |
ab5796a9 | 789 | arch-tag: 7d2e93c7-e982-40ec-9055-3cd064042473 |