comparison PROBLEMS @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children 8d2a9b52c682
comparison
equal deleted inserted replaced
-1:000000000000 0:376386a54a3c
1 This file describes various problems that have been encountered
2 in compiling, installing and running XEmacs.
3
4 (synched up with: 19.30)
5
6 * On Irix, I don't see the toolbar icons and I'm getting lots of
7 entries in the warnings buffer.
8
9 SGI ships a really old Xpm library in /usr/lib which does not work at
10 all well with XEmacs. The solution is to install your own copy of the
11 latest version of Xpm somewhere and then use the --site-includes and
12 --site-libraries flags to tell configure where to find it.
13
14 * On Digital UNIX, the DEC C compiler might have a problem compiling
15 some files.
16
17 In particular, src/extents.c and src/faces.c might cause the DEC C
18 compiler to abort. When this happens: cd src, compile the files by
19 hand, cd .., and redo the "make" command. When recompiling the files by
20 hand, use the old C compiler for the following versions of Digital UNIX:
21 - V3.n: Remove "-migrate" from the compile command.
22 - V4.n: Add "-oldc" to the compile command.
23
24 * On HPUX, the HP C compiler might have a problem compiling some files
25 with optimization.
26
27 Richard Cognot <cognot@ensg.u-nancy.fr> writes:
28
29 Had to drop once again to level 2 optimization, at least to
30 compile lstream.c. Otherwise, I get a "variable is void: \if"
31 problem while dumping (this is a problem I already reported
32 with vanilla hpux 10.01 and 9.07, which went away after
33 applying patches for the C compiler). Trouble is I still
34 haven't found the same patch for hpux 10.10, and I don't
35 remember the patch numbers. I think potential XEmacs builders
36 on HP should be warned about this.
37
38 * On HPUX, you get "poll: Interrupted system call" message in the window
39 where XEmacs was launched.
40
41 Richard Cognot <cognot@ensg.u-nancy.fr> writes:
42
43 I get a very strange problem when linking libc.a
44 dynamically: every event (mouse, keyboard, expose...) results
45 in a "poll: Interrupted system call" message in the window
46 where XEmacs was launched. Forcing a static link of libc.a
47 alone by adding /usr/lib/libc.a at the end of the link line
48 solves this. Note that my 9.07 build of 19.14b17 and my (old)
49 build of 19.13 both exhibit the same behaviour. I've tried
50 various hpux patches to no avail. If this problem cannot be
51 solved before the release date, binary kits for HP *must* be
52 linked statically against libc, otherwise this problem will
53 show up. (This is directed at whoever will volunteer for this
54 kit, as I won't be available to do it, unless 19.14 gets
55 delayed until mid-june ;-). I think this problem will be an FAQ
56 soon after the release otherwise.
57
58 * Native cc on SCO OpenServer 5 is now OK. Icc may still throw you
59 a curve. Here is what Robert Lipe <robertl@arnet.com> says:
60
61 Unlike XEmacs 19.13, building with the native cc on SCO OpenServer 5
62 now produces a functional binary. I will typically build this
63 configuration for COFF with:
64
65 /path_to_XEmacs_source/configure --with-gcc=no \
66 --site-includes=/usr/local/include --site-libraries=/usr/local/lib \
67 --with-xpm --with-xface --with-sound=nas
68
69 This version now supports ELF builds. I highly recommend this to
70 reduce the in-core footprint of XEmacs. This is now how I compile
71 all my test releases. Build it like this:
72
73 /path_to_XEmacs_source/configure --with-gcc=no \
74 --site-includes=/usr/local/include --site-libraries=/usr/local/lib \
75 --with-xpm --with-xface --with-sound=nas --dynamic
76
77 The compiler known as icc [ supplied with the OpenServer 5 Development
78 System ] generates a working binary, but it takes forever to generate
79 XEmacs. ICC also whines more about the code than /bin/cc does. I do
80 believe all its whining is legitimate, however. Note that you do
81 have to 'cd src ; make LD=icc' to avoid linker errors.
82
83 The way I handle the build procedure is:
84
85 /path_to_XEmacs_source/configure --with-gcc=no \
86 --site-includes=/usr/local/include --site-libraries=/usr/local/lib \
87 --with-xpm --with-xface --with-sound=nas --dynamic --compiler="icc"
88
89 *NOTE* I have the xpm, xface, and audio libraries and includes in
90 /usr/local/lib, /usr/local/include. If you don't have these,
91 don't include the "--with-*" arguments in any of my examples.
92
93 In previous versions of XEmacs, you had to override the defaults while
94 compiling font-lock.o and extents.o when building with icc. This seems
95 to no longer be true, but I'm including this old information in case it
96 resurfaces. The process I used was:
97
98 make -k
99 [ procure pizza, beer, repeat ]
100 cd src
101 make CC="icc -W0,-mP1COPT_max_tree_size=3000" font-lock.o extents.o
102 make LD=icc
103
104 If you want sound support, get the tls566 supplement from
105 ftp.sco.com:/TLS or any of its mirrors. It works just groovy
106 with XEmacs.
107
108 The M-x manual-entry is known not to work. If you know Lisp and would
109 like help in making it work, e-mail me at <robertl@dgii.com>
110
111 In earlier releases, gnuserv/gnuclient/gnudoit would open a frame
112 just fine, but the client would lock up and the server would
113 terminate when you used C-x # to close the frame. This is now
114 fixed in XEmacs.
115
116 In etc/ there are two files of note. emacskeys.sco and emacsstrs.sco.
117 The comments at the top of emacskeys.sco describe its function, and
118 the emacstrs.sco is a suitable candidate for /usr/lib/keyboard/strings
119 to take advantage of the keyboard map in emacskeys.sco.
120
121 * Don't use -O2 with gcc under Linux without also using
122 -fno-strength-reduce. gcc will generate incorrect code otherwise.
123 This bug is present in at least 2.6.x and 2.7.[0-2]. A patched
124 binary for 2.7.2 is available in
125
126 ftp://tsx-11.mit.edu/pub/linux/packages/GCC/gcc272-no-sr-bug.lbin.tgz
127
128 Or wait for GCC 2.7.3.
129
130 * Under some versions of OSF XEmacs runs fine if built without
131 optimization but will crash randomly if built with optimization.
132 Using 'cc -g' is not sufficient to eliminate all optimization. Try
133 'cc -g -O0' instead.
134
135 * On HP/UX configure selects gcc even though it isn't actually present.
136
137 Some versions of SoftBench have an executable called 'gcc' that is not
138 actually the GNU C compiler. Use the --with-gcc=no flag when running
139 configure.
140
141
142 * When Emacs tries to ring the bell, you get an error like
143
144 audio: sst_open: SETQSIZE" Invalid argument
145 audio: sst_close: SETREG MMR2, Invalid argument
146
147 you have probably compiled using an ANSI C compiler, but with non-ANSI include
148 files. In particular, on Suns, the file /usr/include/sun/audioio.h uses the
149 _IOW macro to define the constant AUDIOSETQSIZE. _IOW in turn uses a K&R
150 preprocessor feature that is now explicitly forbidden in ANSI preprocessors,
151 namely substitution inside character constants. All ANSI C compilers must
152 provide a workaround for this problem. Lucid's C compiler is shipped with a
153 new set of system include files. If you are using GCC, there is a script
154 called fixincludes that creates new versions of some system include files that
155 use this obsolete feature.
156
157 * The `Alt' key doesn't behave as `Meta' when running DECwindows.
158
159 The default DEC keyboard mapping has the Alt keys set up to generate the
160 keysym `Multi_key', which has a meaning to xemacs which is distinct from that
161 of the `Meta_L' and `Meta-R' keysyms. A second problem is that certain keys
162 have the Mod2 modifier attached to them for no adequately explored reason.
163 The correct fix is to pass this file to xmodmap upon starting X:
164
165 clear mod2
166 keysym Multi_key = Alt_L
167 add mod1 = Alt_L
168 add mod1 = Alt_R
169
170 * I get complaints about the mapping of my HP keyboard at startup, but I
171 haven't changed anything.
172
173 The default HP keymap is set up to have Mod1 assigned to two different keys:
174 Meta_L and Mode_switch (even though there is not actually a Mode_switch key on
175 the keyboard -- it uses an "imaginary" keycode.) There actually is a reason
176 for this, but it's not a good one. The correct fix is to execute this command
177 upon starting X:
178
179 xmodmap -e 'remove mod1 = Mode_switch'
180
181 * I have focus problems when I use `M-o' to switch to another screen without
182 using the mouse.
183
184 The focus issues with a program like XEmacs, which has multiple homogeneous
185 top-level windows, are very complicated, and as a result, most window managers
186 don't implement them correctly.
187
188 The R4/R5 version of twm (and all of its descendants) had buggy focus
189 handling; there is a patch in .../xemacs/etc/twm-patch which fixes this.
190 Sufficiently recent versions of tvtwm do not need this patch, but most other
191 versions of twm do. If you need to apply this patch, please try to get it
192 integrated by the maintainer of whichever version of twm you're using.
193
194 In addition, if you're using twm, make sure you have not specified
195 "NoTitleFocus" in your .tvtwmrc file. The very nature of this option makes
196 twm do some illegal focus tricks, even with the patch.
197
198 It is known that olwm and olvwm are buggy, and in different ways. If you're
199 using click-to-type mode, try using point-to-type, or vice versa.
200
201 In older versions of NCDwm, one could not even type at XEmacs windows. This
202 has been fixed in newer versions (2.4.3, and possibly earlier).
203
204 (Many people suggest that XEmacs should warp the mouse when focusing on
205 another screen in point-to-type mode. This is not ICCCM-compliant behavior.
206 Implementing such policy is the responsibility of the window manager itself,
207 it is not legal for a client to do this.)
208
209 * My buffers are full of \000 characters or otherwise corrupt.
210
211 Some compilers have trouble with gmalloc.c and ralloc.c; try recompiling
212 without optimization. If that doesn't work, try recompiling with
213 SYSTEM_MALLOC defined, and/or with REL_ALLOC undefined.
214
215 * Some packages that worked before now cause the error
216 Wrong type argument: arrayp, #<face ... >
217
218 Code which uses the `face' accessor functions must be recompiled with xemacs
219 19.9 or later. The functions whose callers must be recompiled are: face-font,
220 face-foreground, face-background, face-background-pixmap, and face-underline-p.
221 The .elc files generated by version 19.9 will work in 19.6 and 19.8, but older
222 .elc files which contain calls to these functions will not work in 19.9.
223
224 * On Solaris 2.* I get undefined symbols from libcurses.a.
225
226 You probably have /usr/ucblib/ on your LD_LIBRARY_PATH. Do the link with
227 LD_LIBRARY_PATH unset.
228
229 * I don't have `xmkmf' and `imake' on my HP.
230
231 You can get these standard X tools by anonymous FTP to hpcvaaz.cv.hp.com.
232 Essentially all X programs need these.
233
234 * When emacs starts up, I get lots of warnings about unknown keysyms.
235
236 If you are running the prebuilt binaries, the Motif library expects to find
237 certain thing in the XKeysymDB file. This file is normally in /usr/lib/X11/
238 or in /usr/openwin/lib/. If you keep yours in a different place, set the
239 environment variable $XKEYSYMDB to point to it before starting emacs. If
240 you still have the problem after doing that, perhaps your version of X is
241 too old. There is a copy of the MIT X11R5 XKeysymDB file in the emacs `etc'
242 directory. Try using that one.
243
244 * My X resources used to work, and now some of them are being ignored.
245
246 Check the resources in .../etc/Emacs.ad (which is the same as the file
247 sample.Xdefaults). Perhaps some of the default resources built in to
248 emacs are now overriding your existing resources. Copy and edit the
249 resources in Emacs.ad as necessary.
250
251 * Solaris 2.3 /bin/sh coredumps during configuration.
252
253 This only occurs if you have LANG != C. This is a known bug with
254 /bin/sh fixed by installing Patch-ID# 101613-01.
255
256 * "Cannot find callback list" messages from dialog boxes on HPUX, in
257 Emacs built with Motif.
258
259 This problem resulted from a bug in GCC 2.4.5. Newer GCC versions
260 such as 2.7.0 fix the problem.
261
262 * On Irix 6.0, make tries (and fails) to build a program named unexelfsgi
263
264 A compiler bug inserts spaces into the string "unexelfsgi . o"
265 in src/Makefile. Edit src/Makefile, after configure is run,
266 find that string, and take out the spaces.
267
268 Compiler fixes in Irix 6.0.1 should eliminate this problem.
269
270 * With certain fonts, when the cursor appears on a character, the
271 character doesn't appear--you get a solid box instead.
272
273 One user on a Linux-based GNU system reported that this problem went
274 away with installation of a new X server. The failing server was
275 XFree86 3.1.1. XFree86 3.1.2 works.
276
277 * On SunOS 4.1.3, Emacs unpredictably crashes in _yp_dobind_soft.
278
279 This happens if you configure Emacs specifying just `sparc-sun-sunos4'
280 on a system that is version 4.1.3. You must specify the precise
281 version number (or let configure figure out the configuration, which
282 it can do perfectly well for SunOS).
283
284 * On SunOS 4, Emacs processes keep going after you kill the X server
285 (or log out, if you logged in using X).
286
287 Someone reported that recompiling with GCC 2.7.0 fixed this problem.
288
289 * On AIX 4, some programs fail when run in a Shell buffer
290 with an error message like No terminfo entry for "unknown".
291
292 On AIX, many terminal type definitions are not installed by default.
293 `unknown' is one of them. Install the "Special Generic Terminal
294 Definitions" to make them defined.
295
296 * On SunOS, you get linker errors
297 ld: Undefined symbol
298 _get_wmShellWidgetClass
299 _get_applicationShellWidgetClass
300
301 The fix to this is to install patch 100573 for OpenWindows 3.0
302 or link libXmu statically.
303
304 * On AIX 4.1.2, linker error messages such as
305 ld: 0711-212 SEVERE ERROR: Symbol .__quous, found in the global symbol table
306 of archive /usr/lib/libIM.a, was not defined in archive member shr.o.
307
308 This is a problem in libIM.a. You can work around it by executing
309 these shell commands in the src subdirectory of the directory where
310 you build Emacs:
311
312 cp /usr/lib/libIM.a .
313 chmod 664 libIM.a
314 ranlib libIM.a
315
316 Then change -lIM to ./libIM.a in the command to link temacs (in
317 Makefile).
318
319 * Unpredictable segmentation faults on Solaris 2.3 and 2.4.
320
321 A user reported that this happened in 19.29 when it was compiled with
322 the Sun compiler, but not when he recompiled with GCC 2.7.0.
323
324 We do not know whether something in Emacs is partly to blame for this.
325
326 * Emacs exits with "X protocol error" when run with an X server for
327 Windows.
328
329 A certain X server for Windows had a bug which caused this.
330 Supposedly the newer 32-bit version of this server doesn't have the
331 problem.
332
333 * A position you specified in .Xdefaults is ignored, using twm.
334
335 twm normally ignores "program-specified" positions.
336 You can tell it to obey them with this command in your `.twmrc' file:
337
338 UsePPosition "on" #allow clents to request a position
339
340 * Compiling lib-src says there is no rule to make test-distrib.c.
341
342 This results from a bug in a VERY old version of GNU Sed. To solve
343 the problem, install the current version of GNU Sed, then rerun
344 Emacs's configure script.
345
346 * On Sunos 4.1.1, there are errors compiling sysdep.c.
347
348 If you get errors such as
349
350 "sysdep.c", line 2017: undefined structure or union
351 "sysdep.c", line 2017: undefined structure or union
352 "sysdep.c", line 2019: nodename undefined
353
354 This can result from defining LD_LIBRARY_PATH. It is very tricky
355 to use that environment variable with Emacs. The Emacs configure
356 script links many test programs with the system libraries; you must
357 make sure that the libraries available to configure are the same
358 ones available when you build Emacs.
359
360 * The right Alt key works wrong on German HP keyboards (and perhaps
361 other non-English HP keyboards too).
362
363 This is because HPUX defines the modifiers wrong in X. Here is a
364 shell script to fix the problem; be sure that it is run after VUE
365 configures the X server.
366
367 xmodmap 2> /dev/null - << EOF
368 keysym Alt_L = Meta_L
369 keysym Alt_R = Meta_R
370 EOF
371
372 xmodmap - << EOF
373 clear mod1
374 keysym Mode_switch = NoSymbol
375 add mod1 = Meta_L
376 keysym Meta_R = Mode_switch
377 add mod2 = Mode_switch
378 EOF
379
380 * The Emacs window disappears when you type M-q.
381
382 Some versions of the Open Look window manager interpret M-q as a quit
383 command for whatever window you are typing at. If you want to use
384 Emacs with that window manager, you should try to configure the window
385 manager to use some other command. You can disable the
386 shortcut keys entirely by adding this line to ~/.OWdefaults:
387
388 OpenWindows.WindowMenuAccelerators: False
389
390 * Emacs does not notice when you release the mouse.
391
392 There are reports that this happened with (some) Microsoft mice and
393 that replacing the mouse made it stop.
394
395 * Trouble using ptys on IRIX, or running out of ptys.
396
397 The program mkpts (which may be in `/usr/adm' or `/usr/sbin') needs to
398 be set-UID to root, or non-root programs like Emacs will not be able
399 to allocate ptys reliably.
400
401 * On Irix 5.2, unexelfsgi.c can't find cmplrs/stsupport.h.
402
403 The file cmplrs/stsupport.h was included in the wrong file set in the
404 Irix 5.2 distribution. You can find it in the optional fileset
405 compiler_dev, or copy it from some other Irix 5.2 system. A kludgy
406 workaround is to change unexelfsgi.c to include sym.h instead of
407 syms.h.
408
409 * Slow startup on Linux.
410
411 People using systems based on the Linux kernel sometimes report that
412 startup takes 10 to 15 seconds longer than `usual'.
413
414 This is because Emacs looks up the host name when it starts.
415 Normally, this takes negligible time; the extra delay is due to
416 improper system configuration. This problem can occur for both
417 networked and non-networked machines.
418
419 Here is how to fix the configuration. It requires being root.
420
421 ** Networked Case
422
423 First, make sure the files `/etc/hosts' and `/etc/host.conf' both
424 exist. The first line in the `/etc/hosts' file should look like this
425 (replace HOSTNAME with your host name):
426
427 127.0.0.1 HOSTNAME
428
429 Also make sure that the `/etc/host.conf' files contains the following
430 lines:
431
432 order hosts, bind
433 multi on
434
435 Any changes, permanent and temporary, to the host name should be
436 indicated in the `/etc/hosts' file, since it acts a limited local
437 database of addresses and names (e.g., some SLIP connections
438 dynamically allocate ip addresses).
439
440 ** Non-Networked Case
441
442 The solution described in the networked case applies here as well.
443 However, if you never intend to network your machine, you can use a
444 simpler solution: create an empty `/etc/host.conf' file. The command
445 `touch /etc/host.conf' suffices to create the file. The `/etc/hosts'
446 file is not necessary with this approach.
447
448 * On Solaris 2.4, Dired hangs and C-g does not work. Or Emacs hangs
449 forever waiting for termination of a subprocess that is a zombie.
450
451 casper@fwi.uva.nl says the problem is in X11R6. Rebuild libX11.so
452 after changing the file xc/config/cf/sunLib.tmpl. Change the lines
453
454 #if ThreadedX
455 #define SharedX11Reqs -lthread
456 #endif
457
458 to:
459
460 #if OSMinorVersion < 4
461 #if ThreadedX
462 #define SharedX11Reqs -lthread
463 #endif
464 #endif
465
466 Be sure also to edit x/config/cf/sun.cf so that OSMinorVersion is 4
467 (as it should be for Solaris 2.4). The file has three definitions for
468 OSMinorVersion: the first is for x86, the second for SPARC under
469 Solaris, and the third for SunOS 4. Make sure to update the
470 definition for your type of machine and system.
471
472 Then do `make Everything' in the top directory of X11R6, to rebuild
473 the makefiles and rebuild X. The X built this way work only on
474 Solaris 2.4, not on 2.3.
475
476 For multithreaded X to work it necessary to install patch
477 101925-02 to fix problems in header files [2.4]. You need
478 to reinstall gcc or re-run just-fixinc after installing that
479 patch.
480
481 However, Frank Rust <frust@iti.cs.tu-bs.de> used a simpler solution:
482 he changed
483 #define ThreadedX YES
484 to
485 #define ThreadedX NO
486 in sun.cf and did `make World' to rebuild X11R6. Removing all
487 `-DXTHREAD*' flags and `-lthread' entries from lib/X11/Makefile and
488 typing 'make install' in that directory also seemed to work.
489
490 * With M-x enable-flow-control, you need to type C-\ twice
491 to do incremental search--a single C-\ gets no response.
492
493 This has been traced to communicating with your machine via kermit,
494 with C-\ as the kermit escape character. One solution is to use
495 another escape character in kermit. One user did
496
497 set escape-character 17
498
499 in his .kermrc file, to make C-q the kermit escape character.
500
501 * The Motif version of Emacs paints the screen a solid color.
502
503 This has been observed to result from the following X resource:
504
505 Emacs*default.attributeFont: -*-courier-medium-r-*-*-*-140-*-*-*-*-iso8859-*
506
507 That the resource has this effect indicates a bug in something, but we
508 do not yet know what. If it is an Emacs bug, we hope someone can
509 explain what the bug is so we can fix it. In the mean time, removing
510 the resource prevents the problem.
511
512 * Emacs gets hung shortly after startup, on Sunos 4.1.3.
513
514 We think this is due to a bug in Sunos. The word is that
515 one of these Sunos patches fixes the bug:
516
517 100075-11 100224-06 100347-03 100482-05 100557-02 100623-03 100804-03 101080-01
518 100103-12 100249-09 100496-02 100564-07 100630-02 100891-10 101134-01
519 100170-09 100296-04 100377-09 100507-04 100567-04 100650-02 101070-01 101145-01
520 100173-10 100305-15 100383-06 100513-04 100570-05 100689-01 101071-03 101200-02
521 100178-09 100338-05 100421-03 100536-02 100584-05 100784-01 101072-01 101207-01
522
523 We don't know which of these patches really matter. If you find out
524 which ones, please inform bug-gnu-emacs@prep.ai.mit.edu.
525
526 * Emacs aborts while starting up, only when run without X.
527
528 This problem often results from compiling Emacs with GCC when GCC was
529 installed incorrectly. The usual error in installing GCC is to
530 specify --includedir=/usr/include. Installation of GCC makes
531 corrected copies of the system header files. GCC is supposed to use
532 the corrected copies in preference to the original system headers.
533 Specifying --includedir=/usr/include causes the original system header
534 files to be used. On some systems, the definition of ioctl in the
535 original system header files is invalid for ANSI C and causes Emacs
536 not to work.
537
538 The fix is to reinstall GCC, and this time do not specify --includedir
539 when you configure it. Then recompile Emacs. Specifying --includedir
540 is appropriate only in very special cases and it should *never* be the
541 same directory where system header files are kept.
542
543 * The Compose key on a DEC keyboard does not work as Meta key.
544
545 This shell command should fix it:
546
547 xmodmap -e 'keycode 0xb1 = Meta_L'
548
549 * Regular expressions matching bugs on SCO systems.
550
551 On SCO, there are problems in regexp matching when Emacs is compiled
552 with the system compiler. The compiler version is "Microsoft C
553 version 6", SCO 4.2.0h Dev Sys Maintenance Supplement 01/06/93; Quick
554 C Compiler Version 1.00.46 (Beta). The solution is to compile with
555 GCC.
556
557 * On Sunos 4, you get the error ld: Undefined symbol __lib_version.
558
559 This is the result of using cc or gcc with the shared library meant
560 for acc (the Sunpro compiler). Check your LD_LIBRARY_PATH and delete
561 /usr/lang/SC2.0.1 or some similar directory.
562
563 * You can't select from submenus.
564
565 On certain systems, mouse-tracking and selection in top-level menus
566 works properly with the X toolkit, but neither of them works when you
567 bring up a submenu (such as Bookmarks or Compare or Apply Patch, in
568 the Files menu).
569
570 This works on most systems. There is speculation that the failure is
571 due to bugs in old versions of X toolkit libraries, but no one really
572 knows. If someone debugs this and finds the precise cause, perhaps a
573 workaround can be found.
574
575 * Unusable default font on SCO 3.2v4.
576
577 The Open Desktop environment comes with default X resource settings
578 that tell Emacs to use a variable-width font. Emacs cannot use such
579 fonts, so it does not work.
580
581 This is caused by the file /usr/lib/X11/app-defaults/ScoTerm, which is
582 the application-specific resource file for the `scoterm' terminal
583 emulator program. It contains several extremely general X resources
584 that affect other programs besides `scoterm'. In particular, these
585 resources affect Emacs also:
586
587 *Font: -*-helvetica-medium-r-*--12-*-p-*
588 *Background: scoBackground
589 *Foreground: scoForeground
590
591 The best solution is to create an application-specific resource file for
592 Emacs, /usr/lib/X11/app-defaults/Emacs, with the following contents:
593
594 Emacs*Font: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
595 Emacs*Background: white
596 Emacs*Foreground: black
597
598 (or whatever other defaults you prefer).
599
600 These resource files are not normally shared across a network of SCO
601 machines; you must create the file on each machine individually.
602
603 * rcs2log gives you the awk error message "too many fields".
604
605 This is due to an arbitrary limit in certain versions of awk.
606 The solution is to use gawk (GNU awk).
607
608 * Emacs is slow using X11R5 on HP/UX.
609
610 This happens if you use the MIT versions of the X libraries--it
611 doesn't run as fast as HP's version. People sometimes use the version
612 because they see the HP version doesn't have the libraries libXaw.a,
613 libXmu.a, libXext.a and others. HP/UX normally doesn't come with
614 those libraries installed. To get good performance, you need to
615 install them and rebuild Emacs.
616
617 * Loading fonts is very slow.
618
619 You might be getting scalable fonts instead of precomputed bitmaps.
620 Known scalable font directories are "Type1" and "Speedo". A font
621 directory contains scalable fonts if it contains the file
622 "fonts.scale".
623
624 If this is so, re-order your X windows font path to put the scalable
625 font directories last. See the documentatoin of `xset' for details.
626
627 With some X servers, it may be necessary to take the scalable font
628 directories out of your path entirely, at least for Emacs 19.26.
629 Changes in the future may make this unnecessary.
630
631 * On AIX 3.2.4, releasing Ctrl/Act key has no effect, if Shift is down.
632
633 Due to a feature of AIX, pressing or releasing the Ctrl/Act key is
634 ignored when the Shift, Alt or AltGr keys are held down. This can
635 lead to the keyboard being "control-locked"--ordinary letters are
636 treated as control characters.
637
638 You can get out of this "control-locked" state by pressing and
639 releasing Ctrl/Act while not pressing or holding any other keys.
640
641 * display-time causes kernel problems on ISC systems.
642
643 Under Interactive Unix versions 3.0.1 and 4.0 (and probably other
644 versions), display-time causes the loss of large numbers of STREVENT
645 cells. Eventually the kernel's supply of these cells is exhausted.
646 This makes emacs and the whole system run slow, and can make other
647 processes die, in particular pcnfsd.
648
649 Other emacs functions that communicate with remote processes may have
650 the same problem. Display-time seems to be far the worst.
651
652 The only known fix: Don't run display-time.
653
654 * On Solaris, C-x doesn't get through to Emacs when you use the console.
655
656 This is a Solaris feature (at least on Intel x86 cpus). Type C-r
657 C-r C-t, to toggle whether C-x gets through to Emacs.
658
659 * Error message `Symbol's value as variable is void: x', followed by
660 segmentation fault and core dump.
661
662 This has been tracked to a bug in tar! People report that tar erroneously
663 added a line like this at the beginning of files of Lisp code:
664
665 x FILENAME, N bytes, B tape blocks
666
667 If your tar has this problem, install GNU tar--if you can manage to
668 untar it :-).
669
670 * Link failure when using acc on a Sun.
671
672 To use acc, you need additional options just before the libraries, such as
673
674 /usr/lang/SC2.0.1/values-Xt.o -L/usr/lang/SC2.0.1/cg87 -L/usr/lang/SC2.0.1
675
676 and you need to add -lansi just before -lc.
677
678 The precise file names depend on the compiler version, so we
679 cannot easily arrange to supply them.
680
681 * Link failure on IBM AIX 1.3 ptf 0013.
682
683 There is a real duplicate definition of the function `_slibc_free' in
684 the library /lib/libc_s.a (just do nm on it to verify). The
685 workaround/fix is:
686
687 cd /lib
688 ar xv libc_s.a NLtmtime.o
689 ar dv libc_s.a NLtmtime.o
690
691 * Undefined symbols _dlopen, _dlsym and/or _dlclose on a Sun.
692
693 If you see undefined symbols _dlopen, _dlsym, or _dlclose when linking
694 with -lX11, compile and link against the file mit/util/misc/dlsym.c in
695 the MIT X11R5 distribution. Alternatively, link temacs using shared
696 libraries with s/sunos4shr.h. (This doesn't work if you use the X
697 toolkit.)
698
699 If you get the additional error that the linker could not find
700 lib_version.o, try extracting it from X11/usr/lib/X11/libvim.a in
701 X11R4, then use it in the link.
702
703 * In Shell mode, you get a ^M at the end of every line.
704
705 This happens to people who use tcsh, because it is trying to be too
706 smart. It sees that the Shell uses terminal type `unknown' and turns
707 on the flag to output ^M at the end of each line. You can fix the
708 problem by adding this to your .cshrc file:
709
710 if ($?EMACS) then
711 if ($EMACS == "t") then
712 unset edit
713 stty -icrnl -onlcr -echo susp ^Z
714 endif
715 endif
716
717 * An error message such as `X protocol error: BadMatch (invalid
718 parameter attributes) on protocol request 93'.
719
720 This comes from having an invalid X resource, such as
721 emacs*Cursor: black
722 (which is invalid because it specifies a color name for something
723 that isn't a color.)
724
725 The fix is to correct your X resources.
726
727 * Undefined symbols when linking on Sunos 4.1.
728
729 If you get the undefined symbols _atowc _wcslen, _iswprint, _iswspace,
730 _iswcntrl, _wcscpy, and _wcsncpy, then you need to add -lXwchar after
731 -lXaw in the command that links temacs.
732
733 This problem seems to arise only when the international language
734 extensions to X11R5 are installed.
735
736 * Typing C-c C-c in Shell mode kills your X server.
737
738 This happens with Linux kernel 1.0 thru 1.04, approximately. The workaround is
739 to define SIGNALS_VIA_CHARACTERS in config.h and recompile Emacs.
740 Newer Linux kernel versions don't have this problem.
741
742 * src/Makefile and lib-src/Makefile are truncated--most of the file missing.
743
744 This can happen if configure uses GNU sed version 2.03. That version
745 had a bug. GNU sed version 2.05 works properly.
746
747 * Slow startup on X11R6 with X windows.
748
749 If Emacs takes two minutes to start up on X11R6, see if your X
750 resources specify any Adobe fonts. That causes the type-1 font
751 renderer to start up, even if the font you asked for is not a type-1
752 font.
753
754 One way to avoid this problem is to eliminate the type-1 fonts from
755 your font path, like this:
756
757 xset -fp /usr/X11R6/lib/X11/fonts/Type1/
758
759 * Pull-down menus appear in the wrong place, in the toolkit version of Emacs.
760
761 An X resource of this form can cause the problem:
762
763 Emacs*geometry: 80x55+0+0
764
765 This resource is supposed to apply, and does apply, to the menus
766 individually as well as to Emacs frames. If that is not what you
767 want, rewrite the resource.
768
769 To check thoroughly for such resource specifications, use `xrdb
770 -query' to see what resources the X server records, and also look at
771 the user's ~/.Xdefaults and ~/.Xdefaults-* files.
772
773 * `make install' fails on install-doc with `Error 141'.
774
775 This happens on Ultrix 4.2 due to failure of a pipeline of tar
776 commands. We don't know why they fail, but the bug seems not to be in
777 Emacs. The workaround is to run the shell command in install-doc by
778 hand.
779
780 * Subprocesses remain, hanging but not zombies, on Sunos 5.3.
781
782 A bug in Sunos 5.3 causes Emacs subprocesses to remain after Emacs
783 exits. Sun patch # 101415-02 is part of the fix for this, but it only
784 applies to ptys, and doesn't fix the problem with subprocesses
785 communicating through pipes.
786
787 * Mail is lost when sent to local aliases.
788
789 Many emacs mail user agents (VM and rmail, for instance) use the
790 sendmail.el library. This library can arrange for mail to be
791 delivered by passing messages to the /usr/lib/sendmail (usually)
792 program . In doing so, it passes the '-t' flag to sendmail, which
793 means that the name of the recipient of the message is not on the
794 command line and, therefore, that sendmail must parse the message to
795 obtain the destination address.
796
797 There is a bug in the SunOS4.1.1 and SunOS4.1.3 versions of sendmail.
798 In short, when given the -t flag, the SunOS sendmail won't recognize
799 non-local (i.e. NIS) aliases. It has been reported that the Solaris
800 2.x versions of sendmail do not have this bug. For those using SunOS
801 4.1, the best fix is to install sendmail V8 or IDA sendmail (which
802 have other advantages over the regular sendmail as well). At the time
803 of this writing, these official versions are available:
804
805 Sendmail V8 on ftp.cs.berkeley.edu in /ucb/sendmail:
806 sendmail.8.6.9.base.tar.Z (the base system source & documentation)
807 sendmail.8.6.9.cf.tar.Z (configuration files)
808 sendmail.8.6.9.misc.tar.Z (miscellaneous support programs)
809 sendmail.8.6.9.xdoc.tar.Z (extended documentation, with postscript)
810
811 IDA sendmail on vixen.cso.uiuc.edu in /pub:
812 sendmail-5.67b+IDA-1.5.tar.gz
813
814 * On AIX, you get this message when running Emacs:
815
816 Could not load program emacs
817 Symbol smtcheckinit in csh is undefined
818 Error was: Exec format error
819
820 or this one:
821
822 Could not load program .emacs
823 Symbol _system_con in csh is undefined
824 Symbol _fp_trapsta in csh is undefined
825 Error was: Exec format error
826
827 These can happen when you try to run on AIX 3.2.5 a program that was
828 compiled with 3.2.4. The fix is to recompile.
829
830 * On AIX, you get this compiler error message:
831
832 Processing include file ./XMenuInt.h
833 1501-106: (S) Include file X11/Xlib.h not found.
834
835 This means your system was installed with only the X11 runtime i.d
836 libraries. You have to find your sipo (bootable tape) and install
837 X11Dev... with smit.
838
839 * You "lose characters" after typing Compose Character key.
840
841 This is because the Compose Character key is defined as the keysym
842 Multi_key, and Emacs (seeing that) does the proper X11
843 character-composition processing. If you don't want your Compose key
844 to do that, you can redefine it with xmodmap.
845
846 For example, here's one way to turn it into a Meta key:
847
848 xmodmap -e "keysym Multi_key = Meta_L"
849
850 If all users at your site of a particular keyboard prefer Meta to
851 Compose, you can make the remapping happen automatically by adding the
852 xmodmap command to the xdm setup script for that display.
853
854 * C-z just refreshes the screen instead of suspending Emacs.
855
856 You are probably using a shell that doesn't support job control, even
857 though the system itself is capable of it. Either use a different shell,
858 or set the variable `cannot-suspend' to a non-nil value.
859
860 * Watch out for .emacs files and EMACSLOADPATH environment vars
861
862 These control the actions of Emacs.
863 ~/.emacs is your Emacs init file.
864 EMACSLOADPATH overrides which directories the function
865 "load" will search.
866
867 If you observe strange problems, check for these and get rid
868 of them, then try again.
869
870 * After running emacs once, subsequent invocations crash.
871
872 Some versions of SVR4 have a serious bug in the implementation of the
873 mmap () system call in the kernel; this causes emacs to run correctly
874 the first time, and then crash when run a second time.
875
876 Contact your vendor and ask for the mmap bug fix; in the mean time,
877 you may be able to work around the problem by adding a line to your
878 operating system description file (whose name is reported by the
879 configure script) that reads:
880 #define SYSTEM_MALLOC
881 This makes Emacs use memory less efficiently, but seems to work around
882 the kernel bug.
883
884 * Inability to send an Alt-modified key, when Emacs is communicating
885 directly with an X server.
886
887 If you have tried to bind an Alt-modified key as a command, and it
888 does not work to type the command, the first thing you should check is
889 whether the key is getting through to Emacs. To do this, type C-h c
890 followed by the Alt-modified key. C-h c should say what kind of event
891 it read. If it says it read an Alt-modified key, then make sure you
892 have made the key binding correctly.
893
894 If C-h c reports an event that doesn't have the Alt modifier, it may
895 be because your X server has no key for the Alt modifier. The X
896 server that comes from MIT does not set up the Alt modifier by
897 default.
898
899 If your keyboard has keys named Alt, you can enable them as follows:
900
901 xmodmap -e 'add mod2 = Alt_L'
902 xmodmap -e 'add mod2 = Alt_R'
903
904 If the keyboard has just one key named Alt, then only one of those
905 commands is needed. The modifier `mod2' is a reasonable choice if you
906 are using an unmodified MIT version of X. Otherwise, choose any
907 modifier bit not otherwise used.
908
909 If your keyboard does not have keys named Alt, you can use some other
910 keys. Use the keysym command in xmodmap to turn a function key (or
911 some other 'spare' key) into Alt_L or into Alt_R, and then use the
912 commands show above to make them modifier keys.
913
914 Note that if you have Alt keys but no Meta keys, Emacs translates Alt
915 into Meta. This is because of the great importance of Meta in Emacs.
916
917 * `Pid xxx killed due to text modification or page I/O error'
918
919 On HP/UX, you can get that error when the Emacs executable is on an NFS
920 file system. HP/UX responds this way if it tries to swap in a page and
921 does not get a response from the server within a timeout whose default
922 value is just ten seconds.
923
924 If this happens to you, extend the timeout period.
925
926 * `expand-file-name' fails to work on any but the machine you dumped Emacs on.
927
928 On Ultrix, if you use any of the functions which look up information
929 in the passwd database before dumping Emacs (say, by using
930 expand-file-name in site-init.el), then those functions will not work
931 in the dumped Emacs on any host but the one Emacs was dumped on.
932
933 The solution? Don't use expand-file-name in site-init.el, or in
934 anything it loads. Yuck - some solution.
935
936 I'm not sure why this happens; if you can find out exactly what is
937 going on, and perhaps find a fix or a workaround, please let us know.
938 Perhaps the YP functions cache some information, the cache is included
939 in the dumped Emacs, and is then inaccurate on any other host.
940
941 * On some variants of SVR4, Emacs does not work at all with X.
942
943 Try defining BROKEN_FIONREAD in your config.h file. If this solves
944 the problem, please send a bug report to tell us this is needed; be
945 sure to say exactly what type of machine and system you are using.
946
947 * Emacs fails to understand most Internet host names, even though
948 the names work properly with other programs on the same system.
949 * Emacs won't work with X-windows if the value of DISPLAY is HOSTNAME:0.
950 * GNUs can't make contact with the specified host for nntp.
951
952 This typically happens on Suns and other systems that use shared
953 libraries. The cause is that the site has installed a version of the
954 shared library which uses a name server--but has not installed a
955 similar version of the unshared library which Emacs uses.
956
957 The result is that most programs, using the shared library, work with
958 the nameserver, but Emacs does not.
959
960 The fix is to install an unshared library that corresponds to what you
961 installed in the shared library, and then relink Emacs.
962
963 On SunOS 4.1, simply define HAVE_RES_INIT.
964
965 If you have already installed the name resolver in the file libresolv.a,
966 then you need to compile Emacs to use that library. The easiest way to
967 do this is to add to config.h a definition of LIBS_SYSTEM, LIBS_MACHINE
968 or LIB_STANDARD which uses -lresolv. Watch out! If you redefine a macro
969 that is already in use in your configuration to supply some other libraries,
970 be careful not to lose the others.
971
972 Thus, you could start by adding this to config.h:
973
974 #define LIBS_SYSTEM -lresolv
975
976 Then if this gives you an error for redefining a macro, and you see that
977 the s- file defines LIBS_SYSTEM as -lfoo -lbar, you could change config.h
978 again to say this:
979
980 #define LIBS_SYSTEM -lresolv -lfoo -lbar
981
982 * On a Sun running SunOS 4.1.1, you get this error message from GNU ld:
983
984 /lib/libc.a(_Q_sub.o): Undefined symbol __Q_get_rp_rd referenced from text segment
985
986 The problem is in the Sun shared C library, not in GNU ld.
987
988 The solution is to install Patch-ID# 100267-03 from Sun.
989
990 * SunOS 4.1.2: undefined symbol _get_wmShellWidgetClass
991
992 Apparently the version of libXmu.so.a that Sun ships is hosed: it's missing
993 some stuff that is in libXmu.a (the static version). Sun has a patch for
994 this, but a workaround is to use the static version of libXmu, by changing
995 the link command from "-lXmu" to "-Bstatic -lXmu -Bdynamic". If you have
996 OpenWindows 3.0, ask Sun for these patches:
997 100512-02 4.1.x OpenWindows 3.0 libXt Jumbo patch
998 100573-03 4.1.x OpenWindows 3.0 undefined symbols with shared libXmu
999
1000 * Random other SunOS 4.1.[12] link errors.
1001
1002 The X headers and libraries that Sun ships in /usr/{include,lib}/X11 are
1003 broken. Use the ones in /usr/openwin/{include,lib} instead.
1004
1005 * Bus errors on startup when compiled with Sun's "acc" (in the routine
1006 make_string_internal() called from initialize_environment_alist())
1007
1008 The Sun ANSI compiler doesn't place uninitialized static variables in BSS
1009 space like other compilers do. This breaks emacs. If you want to use acc,
1010 you need to make the file "lastfile.o" be the *first* file in the link
1011 command. Better yet, use Lucid C or GCC.
1012
1013 * The compiler generates lots and lots of syntax errors.
1014
1015 Are you using an ANSI C compiler, like lcc or gcc? The SunOS 4.1 bundled cc
1016 is not ANSI.
1017
1018 If X has not been configured to compile itself using lcc, gcc, or another ANSI
1019 compiler, then you will have to hack the automatically-generated makefile in
1020 the `lwlib' directory by hand to make it use an ANSI compiler.
1021
1022 * When using gcc, you get the error message "undefined symbol __fixunsdfsi".
1023 * When using gcc, you get the error message "undefined symbol __main".
1024
1025 This means that you need to link with the gcc library. It may be called
1026 "gcc-gnulib" or "libgcc.a"; figure out where it is, and define LIB_GCC in
1027 config.h to point to it.
1028
1029 It may also work to use the GCC version of `ld' instead of the standard one.
1030
1031 * When compiling with X11, you get "undefined symbol _XtStrings".
1032
1033 This means that you are trying to link emacs against the X11r4 version of
1034 libXt.a, but you have compiled either Emacs or the code in the lwlib
1035 subdirectory with the X11r5 header files. That doesn't work.
1036
1037 Remember, you can't compile lwlib for r4 and emacs for r5, or vice versa.
1038 They must be in sync.
1039
1040 * Self documentation messages are garbled.
1041
1042 This means that the file `etc/DOC-...' doesn't properly correspond
1043 with the Emacs executable. Redumping Emacs and then installing the
1044 corresponding pair of files should fix the problem.
1045
1046 * Trouble using ptys on AIX.
1047
1048 People often install the pty devices on AIX incorrectly.
1049 Use `smit pty' to reinstall them properly.
1050
1051 * Shell mode on HP/UX gives the message, "`tty`: Ambiguous".
1052
1053 christos@theory.tn.cornell.edu says:
1054
1055 The problem is that in your .cshrc you have something that tries to
1056 execute `tty`. If you are not running the shell on a real tty then
1057 tty will print "not a tty". Csh expects one word in some places,
1058 but tty is giving it back 3.
1059
1060 The solution is to add a pair of quotes around `tty` to make it a single
1061 word:
1062
1063 if (`tty` == "/dev/console")
1064
1065 should be changed to:
1066
1067 if ("`tty`" == "/dev/console")
1068
1069 Even better, move things that set up terminal sections out of .cshrc
1070 and into .login.
1071
1072 * With process-connection-type set to t, each line of subprocess output is
1073 terminated with a ^M, making ange-ftp and GNUS not work.
1074
1075 On SunOS systems, this problem has been seen to be a result of an incomplete
1076 installation of gcc 2.2 which allowed some non-ANSI compatible include files
1077 into the compilation. In particular this affected virtually all ioctl() calls.
1078
1079 * Once you pull down a menu from the menubar, it won't go away.
1080
1081 It has been claimed that this is caused by a bug in certain very old (1990?)
1082 versions of the twm window manager. It doesn't happen with recent vintages,
1083 or with other window managers.
1084
1085 * Emacs ignores the "help" key when running OLWM.
1086
1087 OLWM grabs the help key, and retransmits it to the appropriate client using
1088 XSendEvent. Allowing emacs to react to synthetic events is a security hole,
1089 so this is turned off by default. You can enable it by setting the variable
1090 x-allow-sendevents to t. You can also cause fix this by telling OLWM to not
1091 grab the help key, with the null binding "OpenWindows.KeyboardCommand.Help:".
1092
1093 * Something awful happens when I type M-ESC, instead of `eval-expression'.
1094
1095 MWM intercepts this and several other keys. Turn this off by adding this to
1096 your resources: "mwm*keyBindings: NoKeyBindings".
1097
1098 * Using X Windows, control-shift-leftbutton makes Emacs hang.
1099
1100 Use the shell command `xset bc' to make the old X Menu package work.
1101
1102 * Emacs running under X Windows does not handle mouse clicks.
1103 * `emacs -geometry 80x20' finds a file named `80x20'.
1104
1105 One cause of such problems is having (setq term-file-prefix nil) in
1106 your .emacs file. Another cause is a bad value of EMACSLOADPATH in
1107 the environment.
1108
1109 * Emacs gets error message from linker on Sun.
1110
1111 If the error message says that a symbol such as `f68881_used' or
1112 `ffpa_used' or `start_float' is undefined, this probably indicates
1113 that you have compiled some libraries, such as the X libraries,
1114 with a floating point option other than the default.
1115
1116 It's not terribly hard to make this work with small changes in
1117 crt0.c together with linking with Fcrt1.o, Wcrt1.o or Mcrt1.o.
1118 However, the easiest approach is to build Xlib with the default
1119 floating point option: -fsoft to decide at run time what hardware
1120 is available.
1121
1122 * Keyboard input gets confused after a beep when using a DECserver
1123 as a concentrator.
1124
1125 This problem seems to be a matter of configuring the DECserver to use
1126 7 bit characters rather than 8 bit characters.
1127
1128 * M-x shell persistently reports "Process shell exited abnormally with code 1".
1129
1130 This happened on Suns as a result of what is said to be a bug in Sunos
1131 version 4.0.x. The only fix was to reboot the machine.
1132
1133 * Programs running under terminal emulator do not recognize `emacs'
1134 terminal type.
1135
1136 The cause of this is a shell startup file that sets the TERMCAP
1137 environment variable. The terminal emulator uses that variable to
1138 provide the information on the special terminal type that Emacs
1139 emulates.
1140
1141 Rewrite your shell startup file so that it does not change TERMCAP
1142 in such a case. You could use the following conditional which sets
1143 it only if it is undefined.
1144
1145 if ( ! ${?TERMCAP} ) setenv TERMCAP ~/my-termcap-file
1146
1147 Or you could set TERMCAP only when you set TERM--which should not
1148 happen in a non-login shell.
1149
1150 * Problem with remote X server on Suns.
1151
1152 On a Sun, running Emacs on one machine with the X server on another
1153 may not work if you have used the unshared system libraries. This
1154 is because the unshared libraries fail to use YP for host name lookup.
1155 As a result, the host name you specify may not be recognized.
1156
1157 * Shell mode ignores interrupts on Apollo Domain
1158
1159 You may find that M-x shell prints the following message:
1160
1161 Warning: no access to tty; thus no job control in this shell...
1162
1163 This can happen if there are not enough ptys on your system.
1164 Here is how to make more of them.
1165
1166 % cd /dev
1167 % ls pty*
1168 # shows how many pty's you have. I had 8, named pty0 to pty7)
1169 % /etc/crpty 8
1170 # creates eight new pty's
1171
1172 * Fatal signal in the command temacs -l loadup inc dump
1173
1174 This command is the final stage of building Emacs. It is run by the
1175 Makefile in the src subdirectory, or by build.com on VMS.
1176
1177 It has been known to get fatal errors due to insufficient swapping
1178 space available on the machine.
1179
1180 On 68000's, it has also happened because of bugs in the
1181 subroutine `alloca'. Verify that `alloca' works right, even
1182 for large blocks (many pages).
1183
1184 * test-distrib says that the distribution has been clobbered
1185 * or, temacs prints "Command key out of range 0-127"
1186 * or, temacs runs and dumps xemacs, but xemacs totally fails to work.
1187 * or, temacs gets errors dumping xemacs
1188
1189 This can be because the .elc files have been garbled. Do not be
1190 fooled by the fact that most of a .elc file is text: these are
1191 binary files and can contain all 256 byte values.
1192
1193 In particular `shar' cannot be used for transmitting GNU Emacs.
1194 It typically truncates "lines". What appear to be "lines" in
1195 a binary file can of course be of any length. Even once `shar'
1196 itself is made to work correctly, `sh' discards null characters
1197 when unpacking the shell archive.
1198
1199 I have also seen character \177 changed into \377. I do not know
1200 what transfer means caused this problem. Various network
1201 file transfer programs are suspected of clobbering the high bit.
1202
1203 If you have a copy of Emacs that has been damaged in its
1204 nonprinting characters, you can fix them:
1205
1206 1) Record the names of all the .elc files.
1207 2) Delete all the .elc files.
1208 3) Recompile alloc.c with a value of PURESIZE twice as large.
1209 You might as well save the old alloc.o.
1210 4) Remake xemacs. It should work now.
1211 5) Running xemacs, do Meta-x byte-compile-file repeatedly
1212 to recreate all the .elc files that used to exist.
1213 You may need to increase the value of the variable
1214 max-lisp-eval-depth to succeed in running the compiler interpreted
1215 on certain .el files. 400 was sufficient as of last report.
1216 6) Reinstall the old alloc.o (undoing changes to alloc.c if any)
1217 and remake temacs.
1218 7) Remake xemacs. It should work now, with valid .elc files.
1219
1220 * temacs prints "Pure Lisp storage exhausted"
1221
1222 This means that the Lisp code loaded from the .elc and .el
1223 files during temacs -l loadup inc dump took up more
1224 space than was allocated.
1225
1226 This could be caused by
1227 1) adding code to the preloaded Lisp files
1228 2) adding more preloaded files in loadup.el
1229 3) having a site-init.el or site-load.el which loads files.
1230 Note that ANY site-init.el or site-load.el is nonstandard;
1231 if you have received Emacs from some other site
1232 and it contains a site-init.el or site-load.el file, consider
1233 deleting that file.
1234 4) getting the wrong .el or .elc files
1235 (not from the directory you expected).
1236 5) deleting some .elc files that are supposed to exist.
1237 This would cause the source files (.el files) to be
1238 loaded instead. They take up more room, so you lose.
1239 6) a bug in the Emacs distribution which underestimates
1240 the space required.
1241
1242 If the need for more space is legitimate, use the --puresize option
1243 to `configure' to specify more pure space.
1244
1245 But in some of the cases listed above, this problem is a consequence
1246 of something else that is wrong. Be sure to check and fix the real
1247 problem.
1248
1249 * Changes made to .el files do not take effect.
1250
1251 You may have forgotten to recompile them into .elc files.
1252 Then the old .elc files will be loaded, and your changes
1253 will not be seen. To fix this, do M-x byte-recompile-directory
1254 and specify the directory that contains the Lisp files.
1255
1256 Note that you may get a warning when loading a .elc file that
1257 is older than the corresponding .el file.
1258
1259 * Things which should be bold or italic (such as the initial copyright notice)
1260 are not.
1261
1262 The fonts of the "bold" and "italic" faces are generated from the font of
1263 the "default" face; in this way, your bold and italic fonts will have the
1264 appropriate size and family. However, emacs can only be clever in this
1265 way if you have specified the default font using the XLFD (X Logical Font
1266 Description) format, which looks like
1267
1268 *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
1269
1270 if you use any of the other, less strict font name formats, some of which
1271 look like
1272 lucidasanstypewriter-12
1273 and fixed
1274 and 9x13
1275
1276 then emacs won't be able to guess the names of the "bold" and "italic"
1277 versions. All X fonts can be referred to via XLFD-style names, so you
1278 should use those forms. See the man pages for X(1), xlsfonts(1), and
1279 xfontsel(1).
1280
1281 * The dumped Emacs (xemacs) crashes when run, trying to write pure data.
1282
1283 Two causes have been seen for such problems.
1284
1285 1) On a system where getpagesize is not a system call, it is defined
1286 as a macro. If the definition (in both unexec.c and malloc.c) is wrong,
1287 it can cause problems like this. You might be able to find the correct
1288 value in the man page for a.out (5).
1289
1290 2) Some systems allocate variables declared static among the
1291 initialized variables. Emacs makes all initialized variables in most
1292 of its files pure after dumping, but the variables declared static and
1293 not initialized are not supposed to be pure. On these systems you
1294 may need to add "#define static" to the m- or the s- file.
1295
1296 * Reading and writing files is very very slow.
1297
1298 Try evaluating the form (setq lock-directory nil) and see if that helps.
1299 There is a problem with file-locking on some systems (possibly related
1300 to NFS) that I don't understand. Please send mail to the address
1301 xemacs@xemacs.org if you figure this one out.
1302
1303 * Compilation errors on VMS.
1304
1305 Sorry, XEmacs does not work under VMS. You might consider working on
1306 the port if you really want to have XEmacs work under VMS.
1307
1308 * "Symbol's value as variable is void: unread-command-char".
1309 * "Wrong type argument: arrayp, #<keymap 143 entries>"
1310 * "Wrong type argument: stringp, [#<keypress-event return>]"
1311
1312 There are a few incompatible changes in XEmacs, and these are the
1313 symptoms. Some of the emacs-lisp code you are running needs to be
1314 updated to be compatible with XEmacs.
1315
1316 We have provided modified versions of several popular emacs packages (GNUS,
1317 VM, etc) which are compatible with this version of emacs. Check to make
1318 sure you have not set your load-path so that your private copies of these
1319 packages are being found before the versions in the lisp directory.
1320
1321 Make sure that your load-path and your $EMACSLOADPATH environment variable
1322 are not pointing at an Emacs18 lisp directory. This will cripple emacs.
1323
1324 * rmail or VM gets error getting new mail
1325
1326 rmail and VM get new mail from /usr/spool/mail/$USER using a program
1327 called `movemail'. This program interlocks with /bin/mail using
1328 the protocol defined by /bin/mail.
1329
1330 There are two different protocols in general use. One of them uses
1331 the `flock' system call. The other involves creating a lock file;
1332 `movemail' must be able to write in /usr/spool/mail in order to do
1333 this. You control which one is used by defining, or not defining,
1334 the macro MAIL_USE_FLOCK in config.h or the m- or s- file it includes.
1335 IF YOU DON'T USE THE FORM OF INTERLOCKING THAT IS NORMAL ON YOUR
1336 SYSTEM, YOU CAN LOSE MAIL!
1337
1338 If your system uses the lock file protocol, and fascist restrictions
1339 prevent ordinary users from writing the lock files in /usr/spool/mail,
1340 you may need to make `movemail' setgid to a suitable group such as
1341 `mail'. You can use these commands (as root):
1342
1343 chgrp mail movemail
1344 chmod 2755 movemail
1345
1346 If your system uses the lock file protocol, and fascist restrictions
1347 prevent ordinary users from writing the lock files in /usr/spool/mail,
1348 you may need to make `movemail' setgid to a suitable group such as
1349 `mail'. To do this, use the following commands (as root) after doing the
1350 make install.
1351
1352 chgrp mail movemail
1353 chmod 2755 movemail
1354
1355 Installation normally copies movemail from the build directory to an
1356 installation directory which is usually under /usr/local/lib. The
1357 installed copy of movemail is usually in the directory
1358 /usr/local/lib/emacs/VERSION/TARGET. You must change the group and
1359 mode of the installed copy; changing the group and mode of the build
1360 directory copy is ineffective.
1361
1362 * Emacs spontaneously displays "I-search: " at the bottom of the screen.
1363
1364 This means that Control-S/Control-Q (XON/XOFF) "flow control" is being
1365 used. C-s/C-q flow control is bad for Emacs editors because it takes
1366 away C-s and C-q as user commands. Since editors do not output long
1367 streams of text without user commands, there is no need for a
1368 user-issuable "stop output" command in an editor; therefore, a
1369 properly designed flow control mechanism would transmit all possible
1370 input characters without interference. Designing such a mechanism is
1371 easy, for a person with at least half a brain.
1372
1373 There are three possible reasons why flow control could be taking place:
1374
1375 1) Terminal has not been told to disable flow control
1376 2) Insufficient padding for the terminal in use
1377 3) Some sort of terminal concentrator or line switch is responsible
1378
1379 First of all, many terminals have a set-up mode which controls whether
1380 they generate XON/XOFF flow control characters. This must be set to
1381 "no XON/XOFF" in order for Emacs to work. Sometimes there is an
1382 escape sequence that the computer can send to turn flow control off
1383 and on. If so, perhaps the termcap `ti' string should turn flow
1384 control off, and the `te' string should turn it on.
1385
1386 Once the terminal has been told "no flow control", you may find it
1387 needs more padding. The amount of padding Emacs sends is controlled
1388 by the termcap entry for the terminal in use, and by the output baud
1389 rate as known by the kernel. The shell command `stty' will print
1390 your output baud rate; `stty' with suitable arguments will set it if
1391 it is wrong. Setting to a higher speed causes increased padding. If
1392 the results are wrong for the correct speed, there is probably a
1393 problem in the termcap entry. You must speak to a local Unix wizard
1394 to fix this. Perhaps you are just using the wrong terminal type.
1395
1396 For terminals that lack a "no flow control" mode, sometimes just
1397 giving lots of padding will prevent actual generation of flow control
1398 codes. You might as well try it.
1399
1400 If you are really unlucky, your terminal is connected to the computer
1401 through a concentrator which sends XON/XOFF flow control to the
1402 computer, or it insists on sending flow control itself no matter how
1403 much padding you give it. Unless you can figure out how to turn flow
1404 control off on this concentrator (again, refer to your local wizard),
1405 you are screwed! You should have the terminal or concentrator
1406 replaced with a properly designed one. In the mean time, some drastic
1407 measures can make Emacs semi-work.
1408
1409 You can make Emacs ignore C-s and C-q and let the operating system
1410 handle them. To do this on a per-session basis, just type M-x
1411 enable-flow-control RET. You will see a message that C-\ and C-^ are
1412 now translated to C-s and C-q. (Use the same command M-x
1413 enable-flow-control to turn *off* this special mode. It toggles flow
1414 control handling.)
1415
1416 If C-\ and C-^ are inconvenient for you (for example, if one of them
1417 is the escape character of your terminal concentrator), you can choose
1418 other characters by setting the variables flow-control-c-s-replacement
1419 and flow-control-c-q-replacement. But choose carefully, since all
1420 other control characters are already used by emacs.
1421
1422 IMPORTANT: if you type C-s by accident while flow control is enabled,
1423 Emacs output will freeze, and you will have to remember to type C-q in
1424 order to continue.
1425
1426 If you work in an environment where a majority of terminals of a
1427 certain type are flow control hobbled, you can use the function
1428 `enable-flow-control-on' to turn on this flow control avoidance scheme
1429 automatically. Here is an example:
1430
1431 (enable-flow-control-on "vt200" "vt300" "vt101" "vt131")
1432
1433 If this isn't quite correct (e.g. you have a mixture of flow-control hobbled
1434 and good vt200 terminals), you can still run enable-flow-control
1435 manually.
1436
1437 I have no intention of ever redesigning the Emacs command set for the
1438 assumption that terminals use C-s/C-q flow control. XON/XOFF flow
1439 control technique is a bad design, and terminals that need it are bad
1440 merchandise and should not be purchased. Now that X is becoming
1441 widespread, XON/XOFF seems to be on the way out. If you can get some
1442 use out of GNU Emacs on inferior terminals, more power to you, but I
1443 will not make Emacs worse for properly designed systems for the sake
1444 of inferior systems.
1445
1446 * Control-S and Control-Q commands are ignored completely.
1447
1448 For some reason, your system is using brain-damaged C-s/C-q flow
1449 control despite Emacs's attempts to turn it off. Perhaps your
1450 terminal is connected to the computer through a concentrator
1451 that wants to use flow control.
1452
1453 You should first try to tell the concentrator not to use flow control.
1454 If you succeed in this, try making the terminal work without
1455 flow control, as described in the preceding section.
1456
1457 If that line of approach is not successful, map some other characters
1458 into C-s and C-q using keyboard-translate-table. The example above
1459 shows how to do this with C-^ and C-\.
1460
1461 * Control-S and Control-Q commands are ignored completely on a net connection.
1462
1463 Some versions of rlogin (and possibly telnet) do not pass flow
1464 control characters to the remote system to which they connect.
1465 On such systems, emacs on the remote system cannot disable flow
1466 control on the local system.
1467
1468 One way to cure this is to disable flow control on the local host
1469 (the one running rlogin, not the one running rlogind) using the
1470 stty command, before starting the rlogin process. On many systems,
1471 "stty start u stop u" will do this.
1472
1473 Some versions of tcsh will prevent even this from working. One way
1474 around this is to start another shell before starting rlogin, and
1475 issue the stty command to disable flow control from that shell.
1476
1477 If none of these methods work, the best solution is to type
1478 M-x enable-flow-control at the beginning of your emacs session, or
1479 if you expect the problem to continue, add a line such as the
1480 following to your .emacs (on the host running rlogind):
1481
1482 (enable-flow-control-on "vt200" "vt300" "vt101" "vt131")
1483
1484 See the entry about spontaneous display of I-search (above) for more
1485 info.
1486
1487 * Screen is updated wrong, but only on one kind of terminal.
1488
1489 This could mean that the termcap entry you are using for that
1490 terminal is wrong, or it could mean that Emacs has a bug handing
1491 the combination of features specified for that terminal.
1492
1493 The first step in tracking this down is to record what characters
1494 Emacs is sending to the terminal. Execute the Lisp expression
1495 (open-termscript "./emacs-script") to make Emacs write all
1496 terminal output into the file ~/emacs-script as well; then do
1497 what makes the screen update wrong, and look at the file
1498 and decode the characters using the manual for the terminal.
1499 There are several possibilities:
1500
1501 1) The characters sent are correct, according to the terminal manual.
1502
1503 In this case, there is no obvious bug in Emacs, and most likely you
1504 need more padding, or possibly the terminal manual is wrong.
1505
1506 2) The characters sent are incorrect, due to an obscure aspect
1507 of the terminal behavior not described in an obvious way
1508 by termcap.
1509
1510 This case is hard. It will be necessary to think of a way for
1511 Emacs to distinguish between terminals with this kind of behavior
1512 and other terminals that behave subtly differently but are
1513 classified the same by termcap; or else find an algorithm for
1514 Emacs to use that avoids the difference. Such changes must be
1515 tested on many kinds of terminals.
1516
1517 3) The termcap entry is wrong.
1518
1519 See the file etc/TERMS for information on changes
1520 that are known to be needed in commonly used termcap entries
1521 for certain terminals.
1522
1523 4) The characters sent are incorrect, and clearly cannot be
1524 right for any terminal with the termcap entry you were using.
1525
1526 This is unambiguously an Emacs bug, and can probably be fixed
1527 in termcap.c, tparam.c, term.c, scroll.c, cm.c or dispnew.c.
1528
1529 * Output from Control-V is slow.
1530
1531 On many bit-map terminals, scrolling operations are fairly slow.
1532 Often the termcap entry for the type of terminal in use fails
1533 to inform Emacs of this. The two lines at the bottom of the screen
1534 before a Control-V command are supposed to appear at the top after
1535 the Control-V command. If Emacs thinks scrolling the lines is fast,
1536 it will scroll them to the top of the screen.
1537
1538 If scrolling is slow but Emacs thinks it is fast, the usual reason is
1539 that the termcap entry for the terminal you are using does not
1540 specify any padding time for the `al' and `dl' strings. Emacs
1541 concludes that these operations take only as much time as it takes to
1542 send the commands at whatever line speed you are using. You must
1543 fix the termcap entry to specify, for the `al' and `dl', as much
1544 time as the operations really take.
1545
1546 Currently Emacs thinks in terms of serial lines which send characters
1547 at a fixed rate, so that any operation which takes time for the
1548 terminal to execute must also be padded. With bit-map terminals
1549 operated across networks, often the network provides some sort of
1550 flow control so that padding is never needed no matter how slow
1551 an operation is. You must still specify a padding time if you want
1552 Emacs to realize that the operation takes a long time. This will
1553 cause padding characters to be sent unnecessarily, but they do
1554 not really cost much. They will be transmitted while the scrolling
1555 is happening and then discarded quickly by the terminal.
1556
1557 Most bit-map terminals provide commands for inserting or deleting
1558 multiple lines at once. Define the `AL' and `DL' strings in the
1559 termcap entry to say how to do these things, and you will have
1560 fast output without wasted padding characters. These strings should
1561 each contain a single %-spec saying how to send the number of lines
1562 to be scrolled. These %-specs are like those in the termcap
1563 `cm' string.
1564
1565 You should also define the `IC' and `DC' strings if your terminal
1566 has a command to insert or delete multiple characters. These
1567 take the number of positions to insert or delete as an argument.
1568
1569 A `cs' string to set the scrolling region will reduce the amount
1570 of motion you see on the screen when part of the screen is scrolled.
1571
1572 * Your Delete key sends a Backspace to the terminal, using an AIXterm.
1573
1574 The solution is to include in your .Xdefaults the lines:
1575
1576 *aixterm.Translations: #override <Key>BackSpace: string(0x7f)
1577 aixterm*ttyModes: erase ^?
1578
1579 This makes your Backspace key send DEL (ASCII 127).
1580
1581 * You type Control-H (Backspace) expecting to delete characters.
1582
1583 Emacs has traditionally used Control-H for help; unfortunately
1584 this interferes with its use as Backspace on TTY's. This has not
1585 been fixed due to an incredible arrogance on RMS's part. One way
1586 to solve this problem is to put this in your .emacs:
1587
1588 (global-set-key "\b" 'delete-backward-char)
1589 (global-set-key "\M-h" 'help-command)
1590
1591 This makes Control-H (Backspace) work sensibly, and moves help to
1592 Meta-H (ESC H).
1593
1594 Note that you can probably also access help using F1.
1595
1596 * Editing files through RFS gives spurious "file has changed" warnings.
1597 It is possible that a change in Emacs 18.37 gets around this problem,
1598 but in case not, here is a description of how to fix the RFS bug that
1599 causes it.
1600
1601 There was a serious pair of bugs in the handling of the fsync() system
1602 call in the RFS server.
1603
1604 The first is that the fsync() call is handled as another name for the
1605 close() system call (!!). It appears that fsync() is not used by very
1606 many programs; Emacs version 18 does an fsync() before closing files
1607 to make sure that the bits are on the disk.
1608
1609 This is fixed by the enclosed patch to the RFS server.
1610
1611 The second, more serious problem, is that fsync() is treated as a
1612 non-blocking system call (i.e., it's implemented as a message that
1613 gets sent to the remote system without waiting for a reply). Fsync is
1614 a useful tool for building atomic file transactions. Implementing it
1615 as a non-blocking RPC call (when the local call blocks until the sync
1616 is done) is a bad idea; unfortunately, changing it will break the RFS
1617 protocol. No fix was supplied for this problem.
1618
1619 (as always, your line numbers may vary)
1620
1621 % rcsdiff -c -r1.2 serversyscall.c
1622 RCS file: RCS/serversyscall.c,v
1623 retrieving revision 1.2
1624 diff -c -r1.2 serversyscall.c
1625 *** /tmp/,RCSt1003677 Wed Jan 28 15:15:02 1987
1626 --- serversyscall.c Wed Jan 28 15:14:48 1987
1627 ***************
1628 *** 163,169 ****
1629 /*
1630 * No return sent for close or fsync!
1631 */
1632 ! if (syscall == RSYS_close || syscall == RSYS_fsync)
1633 proc->p_returnval = deallocate_fd(proc, msg->m_args[0]);
1634 else
1635 {
1636 --- 166,172 ----
1637 /*
1638 * No return sent for close or fsync!
1639 */
1640 ! if (syscall == RSYS_close)
1641 proc->p_returnval = deallocate_fd(proc, msg->m_args[0]);
1642 else
1643 {
1644
1645 * Vax C compiler bugs affecting Emacs.
1646
1647 You may get one of these problems compiling Emacs:
1648
1649 foo.c line nnn: compiler error: no table entry for op STASG
1650 foo.c: fatal error in /lib/ccom
1651
1652 These are due to bugs in the C compiler; the code is valid C.
1653 Unfortunately, the bugs are unpredictable: the same construct
1654 may compile properly or trigger one of these bugs, depending
1655 on what else is in the source file being compiled. Even changes
1656 in header files that should not affect the file being compiled
1657 can affect whether the bug happens. In addition, sometimes files
1658 that compile correctly on one machine get this bug on another machine.
1659
1660 As a result, it is hard for me to make sure this bug will not affect
1661 you. I have attempted to find and alter these constructs, but more
1662 can always appear. However, I can tell you how to deal with it if it
1663 should happen. The bug comes from having an indexed reference to an
1664 array of Lisp_Objects, as an argument in a function call:
1665 Lisp_Object *args;
1666 ...
1667 ... foo (5, args[i], ...)...
1668 putting the argument into a temporary variable first, as in
1669 Lisp_Object *args;
1670 Lisp_Object tem;
1671 ...
1672 tem = args[i];
1673 ... foo (r, tem, ...)...
1674 causes the problem to go away.
1675 The `contents' field of a Lisp vector is an array of Lisp_Objects,
1676 so you may see the problem happening with indexed references to that.
1677
1678 * 68000 C compiler problems
1679
1680 Various 68000 compilers have different problems.
1681 These are some that have been observed.
1682
1683 ** Using value of assignment expression on union type loses.
1684 This means that x = y = z; or foo (x = z); does not work
1685 if x is of type Lisp_Object.
1686
1687 ** "cannot reclaim" error.
1688
1689 This means that an expression is too complicated. You get the correct
1690 line number in the error message. The code must be rewritten with
1691 simpler expressions.
1692
1693 ** XCONS, XSTRING, etc macros produce incorrect code.
1694
1695 If temacs fails to run at all, this may be the cause.
1696 Compile this test program and look at the assembler code:
1697
1698 struct foo { char x; unsigned int y : 24; };
1699
1700 lose (arg)
1701 struct foo arg;
1702 {
1703 test ((int *) arg.y);
1704 }
1705
1706 If the code is incorrect, your compiler has this problem.
1707 In the XCONS, etc., macros in lisp.h you must replace (a).u.val with
1708 ((a).u.val + coercedummy) where coercedummy is declared as int.
1709
1710 This problem will not happen if the m-...h file for your type
1711 of machine defines NO_UNION_TYPE. That is the recommended setting now.
1712
1713 * C compilers lose on returning unions
1714
1715 I hear that some C compilers cannot handle returning a union type.
1716 Most of the functions in GNU Emacs return type Lisp_Object, which is
1717 defined as a union on some rare architectures.
1718
1719 This problem will not happen if the m-...h file for your type
1720 of machine defines NO_UNION_TYPE. That is the recommended setting now.