XEmacs 21.2.8
[chise/xemacs-chise.git.1] / PROBLEMS
1                                                   -*- mode:outline -*-
2
3 This file describes various problems that have been encountered
4 in compiling, installing and running XEmacs.  It has been updated for
5 XEmacs 21.0.
6
7 This file is rather large, but we have tried to sort the entries by
8 their respective relevance for XEmacs, but may have not succeeded
9 completely in that task.  The file is divided into four parts:
10
11  - Problems with building XEmacs
12  - Problems with running XEmacs
13  - Compatibility problems
14  - Mule issues
15
16 Use `C-c C-f' to move to the next equal level of outline, and
17 `C-c C-b' to move to previous equal level.  `C-h m' will give more
18 info about the Outline mode.
19
20 Also, Try finding the things you need using one of the search commands
21 XEmacs provides (e.g. `C-s').
22
23 A general advice:
24     WATCH OUT for .emacs file!  ~/.emacs is your Emacs init file.  If
25     you observe strange problems, invoke XEmacs with the `-q' option
26     and see if you can repeat the problem.
27
28
29 * Problems with building XEmacs
30 ===============================
31
32 ** General
33 *** egcs-1.1
34
35 There have been reports of egcs-1.1 not compiling XEmacs correctly on
36 Alpha Linux.  There have also been reports that egcs-1.0.3a is O.K.
37
38 *** Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using
39 `-fno-strength-reduce'.
40
41 gcc will generate incorrect code otherwise.  This bug is present in at
42 least 2.6.x and 2.7.[0-2].  This bug has been fixed in GCC 2.7.2.1 and
43 later.  This bug is O/S independent, but is limited to x86 architectures.
44
45 This problem is known to be fixed in egcs (or pgcc) 1.0 or later.
46
47 *** Don't use -O2 with gcc 2.7.2 under Intel architectures without also
48 using `-fno-caller-saves'.
49
50 gcc will generate incorrect code otherwise.  This bug is still
51 present in gcc 2.7.2.3.  There have been no reports to indicate the
52 bug is present in egcs 1.0 (or pgcc 1.0) or later.  This bug is O/S
53 independent, but limited to x86 architectures.
54
55 This problem is known to be fixed in egcs (or pgcc) 1.0 or later.
56
57 *** When using gcc, you get the error message "undefined symbol __fixunsdfsi".
58 When using gcc, you get the error message "undefined symbol __main".
59
60 This means that you need to link with the gcc library.  It may be called
61 "gcc-gnulib" or "libgcc.a"; figure out where it is, and define LIB_GCC in
62 config.h to point to it.
63
64 It may also work to use the GCC version of `ld' instead of the standard one.
65
66 *** Excessive optimization with pgcc can break XEmacs
67
68 It has been reported on some systems that compiling with -O6 can lead
69 to XEmacs failures.  The workaround is to use a lower optimization
70 level.  -O2 and -O4 have been tested extensively.
71
72 All of this depends heavily on the version of pgcc and the version
73 of libc.  Snapshots near the release of pgcc-1.0 have been tested
74 extensively and no sign of breakage has been seen on systems using
75 glibc-2.
76
77 *** src/Makefile and lib-src/Makefile are truncated--most of the file missing.
78
79 This can happen if configure uses GNU sed version 2.03.  That version
80 had a bug.  GNU sed version 2.05 works properly.
81
82 *** When compiling with X11, you get "undefined symbol _XtStrings".
83
84 This means that you are trying to link emacs against the X11r4 version of
85 libXt.a, but you have compiled either Emacs or the code in the lwlib
86 subdirectory with the X11r5 header files.  That doesn't work.
87
88 Remember, you can't compile lwlib for r4 and emacs for r5, or vice versa.
89 They must be in sync.
90
91 *** test-distrib says that the distribution has been clobbered
92 or, temacs prints "Command key out of range 0-127"
93 or, temacs runs and dumps xemacs, but xemacs totally fails to work.
94 or, temacs gets errors dumping xemacs
95
96 This can be because the .elc files have been garbled.  Do not be
97 fooled by the fact that most of a .elc file is text: these are binary
98 files and can contain all 256 byte values.
99
100 In particular `shar' cannot be used for transmitting GNU Emacs.  It
101 typically truncates "lines".  (this does not apply to GNU shar, which
102 uses uuencode to encode binary files.)
103
104 If you have a copy of Emacs that has been damaged in its nonprinting
105 characters, you can fix them by running:
106
107  make all-elc
108
109 This will rebuild all the needed .elc files.
110
111 *** `compress' and `uncompress' not found and XFree86
112
113 XFree86 installs a very old version of libz.a by default ahead of where
114 more modern version of libz might be installed.  This will cause problems
115 when attempting to link against libMagick.  The fix is to remove the old
116 libz.a in the X11 binary directory.
117
118
119 ** AIX
120 *** On AIX 4.3, you must specify --with-dialogs=athena with configure
121
122 *** On AIX, you get this compiler error message:
123
124     Processing include file ./XMenuInt.h
125         1501-106: (S) Include file X11/Xlib.h not found.
126
127 This means your system was installed with only the X11 runtime i.d
128 libraries.  You have to find your sipo (bootable tape) and install
129 X11Dev... with smit.
130
131 *** On AIX 4.1.2, linker error messages such as
132    ld: 0711-212 SEVERE ERROR: Symbol .__quous, found in the global symbol table
133          of archive /usr/lib/libIM.a, was not defined in archive member shr.o.
134
135 This is a problem in libIM.a.  You can work around it by executing
136 these shell commands in the src subdirectory of the directory where
137 you build Emacs:
138
139     cp /usr/lib/libIM.a .
140     chmod 664 libIM.a
141     ranlib libIM.a
142
143 Then change -lIM to ./libIM.a in the command to link temacs (in
144 Makefile).
145
146 *** Excessive optimization on AIX 4.2 can lead to compiler failure.
147
148 Valdis.Kletnieks@vt.edu writes:
149   At least at the b34 level, and the latest-and-greatest IBM xlc
150   (3.1.4.4), there are problems with -O3.  I haven't investigated
151   further.
152
153
154 ** SunOS/Solaris
155 *** Link failure when using acc on a Sun.
156
157 To use acc, you need additional options just before the libraries, such as
158
159    /usr/lang/SC2.0.1/values-Xt.o -L/usr/lang/SC2.0.1/cg87 -L/usr/lang/SC2.0.1
160
161 and you need to add -lansi just before -lc.
162
163 The precise file names depend on the compiler version, so we
164 cannot easily arrange to supply them.
165
166 *** Problems finding X11 libraries on Solaris with Openwindows
167
168 Some users have reported problems in this area.  The reported solution
169 is to define the environment variable OPENWINHOME, even if you must set
170 it to `/usr/openwin'.
171
172 *** Sed problems on Solaris 2.5
173
174 There have been reports of Sun sed truncating very lines in the
175 Makefile during configuration.  The workaround is to use GNU sed or,
176 even better, think of a better way to generate Makefile, and send us a 
177 patch. :-)
178
179 *** On Solaris 2 I get undefined symbols from libcurses.a.
180
181 You probably have /usr/ucblib/ on your LD_LIBRARY_PATH.  Do the link with
182 LD_LIBRARY_PATH unset.  Generally, avoid using any ucb* stuff when
183 building XEmacs.
184
185 *** On Solaris 2 I cannot make alloc.o, glyphs.o or process.o.
186
187 The SparcWorks C compiler may have difficulty building those modules
188 with optimization level -xO4.  Try using only "-fast" optimization
189 for just those modules.  (Or use gcc).
190
191 *** Solaris 2.3 /bin/sh coredumps during configuration.
192
193 This only occurs if you have LANG != C.  This is a known bug with
194 /bin/sh fixed by installing Patch-ID# 101613-01.  Or, you can use
195 bash, as a workaround.
196
197 *** On SunOS, you get linker errors
198     ld: Undefined symbol 
199        _get_wmShellWidgetClass
200        _get_applicationShellWidgetClass
201
202 The fix to this is to install patch 100573 for OpenWindows 3.0
203 or link libXmu statically.
204
205 *** On Sunos 4, you get the error ld: Undefined symbol __lib_version.
206
207 This is the result of using cc or gcc with the shared library meant
208 for acc (the Sunpro compiler).  Check your LD_LIBRARY_PATH and delete
209 /usr/lang/SC2.0.1 or some similar directory.
210
211 *** Undefined symbols when linking on Sunos 4.1.
212
213 If you get the undefined symbols _atowc _wcslen, _iswprint, _iswspace,
214 _iswcntrl, _wcscpy, and _wcsncpy, then you need to add -lXwchar after
215 -lXaw in the command that links temacs.
216
217 This problem seems to arise only when the international language
218 extensions to X11R5 are installed.
219
220 *** On a Sun running SunOS 4.1.1, you get this error message from GNU ld:
221
222     /lib/libc.a(_Q_sub.o): Undefined symbol __Q_get_rp_rd referenced from text segment 
223
224 The problem is in the Sun shared C library, not in GNU ld.
225
226 The solution is to install Patch-ID# 100267-03 from Sun.
227
228 *** SunOS 4.1.2: undefined symbol _get_wmShellWidgetClass
229
230   Apparently the version of libXmu.so.a that Sun ships is hosed: it's missing
231   some stuff that is in libXmu.a (the static version).  Sun has a patch for 
232   this, but a workaround is to use the static version of libXmu, by changing
233   the link command from "-lXmu" to "-Bstatic -lXmu -Bdynamic".  If you have
234   OpenWindows 3.0, ask Sun for these patches:
235     100512-02       4.1.x OpenWindows 3.0 libXt Jumbo patch
236     100573-03       4.1.x OpenWindows 3.0 undefined symbols with shared libXmu
237
238 *** Random other SunOS 4.1.[12] link errors.
239
240   The X headers and libraries that Sun ships in /usr/{include,lib}/X11 are
241   broken.  Use the ones in /usr/openwin/{include,lib} instead.
242
243 ** Linux
244 *** Under Linux, you get "too many arguments to function `getpgrp'".
245
246 You have probably installed LessTiff under `/usr/local' and `libXm.so'
247 could not be found when linking `getpgrp()' test program, making XEmacs
248 think that `getpgrp()' takes an argument. Try adding `/usr/local/lib'
249 in `/etc/ld.so.conf' and run `ldconfig'. Then run XEmacs's `configure'
250 again.  As with all problems of this type, reading the config.log file
251 generated from configure and seeing the log of how the test failed can
252 prove enlightening.
253
254 *** `Error: No ExtNode to pop!' on Linux systems with Lesstif.
255
256 This error message has been observed with lesstif-0.75a.  It does not
257 appear to cause any harm.
258
259 *** xemacs: can't resolve symbol '__malloc_hook'
260
261 This is a Linux problem where you've compiled the XEmacs binary on a libc
262 5.4 with version higher than 5.4.19 and attempted to run the binary against
263 an earlier version.  The solution is to upgrade your old library.
264
265 ** IRIX
266 *** Linking with -rpath on IRIX.
267
268 Darrell Kindred <dkindred@cmu.edu> writes:
269 There are a couple of problems [with use of -rpath with Irix ld], though:
270
271   1. The ld in IRIX 5.3 ignores all but the last -rpath
272      spec, so the patched configure spits out a warning
273      if --x-libraries or --site-runtime-libraries are
274      specified under irix 5.x, and it only adds -rpath 
275      entries for the --site-runtime-libraries.  This bug was
276      fixed sometime between 5.3 and 6.2.
277
278   2. IRIX gcc 2.7.2 doesn't accept -rpath directly, so
279      it would have to be prefixed by -Xlinker or "-Wl,".
280      This would be fine, except that configure compiles with
281         ${CC-cc} $CFLAGS $LDFLAGS ...
282      rather than quoting $LDFLAGS with prefix-args, like
283      src/Makefile does.  So if you specify --x-libraries
284      or --site-runtime-libraries, you must use --use-gcc=no,
285      or configure will fail.
286
287 *** On Irix 6.3, the SGI ld quits with segmentation fault when linking temacs
288
289 This occurs if you use the SGI linker version 7.1.  Installing the
290 patch SG0001872 fixes this problem.
291
292 *** On Irix 6.0, make tries (and fails) to build a program named unexelfsgi
293
294 A compiler bug inserts spaces into the string "unexelfsgi . o"
295 in src/Makefile.  Edit src/Makefile, after configure is run,
296 find that string, and take out the spaces.
297
298 Compiler fixes in Irix 6.0.1 should eliminate this problem.
299
300 *** On Irix 5.2, unexelfsgi.c can't find cmplrs/stsupport.h.
301
302 The file cmplrs/stsupport.h was included in the wrong file set in the
303 Irix 5.2 distribution.  You can find it in the optional fileset
304 compiler_dev, or copy it from some other Irix 5.2 system.  A kludgy
305 workaround is to change unexelfsgi.c to include sym.h instead of
306 syms.h.
307
308 *** Coredumping in Irix 6.2
309
310 Pete Forman <gsez020@compo.bedford.waii.com> writes:
311 A problem noted by myself and others (I've lost the references) was
312 that XEmacs coredumped when the cut or copy toolbar buttons were
313 pressed.  This has been fixed by loading the SGI patchset (Feb 98)
314 without having to recompile XEmacs.
315
316 My versions are XEmacs 20.3 (problem first noted in 19.15) and IRIX
317 6.2, compiled using -n32.  I'd guess that the relevant individual
318 patch was "SG0002580: multiple fixes for X libraries".  SGI recommends
319 that the complete patch set be installed rather than parts of it.
320
321 ** Digital UNIX/OSF/VMS
322 *** On Digital UNIX, the DEC C compiler might have a problem compiling
323 some files.
324
325 In particular, src/extents.c and src/faces.c might cause the DEC C
326 compiler to abort.  When this happens: cd src, compile the files by
327 hand, cd .., and redo the "make" command.  When recompiling the files by
328 hand, use the old C compiler for the following versions of Digital UNIX:
329   - V3.n: Remove "-migrate" from the compile command.
330   - V4.n: Add "-oldc" to the compile command.
331
332 A related compiler bug has been fixed by the DEC compiler team.  The
333 new versions of the compiler should run fine.
334
335 *** Under some versions of OSF XEmacs runs fine if built without
336 optimization but will crash randomly if built with optimization.
337
338 Using 'cc -g' is not sufficient to eliminate all optimization.  Try
339 'cc -g -O0' instead.
340
341 *** Compilation errors on VMS.
342
343 Sorry, XEmacs does not work under VMS.  You might consider working on
344 the port if you really want to have XEmacs work under VMS.
345
346 ** HP-UX
347 *** On HPUX, the HP C compiler might have a problem compiling some files
348 with optimization.
349
350 Richard Cognot <cognot@ensg.u-nancy.fr> writes:
351
352   Had to drop once again to level 2 optimization, at least to
353   compile lstream.c. Otherwise, I get a "variable is void: \if"
354   problem while dumping (this is a problem I already reported
355   with vanilla hpux 10.01 and 9.07, which went away after
356   applying patches for the C compiler). Trouble is I still
357   haven't found the same patch for hpux 10.10, and I don't
358   remember the patch numbers. I think potential XEmacs builders
359   on HP should be warned about this.
360
361 *** I don't have `xmkmf' and `imake' on my HP.
362
363   You can get these standard X tools by anonymous FTP to
364   hpcvaaz.cv.hp.com.  Essentially all X programs need these.
365
366 *** On HP-UX, problems with make
367
368 Marcus Thiessel <marcus_thiessel@hp.com>
369
370   Some releases of XEmacs (e.g. 20.4) require GNU make to build
371   successfully. You don't need GNU make when building 21.x.
372
373 *** On HP-UX 9.05 XEmacs won't compile or coredump during the build.
374
375 Marcus Thiessel <marcus_thiessel@hp.com>
376
377   This might be a sed problem. For your own safety make sure to use
378   GNU sed while dumping XEmacs.
379
380 *** On HP-UX 11.0 XEmacs causes excessive X11 errors when running.
381
382 Marcus Thiessel <marcus_thiessel@hp.com>
383
384   Unfortunately, XEmacs releases <21.0 don't work with Motif2.1. It
385   will compile but you will get excessive X11 errors like
386
387   xemacs: X Error of failed request:  BadGC (invalid GC parameter)
388
389   and finally XEmacs gets killed. A workaround is to use the
390   Motif1.2_R6 libraries. You can the following line to your call to
391   configure:
392
393      --x-libraries="/usr/lib/Motif1.2_R6 -L/usr/lib/X11R6"
394  
395   Make sure /usr/lib/Motif1.2_R6/libXm.sl is a link to
396   /usr/lib/Motif1.2_R6/libXm.3.
397
398 ** SCO OpenServer
399 *** Native cc on SCO OpenServer 5 is now OK.  Icc may still throw you
400 a curve.  Here is what Robert Lipe <robertl@arnet.com> says:
401
402 Unlike XEmacs 19.13, building with the native cc on SCO OpenServer 5 
403 now produces a functional binary.   I will typically build this
404 configuration for COFF with:
405
406         /path_to_xemacs_source/configure --with-gcc=no \
407           --site-includes=/usr/local/include --site-libraries=/usr/local/lib \
408           --with-xpm --with-xface --with-sound=nas
409
410 This version now supports ELF builds.  I highly recommend this to 
411 reduce the in-core footprint of XEmacs.  This is now how I compile 
412 all my test releases.  Build it like this:
413
414         /path_to_XEmacs_source/configure --with-gcc=no \
415           --site-includes=/usr/local/include --site-libraries=/usr/local/lib \
416           --with-xpm --with-xface --with-sound=nas --dynamic
417
418 The compiler known as icc [ supplied with the OpenServer 5 Development 
419 System ] generates a working binary, but it takes forever to generate
420 XEmacs.  ICC also whines more about the code than /bin/cc does.  I do
421 believe all its whining is legitimate, however.    Note that you do
422 have to 'cd src ; make  LD=icc' to avoid linker errors.
423
424 The way I handle the build procedure is:
425
426         /path_to_XEmacs_source/configure --with-gcc=no \
427           --site-includes=/usr/local/include --site-libraries=/usr/local/lib \
428           --with-xpm --with-xface --with-sound=nas --dynamic --compiler="icc"
429
430 NOTE I have the xpm, xface, and audio libraries and includes in 
431         /usr/local/lib, /usr/local/include.  If you don't have these,
432         don't include the "--with-*" arguments in any of my examples.
433
434 In previous versions of XEmacs, you had to override the defaults while 
435 compiling font-lock.o and extents.o when building with icc.  This seems
436 to no longer be true, but I'm including this old information in case it
437 resurfaces.  The process I used was:
438
439         make -k    
440         [ procure pizza, beer, repeat ] 
441         cd src
442         make CC="icc -W0,-mP1COPT_max_tree_size=3000" font-lock.o extents.o
443         make LD=icc
444
445 If you want sound support, get the tls566 supplement from 
446 ftp.sco.com:/TLS or any of its mirrors.  It works just groovy 
447 with XEmacs.
448
449 The M-x manual-entry is known not to work.  If you know Lisp and would
450 like help in making it work, e-mail me at <robertl@dgii.com>.
451 (UNCHECKED for 19.15 -- it might work).
452
453 In earlier releases, gnuserv/gnuclient/gnudoit would open a frame 
454 just fine, but the client would lock up and the server would
455 terminate when you used C-x # to close the frame.   This is now 
456 fixed in XEmacs.
457
458 In etc/ there are two files of note. emacskeys.sco and emacsstrs.sco.
459 The comments at the top of emacskeys.sco describe its function, and
460 the emacstrs.sco is a suitable candidate for /usr/lib/keyboard/strings
461 to take advantage of the keyboard map in emacskeys.sco.
462
463 Note: Much of the above entry is probably not valid for XEmacs 21.0
464 and later.
465
466
467
468 * Problems with running XEmacs
469 ==============================
470 ** General
471 *** C-z just refreshes the screen instead of suspending Emacs.
472
473 You are probably using a shell that doesn't support job control, even
474 though the system itself is capable of it.  Try using a different
475 shell.
476
477 *** You type Control-H (Backspace) expecting to delete characters.
478
479 Emacs has traditionally used Control-H for help; unfortunately this
480 interferes with its use as Backspace on TTY's.  One way to solve this
481 problem is to put this in your .emacs:
482
483   (when (eq tty-erase-char ?\C-h)
484     (keyboard-translate ?\C-h ?\C-?)
485     (global-set-key "\M-?" 'help-command))
486
487 This checks whether the TTY erase char is C-h, and if it is, makes
488 Control-H (Backspace) work sensibly, and moves help to Meta-? (ESC ?).
489
490 Note that you can probably also access help using F1.
491
492 *** Mail agents (VM, Gnus, rmail) cannot get new mail
493
494 rmail and VM get new mail from /usr/spool/mail/$USER using a program
495 called `movemail'.  This program interlocks with /bin/mail using the
496 protocol defined by /bin/mail.
497
498 There are two different protocols in general use.  One of them uses
499 the `flock' system call.  The other involves creating a lock file;
500 `movemail' must be able to write in /usr/spool/mail in order to do
501 this.  You control which one is used by defining, or not defining, the
502 macro MAIL_USE_FLOCK in config.h or the m- or s- file it includes.  IF
503 YOU DON'T USE THE FORM OF INTERLOCKING THAT IS NORMAL ON YOUR SYSTEM,
504 YOU CAN LOSE MAIL!
505
506 If your system uses the lock file protocol, and fascist restrictions
507 prevent ordinary users from writing the lock files in /usr/spool/mail,
508 you may need to make `movemail' setgid to a suitable group such as
509 `mail'.  To do this, use the following commands (as root) after doing
510 the make install.
511
512         chgrp mail movemail
513         chmod 2755 movemail
514
515 Installation normally copies movemail from the build directory to an
516 installation directory which is usually under /usr/local/lib.  The
517 installed copy of movemail is usually in the directory
518 /usr/local/lib/emacs/VERSION/TARGET.  You must change the group and
519 mode of the installed copy; changing the group and mode of the build
520 directory copy is ineffective.
521
522 *** VM appears to hang in large folders.
523
524 This is normal (trust us) when upgrading to VM-6.22 from earlier
525 versions.  Let VM finish what it is doing and all will be well.
526
527 *** Changes made to .el files do not take effect.
528
529 You may have forgotten to recompile them into .elc files.  Then the
530 old .elc files will be loaded, and your changes will not be seen.  To
531 fix this, do `M-x byte-recompile-directory' and specify the directory
532 that contains the Lisp files.
533
534 Note that you will get a warning when loading a .elc file that is
535 older than the corresponding .el file.
536
537 *** Things which should be bold or italic (such as the initial
538 copyright notice) are not.
539
540 The fonts of the "bold" and "italic" faces are generated from the font
541 of the "default" face; in this way, your bold and italic fonts will
542 have the appropriate size and family.  However, emacs can only be
543 clever in this way if you have specified the default font using the
544 XLFD (X Logical Font Description) format, which looks like
545
546         *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
547
548 if you use any of the other, less strict font name formats, some of
549 which look like:
550
551                 lucidasanstypewriter-12
552 and             fixed
553 and             9x13
554
555 then emacs won't be able to guess the names of the "bold" and "italic"
556 versions.  All X fonts can be referred to via XLFD-style names, so you
557 should use those forms.  See the man pages for X(1), xlsfonts(1), and
558 xfontsel(1).
559
560 *** The dumped Emacs crashes when run, trying to write pure data.
561
562 Two causes have been seen for such problems.
563
564 1) On a system where getpagesize is not a system call, it is defined
565 as a macro.  If the definition (in both unexec.c and malloc.c) is wrong,
566 it can cause problems like this.  You might be able to find the correct
567 value in the man page for a.out (5).
568
569 2) Some systems allocate variables declared static among the
570 initialized variables.  Emacs makes all initialized variables in most
571 of its files pure after dumping, but the variables declared static and
572 not initialized are not supposed to be pure.  On these systems you
573 may need to add "#define static" to the m- or the s- file.
574
575 *** Reading and writing files is very very slow.
576
577 Try evaluating the form (setq lock-directory nil) and see if that helps.
578 There is a problem with file-locking on some systems (possibly related
579 to NFS) that I don't understand.  Please send mail to the address 
580 xemacs@xemacs.org if you figure this one out.
581
582 *** When emacs starts up, I get lots of warnings about unknown keysyms.
583
584 If you are running the prebuilt binaries, the Motif library expects to find
585 certain thing in the XKeysymDB file.  This file is normally in /usr/lib/X11/
586 or in /usr/openwin/lib/.  If you keep yours in a different place, set the
587 environment variable $XKEYSYMDB to point to it before starting emacs.  If 
588 you still have the problem after doing that, perhaps your version of X is 
589 too old.  There is a copy of the MIT X11R5 XKeysymDB file in the emacs `etc'
590 directory.  Try using that one.
591
592 *** My X resources used to work, and now some of them are being ignored.
593
594 Check the resources in .../etc/Emacs.ad (which is the same as the file
595 sample.Xdefaults).  Perhaps some of the default resources built in to 
596 emacs are now overriding your existing resources.  Copy and edit the
597 resources in Emacs.ad as necessary.
598
599 *** I have focus problems when I use `M-o' to switch to another screen
600 without using the mouse.
601
602 The focus issues with a program like XEmacs, which has multiple
603 homogeneous top-level windows, are very complicated, and as a result,
604 most window managers don't implement them correctly.
605
606 The R4/R5 version of twm (and all of its descendants) had buggy focus
607 handling.  Sufficiently recent versions of tvtwm have been fixed.  In
608 addition, if you're using twm, make sure you have not specified
609 "NoTitleFocus" in your .tvtwmrc file.  The very nature of this option
610 makes twm do some illegal focus tricks, even with the patch.
611
612 It is known that olwm and olvwm are buggy, and in different ways.  If
613 you're using click-to-type mode, try using point-to-type, or vice
614 versa.
615
616 In older versions of NCDwm, one could not even type at XEmacs windows.
617 This has been fixed in newer versions (2.4.3, and possibly earlier).
618
619 (Many people suggest that XEmacs should warp the mouse when focusing
620 on another screen in point-to-type mode.  This is not ICCCM-compliant
621 behavior.  Implementing such policy is the responsibility of the
622 window manager itself, it is not legal for a client to do this.)
623
624 *** Emacs spontaneously displays "I-search: " at the bottom of the screen.
625
626 This means that Control-S/Control-Q (XON/XOFF) "flow control" is being
627 used.  C-s/C-q flow control is bad for Emacs editors because it takes
628 away C-s and C-q as user commands.  Since editors do not output long
629 streams of text without user commands, there is no need for a
630 user-issuable "stop output" command in an editor; therefore, a
631 properly designed flow control mechanism would transmit all possible
632 input characters without interference.  Designing such a mechanism is
633 easy, for a person with at least half a brain.
634
635 There are three possible reasons why flow control could be taking place:
636
637   1) Terminal has not been told to disable flow control
638   2) Insufficient padding for the terminal in use
639   3) Some sort of terminal concentrator or line switch is responsible
640
641 First of all, many terminals have a set-up mode which controls whether
642 they generate XON/XOFF flow control characters.  This must be set to
643 "no XON/XOFF" in order for Emacs to work.  Sometimes there is an
644 escape sequence that the computer can send to turn flow control off
645 and on.  If so, perhaps the termcap `ti' string should turn flow
646 control off, and the `te' string should turn it on.
647
648 Once the terminal has been told "no flow control", you may find it
649 needs more padding.  The amount of padding Emacs sends is controlled
650 by the termcap entry for the terminal in use, and by the output baud
651 rate as known by the kernel.  The shell command `stty' will print
652 your output baud rate; `stty' with suitable arguments will set it if
653 it is wrong.  Setting to a higher speed causes increased padding.  If
654 the results are wrong for the correct speed, there is probably a
655 problem in the termcap entry.  You must speak to a local Unix wizard
656 to fix this.  Perhaps you are just using the wrong terminal type.
657
658 For terminals that lack a "no flow control" mode, sometimes just
659 giving lots of padding will prevent actual generation of flow control
660 codes.  You might as well try it.
661
662 If you are really unlucky, your terminal is connected to the computer
663 through a concentrator which sends XON/XOFF flow control to the
664 computer, or it insists on sending flow control itself no matter how
665 much padding you give it.  Unless you can figure out how to turn flow
666 control off on this concentrator (again, refer to your local wizard),
667 you are screwed!  You should have the terminal or concentrator
668 replaced with a properly designed one.  In the mean time, some drastic
669 measures can make Emacs semi-work.
670
671 You can make Emacs ignore C-s and C-q and let the operating system
672 handle them.  To do this on a per-session basis, just type M-x
673 enable-flow-control RET.  You will see a message that C-\ and C-^ are
674 now translated to C-s and C-q.  (Use the same command M-x
675 enable-flow-control to turn *off* this special mode.  It toggles flow
676 control handling.)
677
678 If C-\ and C-^ are inconvenient for you (for example, if one of them
679 is the escape character of your terminal concentrator), you can choose
680 other characters by setting the variables flow-control-c-s-replacement
681 and flow-control-c-q-replacement.  But choose carefully, since all
682 other control characters are already used by emacs.
683
684 IMPORTANT: if you type C-s by accident while flow control is enabled,
685 Emacs output will freeze, and you will have to remember to type C-q in
686 order to continue.
687
688 If you work in an environment where a majority of terminals of a
689 certain type are flow control hobbled, you can use the function
690 `enable-flow-control-on' to turn on this flow control avoidance scheme
691 automatically.  Here is an example:
692
693 (enable-flow-control-on "vt200" "vt300" "vt101" "vt131")
694
695 If this isn't quite correct (e.g. you have a mixture of flow-control hobbled
696 and good vt200 terminals), you can still run enable-flow-control
697 manually.
698
699 I have no intention of ever redesigning the Emacs command set for the
700 assumption that terminals use C-s/C-q flow control.  XON/XOFF flow
701 control technique is a bad design, and terminals that need it are bad
702 merchandise and should not be purchased.  Now that X is becoming
703 widespread, XON/XOFF seems to be on the way out.  If you can get some
704 use out of GNU Emacs on inferior terminals, more power to you, but I
705 will not make Emacs worse for properly designed systems for the sake
706 of inferior systems.
707
708 *** Control-S and Control-Q commands are ignored completely.
709
710 For some reason, your system is using brain-damaged C-s/C-q flow
711 control despite Emacs's attempts to turn it off.  Perhaps your
712 terminal is connected to the computer through a concentrator
713 that wants to use flow control.
714
715 You should first try to tell the concentrator not to use flow control.
716 If you succeed in this, try making the terminal work without
717 flow control, as described in the preceding section.
718
719 If that line of approach is not successful, map some other characters
720 into C-s and C-q using keyboard-translate-table.  The example above
721 shows how to do this with C-^ and C-\.
722
723 *** Control-S and Control-Q commands are ignored completely on a net
724 connection.
725
726 Some versions of rlogin (and possibly telnet) do not pass flow
727 control characters to the remote system to which they connect.
728 On such systems, emacs on the remote system cannot disable flow
729 control on the local system.
730
731 One way to cure this is to disable flow control on the local host
732 (the one running rlogin, not the one running rlogind) using the
733 stty command, before starting the rlogin process.  On many systems,
734 `stty start u stop u' will do this.
735
736 Some versions of tcsh will prevent even this from working.  One way
737 around this is to start another shell before starting rlogin, and
738 issue the stty command to disable flow control from that shell.
739
740 If none of these methods work, the best solution is to type
741 `M-x enable-flow-control' at the beginning of your emacs session, or
742 if you expect the problem to continue, add a line such as the
743 following to your .emacs (on the host running rlogind):
744
745 (enable-flow-control-on "vt200" "vt300" "vt101" "vt131")
746
747 See the entry about spontaneous display of I-search (above) for more
748 info.
749
750 *** TTY redisplay is slow.
751
752 XEmacs has fairly new TTY redisplay support (beginning from 19.12),
753 which doesn't include some basic TTY optimizations -- like using
754 scrolling regions to move around blocks of text.  This is why
755 redisplay on the traditional terminals, or over slow lines can be very 
756 slow.
757
758 If you are interested in fixing this, please let us know at
759 <xemacs@xemacs.org>.
760
761 *** Screen is updated wrong, but only on one kind of terminal.
762
763 This could mean that the termcap entry you are using for that terminal
764 is wrong, or it could mean that Emacs has a bug handing the
765 combination of features specified for that terminal.
766
767 The first step in tracking this down is to record what characters
768 Emacs is sending to the terminal.  Execute the Lisp expression
769 (open-termscript "./emacs-script") to make Emacs write all terminal
770 output into the file ~/emacs-script as well; then do what makes the
771 screen update wrong, and look at the file and decode the characters
772 using the manual for the terminal.  There are several possibilities:
773
774 1) The characters sent are correct, according to the terminal manual.
775
776 In this case, there is no obvious bug in Emacs, and most likely you
777 need more padding, or possibly the terminal manual is wrong.
778
779 2) The characters sent are incorrect, due to an obscure aspect of the
780    terminal behavior not described in an obvious way by termcap.
781
782 This case is hard.  It will be necessary to think of a way for Emacs
783 to distinguish between terminals with this kind of behavior and other
784 terminals that behave subtly differently but are classified the same
785 by termcap; or else find an algorithm for Emacs to use that avoids the
786 difference.  Such changes must be tested on many kinds of terminals.
787
788 3) The termcap entry is wrong.
789
790 See the file etc/TERMS for information on changes that are known to be
791 needed in commonly used termcap entries for certain terminals.
792
793 4) The characters sent are incorrect, and clearly cannot be right for
794    any terminal with the termcap entry you were using.
795
796 This is unambiguously an Emacs bug, and can probably be fixed in
797 termcap.c, terminfo.c, tparam.c, cm.c, redisplay-tty.c,
798 redisplay-output.c, or redisplay.c.
799
800 *** My buffers are full of \000 characters or otherwise corrupt.
801
802 Some compilers have trouble with gmalloc.c and ralloc.c; try recompiling
803 without optimization.  If that doesn't work, try recompiling with
804 SYSTEM_MALLOC defined, and/or with REL_ALLOC undefined.
805
806 *** A position you specified in .Xdefaults is ignored, using twm.
807
808 twm normally ignores "program-specified" positions.
809 You can tell it to obey them with this command in your `.twmrc' file:
810
811   UsePPosition  "on"            #allow clents to request a position
812
813 *** With M-x enable-flow-control, you need to type C-\ twice to do
814 incremental search--a single C-\ gets no response.
815
816 This has been traced to communicating with your machine via kermit,
817 with C-\ as the kermit escape character.  One solution is to use
818 another escape character in kermit.  One user did
819
820    set escape-character 17
821
822 in his .kermrc file, to make C-q the kermit escape character.
823
824 *** The Motif version of Emacs paints the screen a solid color.
825
826 This has been observed to result from the following X resource:
827
828    Emacs*default.attributeFont: -*-courier-medium-r-*-*-*-140-*-*-*-*-iso8859-*
829
830 That the resource has this effect indicates a bug in something, but we
831 do not yet know what.  If it is an Emacs bug, we hope someone can
832 explain what the bug is so we can fix it.  In the mean time, removing
833 the resource prevents the problem.
834
835 *** After running emacs once, subsequent invocations crash.
836
837 Some versions of SVR4 have a serious bug in the implementation of the
838 mmap () system call in the kernel; this causes emacs to run correctly
839 the first time, and then crash when run a second time.
840
841 Contact your vendor and ask for the mmap bug fix; in the mean time,
842 you may be able to work around the problem by adding a line to your
843 operating system description file (whose name is reported by the
844 configure script) that reads:
845 #define SYSTEM_MALLOC
846 This makes Emacs use memory less efficiently, but seems to work around
847 the kernel bug.
848
849 *** Inability to send an Alt-modified key, when Emacs is communicating
850 directly with an X server.
851
852 If you have tried to bind an Alt-modified key as a command, and it
853 does not work to type the command, the first thing you should check is
854 whether the key is getting through to Emacs.  To do this, type C-h c
855 followed by the Alt-modified key.  C-h c should say what kind of event
856 it read.  If it says it read an Alt-modified key, then make sure you
857 have made the key binding correctly.
858
859 If C-h c reports an event that doesn't have the Alt modifier, it may
860 be because your X server has no key for the Alt modifier.  The X
861 server that comes from MIT does not set up the Alt modifier by
862 default.
863
864 If your keyboard has keys named Alt, you can enable them as follows:
865
866     xmodmap -e 'add mod2 = Alt_L'
867     xmodmap -e 'add mod2 = Alt_R'
868
869 If the keyboard has just one key named Alt, then only one of those
870 commands is needed.  The modifier `mod2' is a reasonable choice if you
871 are using an unmodified MIT version of X.  Otherwise, choose any
872 modifier bit not otherwise used.
873
874 If your keyboard does not have keys named Alt, you can use some other
875 keys.  Use the keysym command in xmodmap to turn a function key (or
876 some other 'spare' key) into Alt_L or into Alt_R, and then use the
877 commands show above to make them modifier keys.
878
879 Note that if you have Alt keys but no Meta keys, Emacs translates Alt
880 into Meta.  This is because of the great importance of Meta in Emacs.
881
882 *** In Shell mode, you get a ^M at the end of every line.
883
884 This happens to people who use tcsh, because it is trying to be too
885 smart.  It sees that the Shell uses terminal type `unknown' and turns
886 on the flag to output ^M at the end of each line.  You can fix the
887 problem by adding this to your .cshrc file:
888
889     if ($?EMACS) then
890         if ($EMACS == "t") then
891             unset edit 
892             stty  -icrnl -onlcr -echo susp ^Z
893         endif
894     endif
895
896 *** An error message such as `X protocol error: BadMatch (invalid
897 parameter attributes) on protocol request 93'.
898
899 This comes from having an invalid X resource, such as
900    emacs*Cursor:   black
901 (which is invalid because it specifies a color name for something
902 that isn't a color.)
903
904 The fix is to correct your X resources.
905
906 *** Once you pull down a menu from the menubar, it won't go away.
907
908 It has been claimed that this is caused by a bug in certain very old
909 (1990?)  versions of the twm window manager.  It doesn't happen with
910 recent vintages, or with other window managers.
911
912 *** Emacs ignores the "help" key when running OLWM.
913
914 OLWM grabs the help key, and retransmits it to the appropriate client
915 using XSendEvent.  Allowing emacs to react to synthetic events is a
916 security hole, so this is turned off by default.  You can enable it by
917 setting the variable x-allow-sendevents to t.  You can also cause fix
918 this by telling OLWM to not grab the help key, with the null binding
919 "OpenWindows.KeyboardCommand.Help:".
920
921 *** Programs running under terminal emulator do not recognize `emacs'
922 terminal type.
923
924 The cause of this is a shell startup file that sets the TERMCAP
925 environment variable.  The terminal emulator uses that variable to
926 provide the information on the special terminal type that Emacs
927 emulates.
928
929 Rewrite your shell startup file so that it does not change TERMCAP
930 in such a case.  You could use the following conditional which sets
931 it only if it is undefined.
932
933     if ( ! ${?TERMCAP} ) setenv TERMCAP ~/my-termcap-file
934
935 Or you could set TERMCAP only when you set TERM--which should not
936 happen in a non-login shell.
937
938 *** The popup menu appears at the buttom/right of my screen.
939
940 You probably have something like the following in your ~/.Xdefaults
941
942         Emacs.geometry:         81x56--9--1
943
944 Use the following instead
945
946         Emacs*EmacsFrame.geometry:              81x56--9--1
947
948
949 ** AIX
950 *** Your Delete key sends a Backspace to the terminal, using an AIXterm.
951
952 The solution is to include in your .Xdefaults the lines:
953
954    *aixterm.Translations: #override <Key>BackSpace: string(0x7f)
955    aixterm*ttyModes: erase ^?
956
957 This makes your Backspace key send DEL (ASCII 127).
958
959 *** On AIX 4, some programs fail when run in a Shell buffer
960 with an error message like No terminfo entry for "unknown".
961
962 On AIX, many terminal type definitions are not installed by default.
963 `unknown' is one of them.  Install the "Special Generic Terminal
964 Definitions" to make them defined.
965
966 *** On AIX, you get this message when running Emacs:
967
968     Could not load program emacs
969     Symbol smtcheckinit in csh is undefined
970     Error was: Exec format error
971
972 or this one:
973
974     Could not load program .emacs
975     Symbol _system_con in csh is undefined
976     Symbol _fp_trapsta in csh is undefined
977     Error was: Exec format error
978
979 These can happen when you try to run on AIX 3.2.5 a program that was
980 compiled with 3.2.4.  The fix is to recompile.
981
982 *** Trouble using ptys on AIX.
983
984 People often install the pty devices on AIX incorrectly.
985 Use `smit pty' to reinstall them properly.
986
987
988 ** SunOS/Solaris
989 *** The Emacs window disappears when you type M-q.
990
991 Some versions of the Open Look window manager interpret M-q as a quit
992 command for whatever window you are typing at.  If you want to use
993 Emacs with that window manager, you should try to configure the window
994 manager to use some other command.   You can disable the
995 shortcut keys entirely by adding this line to ~/.OWdefaults:
996
997     OpenWindows.WindowMenuAccelerators: False
998
999 *** When Emacs tries to ring the bell, you get an error like
1000
1001         audio: sst_open: SETQSIZE" Invalid argument
1002         audio: sst_close: SETREG MMR2, Invalid argument
1003
1004 you have probably compiled using an ANSI C compiler, but with non-ANSI
1005 include files.  In particular, on Suns, the file
1006 /usr/include/sun/audioio.h uses the _IOW macro to define the constant
1007 AUDIOSETQSIZE.  _IOW in turn uses a K&R preprocessor feature that is
1008 now explicitly forbidden in ANSI preprocessors, namely substitution
1009 inside character constants.  All ANSI C compilers must provide a
1010 workaround for this problem.  Lucid's C compiler is shipped with a new
1011 set of system include files.  If you are using GCC, there is a script
1012 called fixincludes that creates new versions of some system include
1013 files that use this obsolete feature.
1014
1015 *** On Solaris 2.6, XEmacs dumps core when exiting.
1016
1017 This happens if you're XEmacs is running on the same machine as the X
1018 server, and the optimized memory transport has been turned on by
1019 setting the environment variable XSUNTRANSPORT.  The crash occurs
1020 during the call to XCloseDisplay.
1021
1022 If this describes your situation, you need to undefine the
1023 XSUNTRANSPORT environment variable.
1024
1025 *** On Solaris, C-x doesn't get through to Emacs when you use the console.
1026
1027 This is a Solaris feature (at least on Intel x86 cpus).  Type C-r
1028 C-r C-t, to toggle whether C-x gets through to Emacs.
1029
1030 *** On Solaris 2.4, Dired hangs and C-g does not work.  Or Emacs hangs
1031 forever waiting for termination of a subprocess that is a zombie.
1032
1033 casper@fwi.uva.nl says the problem is in X11R6.  Rebuild libX11.so
1034 after changing the file xc/config/cf/sunLib.tmpl.  Change the lines
1035
1036     #if ThreadedX
1037     #define SharedX11Reqs -lthread
1038     #endif
1039
1040 to:
1041
1042     #if OSMinorVersion < 4
1043     #if ThreadedX
1044     #define SharedX11Reqs -lthread
1045     #endif
1046     #endif
1047
1048 Be sure also to edit x/config/cf/sun.cf so that OSMinorVersion is 4
1049 (as it should be for Solaris 2.4).  The file has three definitions for
1050 OSMinorVersion: the first is for x86, the second for SPARC under
1051 Solaris, and the third for SunOS 4.  Make sure to update the
1052 definition for your type of machine and system.
1053
1054 Then do `make Everything' in the top directory of X11R6, to rebuild
1055 the makefiles and rebuild X.  The X built this way work only on
1056 Solaris 2.4, not on 2.3.
1057
1058 For multithreaded X to work it necessary to install patch
1059 101925-02 to fix problems in header files [2.4].  You need
1060 to reinstall gcc or re-run just-fixinc after installing that
1061 patch.
1062
1063 However, Frank Rust <frust@iti.cs.tu-bs.de> used a simpler solution:
1064 he changed
1065     #define ThreadedX          YES
1066 to
1067     #define ThreadedX          NO
1068 in sun.cf and did `make World' to rebuild X11R6.  Removing all
1069 `-DXTHREAD*' flags and `-lthread' entries from lib/X11/Makefile and
1070 typing 'make install' in that directory also seemed to work.
1071
1072 *** On SunOS 4.1.3, Emacs unpredictably crashes in _yp_dobind_soft.
1073
1074 This happens if you configure Emacs specifying just `sparc-sun-sunos4'
1075 on a system that is version 4.1.3.  You must specify the precise
1076 version number (or let configure figure out the configuration, which
1077 it can do perfectly well for SunOS).
1078
1079 *** Mail is lost when sent to local aliases.
1080
1081 Many emacs mail user agents (VM and rmail, for instance) use the
1082 sendmail.el library.  This library can arrange for mail to be
1083 delivered by passing messages to the /usr/lib/sendmail (usually)
1084 program .  In doing so, it passes the '-t' flag to sendmail, which
1085 means that the name of the recipient of the message is not on the
1086 command line and, therefore, that sendmail must parse the message to
1087 obtain the destination address.
1088
1089 There is a bug in the SunOS4.1.1 and SunOS4.1.3 versions of sendmail.
1090 In short, when given the -t flag, the SunOS sendmail won't recognize
1091 non-local (i.e. NIS) aliases.  It has been reported that the Solaris
1092 2.x versions of sendmail do not have this bug.  For those using SunOS
1093 4.1, the best fix is to install sendmail V8 or IDA sendmail (which
1094 have other advantages over the regular sendmail as well).  At the time
1095 of this writing, these official versions are available:
1096
1097  Sendmail V8 on ftp.cs.berkeley.edu in /ucb/sendmail:
1098    sendmail.8.6.9.base.tar.Z (the base system source & documentation)
1099    sendmail.8.6.9.cf.tar.Z   (configuration files)
1100    sendmail.8.6.9.misc.tar.Z (miscellaneous support programs)
1101    sendmail.8.6.9.xdoc.tar.Z (extended documentation, with postscript)
1102
1103  IDA sendmail on vixen.cso.uiuc.edu in /pub:
1104    sendmail-5.67b+IDA-1.5.tar.gz
1105
1106 *** Emacs fails to understand most Internet host names, even though
1107 the names work properly with other programs on the same system.
1108   Emacs won't work with X-windows if the value of DISPLAY is HOSTNAME:0.
1109   Gnus can't make contact with the specified host for nntp.
1110
1111 This typically happens on Suns and other systems that use shared
1112 libraries.  The cause is that the site has installed a version of the
1113 shared library which uses a name server--but has not installed a
1114 similar version of the unshared library which Emacs uses.
1115
1116 The result is that most programs, using the shared library, work with
1117 the nameserver, but Emacs does not.
1118
1119 The fix is to install an unshared library that corresponds to what you
1120 installed in the shared library, and then relink Emacs.
1121
1122 On SunOS 4.1, simply define HAVE_RES_INIT.
1123
1124 If you have already installed the name resolver in the file libresolv.a,
1125 then you need to compile Emacs to use that library.  The easiest way to
1126 do this is to add to config.h a definition of LIBS_SYSTEM, LIBS_MACHINE
1127 or LIB_STANDARD which uses -lresolv.  Watch out!  If you redefine a macro
1128 that is already in use in your configuration to supply some other libraries,
1129 be careful not to lose the others.
1130
1131 Thus, you could start by adding this to config.h:
1132
1133 #define LIBS_SYSTEM -lresolv
1134
1135 Then if this gives you an error for redefining a macro, and you see that
1136 the s- file defines LIBS_SYSTEM as -lfoo -lbar, you could change config.h
1137 again to say this:
1138
1139 #define LIBS_SYSTEM -lresolv -lfoo -lbar
1140
1141 *** With process-connection-type set to t, each line of subprocess
1142 output is terminated with a ^M, making ange-ftp and GNUS not work.
1143
1144 On SunOS systems, this problem has been seen to be a result of an
1145 incomplete installation of gcc 2.2 which allowed some non-ANSI
1146 compatible include files into the compilation.  In particular this
1147 affected virtually all ioctl() calls.
1148
1149
1150 ** Linux
1151 *** You get crashes in a non-C locale with Linux GNU Libc 2.0.
1152
1153 Internationalization was not the top priority for GNU Libc 2.0.
1154 As of this writing (1998-12-28) you may get crashes while running
1155 XEmacs in a non-C locale.  For example, `LC_ALL=en_US xemacs' crashes
1156 while `LC_ALL=C xemacs' runs fine.  This happens for example with GNU
1157 libc 2.0.7.  Installing libintl.a and libintl.h built from gettext
1158 0.10.35 and re-building XEmacs solves the crashes.  Presumably soon 
1159 everyone will upgrade to GNU Libc 2.1 and this problem will go away.
1160
1161 *** `C-z', or `M-x suspend-emacs' hangs instead of suspending.
1162
1163 If you build with `gpm' support on Linux, you cannot suspend XEmacs
1164 because gpm installs a buggy SIGTSTP handler.  Either compile with
1165 `--with-gpm=no', or don't suspend XEmacs on the Linux console until
1166 this bug is fixed.
1167
1168 *** With certain fonts, when the cursor appears on a character, the
1169 character doesn't appear--you get a solid box instead.
1170
1171 One user on a Linux system reported that this problem went away with
1172 installation of a new X server.  The failing server was XFree86 3.1.1.
1173 XFree86 3.1.2 works.
1174
1175 *** Slow startup on Linux.
1176
1177 People using systems based on the Linux kernel sometimes report that
1178 startup takes 10 to 15 seconds longer than `usual'.
1179
1180 This is because Emacs looks up the host name when it starts.
1181 Normally, this takes negligible time; the extra delay is due to
1182 improper system configuration.  This problem can occur for both
1183 networked and non-networked machines.
1184
1185 Here is how to fix the configuration.  It requires being root.
1186
1187 **** Networked Case
1188
1189 First, make sure the files `/etc/hosts' and `/etc/host.conf' both
1190 exist.  The first line in the `/etc/hosts' file should look like this
1191 (replace HOSTNAME with your host name):
1192
1193     127.0.0.1      localhost HOSTNAME
1194
1195 Also make sure that the `/etc/host.conf' files contains the following
1196 lines:
1197
1198     order hosts, bind 
1199     multi on
1200
1201 Any changes, permanent and temporary, to the host name should be
1202 indicated in the `/etc/hosts' file, since it acts a limited local
1203 database of addresses and names (e.g., some SLIP connections
1204 dynamically allocate ip addresses).
1205
1206 **** Non-Networked Case
1207
1208 The solution described in the networked case applies here as well.
1209 However, if you never intend to network your machine, you can use a
1210 simpler solution: create an empty `/etc/host.conf' file.  The command
1211 `touch /etc/host.conf' suffices to create the file.  The `/etc/hosts'
1212 file is not necessary with this approach.
1213
1214
1215 ** IRIX
1216 *** On Irix, I don't see the toolbar icons and I'm getting lots of
1217 entries in the warnings buffer.
1218
1219 SGI ships a really old Xpm library in /usr/lib which does not work at
1220 all well with XEmacs.  The solution is to install your own copy of the
1221 latest version of Xpm somewhere and then use the --site-includes and
1222 --site-libraries flags to tell configure where to find it.
1223
1224 *** Trouble using ptys on IRIX, or running out of ptys.
1225
1226 The program mkpts (which may be in `/usr/adm' or `/usr/sbin') needs to
1227 be set-UID to root, or non-root programs like Emacs will not be able
1228 to allocate ptys reliably.
1229
1230 *** Motif dialog boxes lose on Irix.
1231
1232 Larry Auton <lda@control.att.com> writes:
1233 Beware of not specifying
1234
1235         --with-dialogs=athena
1236
1237 if it builds with the motif dialogs [boom!] you're a dead man.
1238
1239 *** Beware of the default image & graphics library on Irix
1240
1241 Richard Cognot <cognot@ensg.u-nancy.fr> writes:
1242
1243 You *have* to compile your own jpeg lib. The one delivered with SGI
1244 systems is a C++ lib, which apparently XEmacs cannot cope with.
1245
1246
1247 ** Digital UNIX/OSF/VMS/Ultrix
1248 *** XEmacs crashes on Digital Unix within font-lock, or when dealing
1249 with large compilation buffers.
1250
1251 The default stack size under Digital Unix is rather small (2M as
1252 opposed to Solaris 8M), hosing the regexp code, which uses alloca()
1253 extensively, overflowing the stack when complex regexps are used.
1254 Workarounds:
1255
1256 1) Increase your stack size, using `ulimit -s 8192' or a (t)csh
1257    equivalent;
1258
1259 2) Recompile regex.c with REGEX_MALLOC defined.
1260
1261 *** The `Alt' key doesn't behave as `Meta' when running DECwindows.
1262
1263 The default DEC keyboard mapping has the Alt keys set up to generate the
1264 keysym `Multi_key', which has a meaning to xemacs which is distinct from that
1265 of the `Meta_L' and `Meta-R' keysyms.  A second problem is that certain keys
1266 have the Mod2 modifier attached to them for no adequately explored reason.
1267 The correct fix is to pass this file to xmodmap upon starting X:
1268
1269         clear mod2
1270         keysym Multi_key = Alt_L
1271         add mod1 = Alt_L
1272         add mod1 = Alt_R
1273
1274 *** The Compose key on a DEC keyboard does not work as Meta key.
1275
1276 This shell command should fix it:
1277
1278   xmodmap -e 'keycode 0xb1 = Meta_L'
1279
1280 *** `expand-file-name' fails to work on any but the machine you dumped
1281 Emacs on.
1282
1283 On Ultrix, if you use any of the functions which look up information
1284 in the passwd database before dumping Emacs (say, by using
1285 expand-file-name in site-init.el), then those functions will not work
1286 in the dumped Emacs on any host but the one Emacs was dumped on.
1287
1288 The solution?  Don't use expand-file-name in site-init.el, or in
1289 anything it loads.  Yuck - some solution.
1290
1291 I'm not sure why this happens; if you can find out exactly what is
1292 going on, and perhaps find a fix or a workaround, please let us know.
1293 Perhaps the YP functions cache some information, the cache is included
1294 in the dumped Emacs, and is then inaccurate on any other host.
1295
1296
1297 ** HP-UX
1298 *** I get complaints about the mapping of my HP keyboard at startup,
1299 but I haven't changed anything.
1300
1301 The default HP keymap is set up to have Mod1 assigned to two different keys:
1302 Meta_L and Mode_switch (even though there is not actually a Mode_switch key on
1303 the keyboard -- it uses an "imaginary" keycode.)  There actually is a reason
1304 for this, but it's not a good one.  The correct fix is to execute this command
1305 upon starting X:
1306
1307         xmodmap -e 'remove mod1 = Mode_switch'
1308
1309 *** On HP-UX, you get "poll: Interrupted system call" message in the
1310 window where XEmacs was launched.
1311
1312 Richard Cognot <cognot@ensg.u-nancy.fr> writes:
1313
1314   I get a very strange problem when linking libc.a dynamically: every
1315   event (mouse, keyboard, expose...) results in a "poll: Interrupted
1316   system call" message in the window where XEmacs was
1317   launched. Forcing a static link of libc.a alone by adding
1318   /usr/lib/libc.a at the end of the link line solves this. Note that
1319   my 9.07 build of 19.14b17 and my (old) build of 19.13 both exhibit
1320   the same behaviour. I've tried various hpux patches to no avail. If
1321   this problem cannot be solved before the release date, binary kits
1322   for HP *must* be linked statically against libc, otherwise this
1323   problem will show up. (This is directed at whoever will volunteer
1324   for this kit, as I won't be available to do it, unless 19.14 gets
1325   delayed until mid-june ;-). I think this problem will be an FAQ soon
1326   after the release otherwise.
1327
1328 Note: The above entry is probably not valid for XEmacs 21.0 and
1329 later.
1330
1331 *** The right Alt key works wrong on German HP keyboards (and perhaps
1332    other non-English HP keyboards too).
1333
1334 This is because HP-UX defines the modifiers wrong in X.  Here is a
1335 shell script to fix the problem; be sure that it is run after VUE
1336 configures the X server.
1337
1338     xmodmap 2> /dev/null - << EOF
1339     keysym Alt_L = Meta_L
1340     keysym Alt_R = Meta_R
1341     EOF
1342
1343     xmodmap - << EOF
1344     clear mod1
1345     keysym Mode_switch = NoSymbol
1346     add mod1 = Meta_L
1347     keysym Meta_R = Mode_switch
1348     add mod2 = Mode_switch
1349     EOF
1350
1351 *** `Pid xxx killed due to text modification or page I/O error'
1352
1353 On HP-UX, you can get that error when the Emacs executable is on an NFS
1354 file system.  HP-UX responds this way if it tries to swap in a page and
1355 does not get a response from the server within a timeout whose default
1356 value is just ten seconds.
1357
1358 If this happens to you, extend the timeout period.
1359
1360 *** Shell mode on HP-UX gives the message, "`tty`: Ambiguous".
1361
1362 christos@theory.tn.cornell.edu says:
1363
1364 The problem is that in your .cshrc you have something that tries to
1365 execute `tty`. If you are not running the shell on a real tty then tty
1366 will print "not a tty". Csh expects one word in some places, but tty
1367 is giving it back 3.
1368
1369 The solution is to add a pair of quotes around `tty` to make it a
1370 single word:
1371
1372 if (`tty` == "/dev/console") 
1373
1374 should be changed to:
1375
1376 if ("`tty`" == "/dev/console") 
1377
1378 Even better, move things that set up terminal sections out of .cshrc
1379 and into .login.
1380
1381
1382 ** SCO
1383 *** Regular expressions matching bugs on SCO systems.
1384
1385 On SCO, there are problems in regexp matching when Emacs is compiled
1386 with the system compiler.  The compiler version is "Microsoft C
1387 version 6", SCO 4.2.0h Dev Sys Maintenance Supplement 01/06/93; Quick
1388 C Compiler Version 1.00.46 (Beta).  The solution is to compile with
1389 GCC.
1390
1391
1392 ** Windows
1393 *** Emacs exits with "X protocol error" when run with an X server for
1394 Windows.
1395
1396 A certain X server for Windows had a bug which caused this.
1397 Supposedly the newer 32-bit version of this server doesn't have the
1398 problem.
1399
1400
1401
1402 * Compatibility problems (with Emacs 18, GNU Emacs, or previous XEmacs/lemacs)
1403 ==============================================================================
1404
1405 *** "Symbol's value as variable is void: unread-command-char".
1406  "Wrong type argument: arrayp, #<keymap 143 entries>"
1407  "Wrong type argument: stringp, [#<keypress-event return>]"
1408
1409 There are a few incompatible changes in XEmacs, and these are the
1410 symptoms.  Some of the emacs-lisp code you are running needs to be
1411 updated to be compatible with XEmacs.
1412
1413 The code should not treat keymaps as arrays (use `define-key', etc.),
1414 should not use obsolete variables like `unread-command-char' (use
1415 `unread-command-events').  Many (most) of the new ways of doing things
1416 are compatible in GNU Emacs and XEmacs.
1417
1418 Modern Emacs packages (Gnus, VM, W3, efs, etc) are written to support
1419 GNU Emacs and XEmacs.  We have provided modified versions of several
1420 popular emacs packages (dired, etc) which are compatible with this
1421 version of emacs.  Check to make sure you have not set your load-path
1422 so that your private copies of these packages are being found before
1423 the versions in the lisp directory.
1424
1425 Make sure that your load-path and your $EMACSLOADPATH environment
1426 variable are not pointing at an Emacs18 lisp directory.  This will
1427 cripple emacs.
1428
1429 ** Some packages that worked before now cause the error
1430 Wrong type argument: arrayp, #<face ... >
1431
1432 Code which uses the `face' accessor functions must be recompiled with
1433 xemacs 19.9 or later.  The functions whose callers must be recompiled
1434 are: face-font, face-foreground, face-background,
1435 face-background-pixmap, and face-underline-p.  The .elc files
1436 generated by version 19.9 will work in 19.6 and 19.8, but older .elc
1437 files which contain calls to these functions will not work in 19.9.
1438
1439 ** Signaling: (error "Byte code stack underflow (byte compiler bug), pc 38")
1440
1441 This error is given when XEmacs 20 is compiled without MULE support
1442 but is attempting to load a .elc which requires MULE support.  The fix
1443 is to rebytecompile the offending file.
1444
1445 ** Signaling: (wrong-type-argument ...) when loading mail-abbrevs
1446
1447 The is seen when installing the Insidious Big Brother Data Base (bbdb)
1448 which includes an outdated copy of mail-abbrevs.el.  Remove the copy
1449 that comes with bbdb and use the one that comes with XEmacs.
1450
1451
1452 * MULE issues
1453 =============
1454
1455 ** A reminder: XEmacs/Mule work does not currently receive *any*
1456 funding, and all work is done by volunteers.  If you think you can
1457 help, please contact the XEmacs maintainers.
1458
1459 ** XEmacs/Mule doesn't support TTY's satisfactorily.
1460
1461 This is a major problem, which we plan to address in a future release
1462 of XEmacs.  Basically, XEmacs should have primitives to be told
1463 whether the terminal can handle international output, and which
1464 locale.  Also, it should be able to do approximations of characters to
1465 the nearest supported by the locale.
1466
1467 ** Internationalized (Asian) Isearch doesn't work.
1468
1469 Currently, Isearch doesn't directly support any of the input methods
1470 that are not XIM based (like egg, canna and quail) (and there are
1471 potential problems with XIM version too...).  If you're using egg
1472 there is a workaround.  Hitting <RET> right after C-s to invoke
1473 Isearch will put Isearch in string mode, where a complete string can
1474 be typed into the minibuffer and then processed by Isearch afterwards.
1475 Since egg is now supported in the minibuffer using string mode you can
1476 now use egg to input your Japanese, Korean or Chinese string, then hit
1477 return to send that to Isearch and then use standard Isearch commands
1478 from there.
1479
1480 ** Using egg and mousing around while in 'fence' mode screws up my
1481 buffer.
1482
1483 Don't do this. The fence modes of egg and canna are currently very
1484 modal, and messing with where they expect point to be and what they
1485 think is the current buffer is just asking for trouble. If you're
1486 lucky they will realize that something is awry, and simply delete the
1487 fence, but worst case can trash other buffers too. We've tried to
1488 protect against this where we can, but there still are many ways to
1489 shoot yourself in the foot. So just finish what you are typing into
1490 the fence before reaching for the mouse.
1491
1492 ** Not all languages in Quail are supported like Devanagari and Indian
1493 languages, Lao and Tibetan.
1494
1495 Quail requires more work and testing.  Although it has been ported to
1496 XEmacs, it works really well for Japanese and for the European
1497 languages.
1498
1499 ** Right-to-left mode is not yet implemented, so languages like
1500 Arabic, Hebrew and Thai don't work.
1501
1502 Getting this right requires more work.  It may be implemented in a
1503 future XEmacs version, but don't hold your breath.  If you know
1504 someone who is ready to implement this, please let us know.
1505
1506 ** We need more developers and native language testers.  It's extremely
1507 difficult (and not particularly productive) to address languages that
1508 nobody is using and testing.
1509
1510 ** The kWnn and cWnn support for Chinese and Korean needs developers
1511 and testers.  It probably doesn't work.
1512
1513 ** There are no `native XEmacs' TUTORIALs for any Asian languages,
1514 including Japanese.  FSF Emacs and XEmacs tutorials are quite similar, 
1515 so it should be sufficient to skim through the differences and apply
1516 them to the Japanese version.
1517
1518 ** We only have localized menus translated for Japanese, and the
1519 Japanese menus are developing bitrot (the Mule menu appears in
1520 English).
1521
1522 ** XIM is untested for any language other than Japanese.