Add with-file-modes macro, and use it
[bpt/emacs.git] / etc / PROBLEMS
CommitLineData
5e14abf8
KS
1Known Problems with GNU Emacs
2
9a00bed5 3Copyright (C) 1987-1989, 1993-1999, 2001-2014 Free Software Foundation, Inc.
5b87ad55
GM
4See the end of the file for license conditions.
5
6
a933dad1 7This file describes various problems that have been encountered
2de04022
GM
8in compiling, installing and running GNU Emacs. Try doing C-c C-t
9and browsing through the outline headers. (See C-h m for help on
f995538b
GM
10Outline mode.) Information about systems that are no longer supported,
11and old Emacs releases, has been removed. Consult older versions of
12this file if you are interested in that information.
a933dad1 13
0d3c6661 14* Mule-UCS doesn't work in Emacs 23 onwards
2c311b39
DL
15
16It's completely redundant now, as far as we know.
17
9dc15871 18* Emacs startup failures
32364f49 19
9dc15871 20** Emacs fails to start, complaining about missing fonts.
32364f49 21
9dc15871 22A typical error message might be something like
32364f49 23
9dc15871 24 No fonts match `-*-fixed-medium-r-*--6-*-*-*-*-*-iso8859-1'
6b61353c 25
9dc15871 26This happens because some X resource specifies a bad font family for
79baa30b 27Emacs to use. The possible places where this specification might be are:
6b61353c 28
9dc15871 29 - in your ~/.Xdefaults file
6b61353c 30
9dc15871 31 - client-side X resource file, such as ~/Emacs or
3e702d16 32 /usr/share/X11/app-defaults/Emacs
6b61353c 33
9dc15871
EZ
34One of these files might have bad or malformed specification of a
35fontset that Emacs should use. To fix the problem, you need to find
36the problematic line(s) and correct them.
6b61353c 37
9dc15871 38** Emacs aborts while starting up, only when run without X.
6b61353c 39
9dc15871
EZ
40This problem often results from compiling Emacs with GCC when GCC was
41installed incorrectly. The usual error in installing GCC is to
42specify --includedir=/usr/include. Installation of GCC makes
43corrected copies of the system header files. GCC is supposed to use
44the corrected copies in preference to the original system headers.
45Specifying --includedir=/usr/include causes the original system header
46files to be used. On some systems, the definition of ioctl in the
47original system header files is invalid for ANSI C and causes Emacs
48not to work.
6b61353c 49
9dc15871
EZ
50The fix is to reinstall GCC, and this time do not specify --includedir
51when you configure it. Then recompile Emacs. Specifying --includedir
52is appropriate only in very special cases and it should *never* be the
53same directory where system header files are kept.
6b61353c 54
9dc15871 55** Emacs does not start, complaining that it cannot open termcap database file.
6b61353c 56
9dc15871
EZ
57If your system uses Terminfo rather than termcap (most modern
58systems do), this could happen if the proper version of
59ncurses is not visible to the Emacs configure script (i.e. it
60cannot be found along the usual path the linker looks for
79baa30b 61libraries). It can happen because your version of ncurses is
9dc15871 62obsolete, or is available only in form of binaries.
6b61353c 63
9dc15871
EZ
64The solution is to install an up-to-date version of ncurses in
65the developer's form (header files, static libraries and
66symbolic links); in some GNU/Linux distributions (e.g. Debian)
67it constitutes a separate package.
6b61353c 68
9dc15871 69** Emacs 20 and later fails to load Lisp files at startup.
5b4ffca2 70
9dc15871 71The typical error message might be like this:
5b4ffca2 72
9dc15871 73 "Cannot open load file: fontset"
c763d515 74
9dc15871
EZ
75This could happen if you compress the file lisp/subdirs.el. That file
76tells Emacs what are the directories where it should look for Lisp
77files. Emacs cannot work with subdirs.el compressed, since the
78Auto-compress mode it needs for this will not be loaded until later,
79when your .emacs file is processed. (The package `fontset.el' is
80required to set up fonts used to display text on window systems, and
81it's loaded very early in the startup procedure.)
f1c231c4 82
9dc15871
EZ
83Similarly, any other .el file for which there's no corresponding .elc
84file could fail to load if it is compressed.
fc2938d1 85
c64233b2 86The solution is to uncompress all .el files that don't have a .elc file.
6b61353c 87
9dc15871 88Another possible reason for such failures is stale *.elc files
b7bd8478 89lurking somewhere on your load-path -- see the next section.
f0f62f71 90
9dc15871 91** Emacs prints an error at startup after upgrading from an earlier version.
f0f62f71 92
9dc15871 93An example of such an error is:
f0f62f71 94
9dc15871 95 x-complement-fontset-spec: "Wrong type argument: stringp, nil"
fc1bfc2a 96
9dc15871
EZ
97This can be another symptom of stale *.elc files in your load-path.
98The following command will print any duplicate Lisp files that are
99present in load-path:
fc1bfc2a 100
16eea16b 101 emacs -batch -f list-load-path-shadows
fc1bfc2a 102
9dc15871
EZ
103If this command prints any file names, some of these files are stale,
104and should be deleted or their directories removed from your
105load-path.
60f553d2 106
9dc15871 107* Crash bugs
cc305a60 108
9978c06c 109** Emacs crashes when running in a terminal, if compiled with GCC 4.5.0
3e702d16 110
5a7f1eb1
CY
111This version of GCC is buggy: see
112
9a00bed5 113 http://debbugs.gnu.org/6031
5a7f1eb1
CY
114 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43904
115
116You can work around this error in gcc-4.5 by omitting sibling call
117optimization. To do this, configure Emacs with
118
119 CFLAGS="-g -O2 -fno-optimize-sibling-calls" ./configure
120
f9888580
EZ
121** Emacs compiled with GCC 4.6.1 crashes on MS-Windows when C-g is pressed
122
123This is known to happen when Emacs is compiled with MinGW GCC 4.6.1
124with the -O2 option (which is the default in the Windows build). The
125reason is a bug in MinGW GCC 4.6.1; to work around, either add the
126`-fno-omit-frame-pointer' switch to GCC or compile without
127optimizations (`--no-opt' switch to the configure.bat script).
128
9dc15871 129** Emacs crashes in x-popup-dialog.
cc305a60 130
9dc15871
EZ
131This can happen if the dialog widget cannot find the font it wants to
132use. You can work around the problem by specifying another font with
133an X resource--for example, `Emacs.dialog*.font: 9x15' (or any font that
134happens to exist on your X server).
fc2938d1 135
9dc15871 136** Emacs crashes when you use Bibtex mode.
fc2938d1 137
9dc15871
EZ
138This happens if your system puts a small limit on stack size. You can
139prevent the problem by using a suitable shell command (often `ulimit')
140to raise the stack size limit before you run Emacs.
177c0ea7 141
9dc15871
EZ
142Patches to raise the stack size limit automatically in `main'
143(src/emacs.c) on various systems would be greatly appreciated.
fc2938d1 144
9dc15871
EZ
145** Error message `Symbol's value as variable is void: x', followed by
146a segmentation fault and core dump.
c93bdf05 147
9dc15871
EZ
148This has been tracked to a bug in tar! People report that tar erroneously
149added a line like this at the beginning of files of Lisp code:
c93bdf05 150
9dc15871 151 x FILENAME, N bytes, B tape blocks
c93bdf05 152
9dc15871
EZ
153If your tar has this problem, install GNU tar--if you can manage to
154untar it :-).
c93bdf05 155
e9b4dbdc 156** Emacs can crash when displaying PNG images with transparency.
3e702d16 157
9a00bed5
GM
158This is due to a bug introduced in ImageMagick 6.8.2-3. The bug should
159be fixed in ImageMagick 6.8.3-10. See <URL:http://debbugs.gnu.org/13867>.
19151a7f 160
9dc15871 161** Crashes when displaying GIF images in Emacs built with version
3e702d16 162
9dc15871
EZ
163libungif-4.1.0 are resolved by using version libungif-4.1.0b1.
164Configure checks for the correct version, but this problem could occur
165if a binary built against a shared libungif is run on a system with an
166older version.
4593687f 167
9dc15871 168** Emacs aborts inside the function `tparam1'.
9272ccfc 169
9dc15871
EZ
170This can happen if Emacs was built without terminfo support, but the
171terminal's capabilities use format that is only supported by terminfo.
172If your system has ncurses installed, this might happen if your
173version of ncurses is broken; upgrading to a newer version of ncurses
174and reconfiguring and rebuilding Emacs should solve this.
9272ccfc 175
9dc15871
EZ
176All modern systems support terminfo, so even if ncurses is not the
177problem, you should look for a way to configure Emacs so that it uses
178terminfo when built.
9272ccfc 179
0d774907 180** Emacs crashes when using some version of the Exceed X server.
7aa70236 181
0d774907
CY
182Upgrading to a newer version of Exceed has been reported to prevent
183these crashes. You should consider switching to a free X server, such
184as Xming or Cygwin/X.
7aa70236 185
9dc15871 186** Emacs crashes with SIGSEGV in XtInitializeWidgetClass.
7c22dc9d 187
9dc15871 188It crashes on X, but runs fine when called with option "-nw".
7c22dc9d 189
9dc15871
EZ
190This has been observed when Emacs is linked with GNU ld but without passing
191the -z nocombreloc flag. Emacs normally knows to pass the -z nocombreloc
192flag when needed, so if you come across a situation where the flag is
193necessary but missing, please report it via M-x report-emacs-bug.
7c22dc9d 194
9dc15871
EZ
195On platforms such as Solaris, you can also work around this problem by
196configuring your compiler to use the native linker instead of GNU ld.
7c22dc9d 197
365dc66c 198** When Emacs is compiled with Gtk+, closing a display kills Emacs.
1437ec2b 199
365dc66c
CY
200There is a long-standing bug in GTK that prevents it from recovering
201from disconnects: http://bugzilla.gnome.org/show_bug.cgi?id=85715.
1437ec2b 202
365dc66c
CY
203Thus, for instance, when Emacs is run as a server on a text terminal,
204and an X frame is created, and the X server for that frame crashes or
205exits unexpectedly, Emacs must exit to prevent a GTK error that would
206result in an endless loop.
c4c122cb 207
365dc66c
CY
208If you need Emacs to be able to recover from closing displays, compile
209it with the Lucid toolkit instead of GTK.
c4c122cb 210
538044ed 211** Emacs crashes when you try to view a file with complex characters.
3e702d16 212
538044ed
GM
213For example, the etc/HELLO file (as shown by C-h h).
214The message "symbol lookup error: /usr/bin/emacs: undefined symbol: OTF_open"
215is shown in the terminal from which you launched Emacs.
216This problem only happens when you use a graphical display (ie not
217with -nw) and compiled Emacs with the "libotf" library for complex
218text handling.
219
220This problem occurs because unfortunately there are two libraries
221called "libotf". One is the library for handling OpenType fonts,
222http://www.m17n.org/libotf/, which is the one that Emacs expects.
223The other is a library for Open Trace Format, and is used by some
224versions of the MPI message passing interface for parallel
225programming.
226
227For example, on RHEL6 GNU/Linux, the OpenMPI rpm provides a version
228of "libotf.so" in /usr/lib/openmpi/lib. This directory is not
229normally in the ld search path, but if you want to use OpenMPI,
230you must issue the command "module load openmpi". This adds
231/usr/lib/openmpi/lib to LD_LIBRARY_PATH. If you then start Emacs from
232the same shell, you will encounter this crash.
0d3c6661 233Ref: <URL:https://bugzilla.redhat.com/show_bug.cgi?id=844776>
538044ed
GM
234
235There is no good solution to this problem if you need to use both
236OpenMPI and Emacs with libotf support. The best you can do is use a
237wrapper shell script (or function) "emacs" that removes the offending
238element from LD_LIBRARY_PATH before starting emacs proper.
239Or you could recompile Emacs with an -Wl,-rpath option that
240gives the location of the correct libotf.
241
9dc15871 242* General runtime problems
7c22dc9d 243
9dc15871 244** Lisp problems
677e7496 245
9dc15871 246*** Changes made to .el files do not take effect.
677e7496 247
9dc15871
EZ
248You may have forgotten to recompile them into .elc files.
249Then the old .elc files will be loaded, and your changes
250will not be seen. To fix this, do M-x byte-recompile-directory
251and specify the directory that contains the Lisp files.
677e7496 252
0d3c6661 253Emacs prints a warning when loading a .elc file which is older
9dc15871 254than the corresponding .el file.
677e7496 255
0d3c6661
GM
256Alternatively, if you set the option `load-prefer-newer' non-nil,
257Emacs will load whichever version of a file is the newest.
258
259*** Watch out for the EMACSLOADPATH environment variable
677e7496 260
c64233b2 261EMACSLOADPATH overrides which directories the function "load" will search.
677e7496 262
0d3c6661
GM
263If you observe strange problems, check for this variable in your
264environment.
9ed04369 265
9dc15871 266*** Using epop3.el package causes Emacs to signal an error.
9ed04369 267
9dc15871 268The error message might be something like this:
b87207a0 269
9dc15871 270 "Lisp nesting exceeds max-lisp-eval-depth"
b87207a0 271
9dc15871
EZ
272This happens because epop3 redefines the function gethash, which is a
273built-in primitive beginning with Emacs 21.1. We don't have a patch
274for epop3 that fixes this, but perhaps a newer version of epop3
275corrects that.
177c0ea7 276
9dc15871 277*** Buffers from `with-output-to-temp-buffer' get set up in Help mode.
177c0ea7 278
9dc15871
EZ
279Changes in Emacs 20.4 to the hooks used by that function cause
280problems for some packages, specifically BBDB. See the function's
281documentation for the hooks involved. BBDB 2.00.06 fixes the problem.
177c0ea7 282
9dc15871
EZ
283*** The Hyperbole package causes *Help* buffers not to be displayed in
284Help mode due to setting `temp-buffer-show-hook' rather than using
79baa30b
GM
285`add-hook'. Using `(add-hook 'temp-buffer-show-hook 'help-mode-finish)'
286after loading Hyperbole should fix this.
177c0ea7 287
9dc15871 288** Keyboard problems
b87207a0 289
e1602f7b
CY
290*** Unable to enter the M-| key on some German keyboards.
291Some users have reported that M-| suffers from "keyboard ghosting".
292This can't be fixed by Emacs, as the keypress never gets passed to it
293at all (as can be verified using "xev"). You can work around this by
294typing `ESC |' instead.
295
9dc15871 296*** "Compose Character" key does strange things when used as a Meta key.
61638355 297
9dc15871
EZ
298If you define one key to serve as both Meta and Compose Character, you
299will get strange results. In previous Emacs versions, this "worked"
300in that the key acted as Meta--that's because the older Emacs versions
301did not try to support Compose Character. Now Emacs tries to do
302character composition in the standard X way. This means that you
303must pick one meaning or the other for any given key.
61638355 304
9dc15871
EZ
305You can use both functions (Meta, and Compose Character) if you assign
306them to two different keys.
a47a639f 307
9dc15871 308*** C-z just refreshes the screen instead of suspending Emacs.
a47a639f 309
9dc15871
EZ
310You are probably using a shell that doesn't support job control, even
311though the system itself is capable of it. Either use a different shell,
312or set the variable `cannot-suspend' to a non-nil value.
a47a639f 313
9dc15871 314** Mailers and other helper programs
61638355 315
9dc15871 316*** movemail compiled with POP support can't connect to the POP server.
61638355 317
9dc15871
EZ
318Make sure that the `pop' entry in /etc/services, or in the services
319NIS map if your machine uses NIS, has the same port number as the
320entry on the POP server. A common error is for the POP server to be
321listening on port 110, the assigned port for the POP3 protocol, while
322the client is trying to connect on port 109, the assigned port for the
323old POP protocol.
61638355 324
9dc15871 325*** RMAIL gets error getting new mail.
61638355 326
9dc15871
EZ
327RMAIL gets new mail from /usr/spool/mail/$USER using a program
328called `movemail'. This program interlocks with /bin/mail using
329the protocol defined by /bin/mail.
61638355 330
9dc15871
EZ
331There are two different protocols in general use. One of them uses
332the `flock' system call. The other involves creating a lock file;
333`movemail' must be able to write in /usr/spool/mail in order to do
334this. You control which one is used by defining, or not defining,
611ac47b 335the macro MAIL_USE_FLOCK in config.h.
9dc15871
EZ
336IF YOU DON'T USE THE FORM OF INTERLOCKING THAT IS NORMAL ON YOUR
337SYSTEM, YOU CAN LOSE MAIL!
61638355 338
9dc15871
EZ
339If your system uses the lock file protocol, and fascist restrictions
340prevent ordinary users from writing the lock files in /usr/spool/mail,
341you may need to make `movemail' setgid to a suitable group such as
342`mail'. To do this, use the following commands (as root) after doing the
343make install.
61638355 344
3256a475
RC
345 chgrp mail movemail
346 chmod 2755 movemail
61638355 347
9dc15871
EZ
348Installation normally copies movemail from the build directory to an
349installation directory which is usually under /usr/local/lib. The
350installed copy of movemail is usually in the directory
351/usr/local/lib/emacs/VERSION/TARGET. You must change the group and
352mode of the installed copy; changing the group and mode of the build
353directory copy is ineffective.
61638355 354
9dc15871 355*** rcs2log gives you the awk error message "too many fields".
61638355 356
9dc15871
EZ
357This is due to an arbitrary limit in certain versions of awk.
358The solution is to use gawk (GNU awk).
61638355 359
9dc15871 360** Problems with hostname resolution
61638355 361
9dc15871 362*** Emacs does not know your host's fully-qualified domain name.
3c418e54 363
53b30c38
GM
364For example, (system-name) returns some variation on
365"localhost.localdomain", rather the name you were expecting.
366
9dc15871 367You need to configure your machine with a fully qualified domain name,
53b30c38 368(i.e. a name with at least one ".") either in /etc/hosts,
c64233b2 369/etc/hostname, the NIS, or wherever your system calls for specifying this.
f9130829 370
9dc15871
EZ
371If you cannot fix the configuration, you can set the Lisp variable
372mail-host-address to the value you want.
f9130829 373
05834033 374** NFS
f9130829 375
9dc15871
EZ
376*** Emacs says it has saved a file, but the file does not actually
377appear on disk.
f9130829 378
9dc15871
EZ
379This can happen on certain systems when you are using NFS, if the
380remote disk is full. It is due to a bug in NFS (or certain NFS
381implementations), and there is apparently nothing Emacs can do to
382detect the problem. Emacs checks the failure codes of all the system
383calls involved in writing a file, including `close'; but in the case
384where the problem occurs, none of those system calls fails.
f9130829 385
b7bd8478 386** PSGML conflicts with sgml-mode.
d0cf6c7d 387
9dc15871
EZ
388PSGML package uses the same names of some variables (like keymap)
389as built-in sgml-mode.el because it was created as a replacement
390of that package. The conflict will be shown if you load
391sgml-mode.el before psgml.el. E.g. this could happen if you edit
392HTML page and then start to work with SGML or XML file. html-mode
393(from sgml-mode.el) is used for HTML file and loading of psgml.el
394(for sgml-mode or xml-mode) will cause an error.
d0cf6c7d 395
73639601
EZ
396** PCL-CVS
397
398*** Lines are not updated or new lines are added in the buffer upon commit.
399
400When committing files located higher in the hierarchy than the examined
401directory, some versions of the CVS program return an ambiguous message
402from which PCL-CVS cannot extract the full location of the committed
403files. As a result, the corresponding lines in the PCL-CVS buffer are
404not updated with the new revision of these files, and new lines are
405added to the top-level directory.
406
407This can happen with CVS versions 1.12.8 and 1.12.9. Upgrade to CVS
4081.12.10 or newer to fix this problem.
409
9dc15871 410** Miscellaneous problems
f936978f 411
e1bf8792
GM
412*** Editing files with very long lines is slow.
413
414For example, simply moving through a file that contains hundreds of
415thousands of characters per line is slow, and consumes a lot of CPU.
416This is a known limitation of Emacs with no solution at this time.
417
f5578c7f
EZ
418*** Emacs uses 100% of CPU time
419
05834033
GM
420This was a known problem with some old versions of the Semantic package.
421The solution was to upgrade Semantic to version 2.0pre4 (distributed
422with CEDET 1.0pre4) or later. Note that Emacs includes Semantic since
42323.2, and this issue does not apply to the included version.
f5578c7f 424
9dc15871 425*** Self-documentation messages are garbled.
6fb6f3ac 426
6e911150 427This means that the file `etc/DOC' doesn't properly correspond
9dc15871
EZ
428with the Emacs executable. Redumping Emacs and then installing the
429corresponding pair of files should fix the problem.
b87207a0 430
9dc15871
EZ
431*** Programs running under terminal emulator do not recognize `emacs'
432terminal type.
b87207a0 433
9dc15871
EZ
434The cause of this is a shell startup file that sets the TERMCAP
435environment variable. The terminal emulator uses that variable to
c64233b2 436provide the information on the special terminal type that Emacs emulates.
b87207a0 437
9dc15871
EZ
438Rewrite your shell startup file so that it does not change TERMCAP
439in such a case. You could use the following conditional which sets
440it only if it is undefined.
b87207a0 441
9dc15871 442 if ( ! ${?TERMCAP} ) setenv TERMCAP ~/my-termcap-file
e085efdb 443
9dc15871
EZ
444Or you could set TERMCAP only when you set TERM--which should not
445happen in a non-login shell.
fa99e2a4 446
9dc15871 447*** In Shell mode, you get a ^M at the end of every line.
c8d9b4ee 448
9dc15871
EZ
449This happens to people who use tcsh, because it is trying to be too
450smart. It sees that the Shell uses terminal type `unknown' and turns
451on the flag to output ^M at the end of each line. You can fix the
452problem by adding this to your .cshrc file:
fe445893 453
9dc15871 454 if ($?EMACS) then
4b1aaa8b 455 if ("$EMACS" =~ /*) then
9dc15871
EZ
456 unset edit
457 stty -icrnl -onlcr -echo susp ^Z
458 endif
459 endif
c8d9b4ee 460
9dc15871 461*** Emacs startup on GNU/Linux systems (and possibly other systems) is slow.
d9810886 462
9dc15871
EZ
463This can happen if the system is misconfigured and Emacs can't get the
464full qualified domain name, FQDN. You should have your FQDN in the
465/etc/hosts file, something like this:
a408ce18 466
9dc15871
EZ
467127.0.0.1 localhost
468129.187.137.82 nuc04.t30.physik.tu-muenchen.de nuc04
a408ce18 469
9dc15871 470The way to set this up may vary on non-GNU systems.
a38f41c4 471
9dc15871 472*** Attempting to visit remote files via ange-ftp fails.
a38f41c4 473
9dc15871
EZ
474If the error message is "ange-ftp-file-modtime: Specified time is not
475representable", then this could happen when `lukemftp' is used as the
476ftp client. This was reported to happen on Debian GNU/Linux, kernel
477version 2.4.3, with `lukemftp' 1.5-5, but might happen on other
478systems as well. To avoid this problem, switch to using the standard
479ftp client. On a Debian system, type
a38f41c4 480
9dc15871 481 update-alternatives --config ftp
a38f41c4 482
9dc15871 483and then choose /usr/bin/netkit-ftp.
a38f41c4 484
9dc15871 485*** Dired is very slow.
4e0bd469
EZ
486
487This could happen if invocation of the `df' program takes a long
488time. Possible reasons for this include:
489
490 - ClearCase mounted filesystems (VOBs) that sometimes make `df'
491 response time extremely slow (dozens of seconds);
492
493 - slow automounters on some old versions of Unix;
494
495 - slow operation of some versions of `df'.
496
497To work around the problem, you could either (a) set the variable
498`directory-free-space-program' to nil, and thus prevent Emacs from
499invoking `df'; (b) use `df' from the GNU Fileutils package; or
500(c) use CVS, which is Free Software, instead of ClearCase.
501
9dc15871 502*** ps-print commands fail to find prologue files ps-prin*.ps.
cc2f2825
EZ
503
504This can happen if you use an old version of X-Symbol package: it
505defines compatibility functions which trick ps-print into thinking it
506runs in XEmacs, and look for the prologue files in a wrong directory.
507
508The solution is to upgrade X-Symbol to a later version.
509
9dc15871 510*** On systems with shared libraries you might encounter run-time errors
f4f4ee4d
GM
511from the dynamic linker telling you that it is unable to find some
512shared libraries, for instance those for Xaw3d or image support.
513These errors mean Emacs has been linked with a library whose shared
514library is not in the default search path of the dynamic linker.
515
0cb26e21
EZ
516Similar problems could prevent Emacs from building, since the build
517process invokes Emacs several times.
518
f4f4ee4d
GM
519On many systems, it is possible to set LD_LIBRARY_PATH in your
520environment to specify additional directories where shared libraries
521can be found.
522
523Other systems allow to set LD_RUN_PATH in a similar way, but before
524Emacs is linked. With LD_RUN_PATH set, the linker will include a
525specified run-time search path in the executable.
526
8643647c 527On some systems, Emacs can crash due to problems with dynamic
c31138a1
EZ
528linking. Specifically, on SGI Irix 6.5, crashes were reported with
529backtraces like this:
530
531 (dbx) where
532 0 strcmp(0xf49239d, 0x4031184, 0x40302b4, 0x12, 0xf0000000, 0xf4923aa, 0x0, 0x492ddb2) ["/xlv22/ficus-jan23/work/irix/lib/libc/libc_n32_M3_ns/strings/strcmp.s":35, 0xfb7e480]
533 1 general_find_symbol(0xf49239d, 0x0, 0x0, 0x0, 0xf0000000, 0xf4923aa, 0x0, 0x492ddb2)
534 ["/comp2/mtibuild/v73/workarea/v7.3/rld/rld.c":2140, 0xfb65a98]
535 2 resolve_symbol(0xf49239d, 0x4031184, 0x0, 0xfbdd438, 0x0, 0xf4923aa, 0x0, 0x492ddb2)
536 ["/comp2/mtibuild/v73/workarea/v7.3/rld/rld.c":1947, 0xfb657e4]
537 3 lazy_text_resolve(0xd18, 0x1a3, 0x40302b4, 0x12, 0xf0000000, 0xf4923aa, 0x0, 0x492ddb2)
538 ["/comp2/mtibuild/v73/workarea/v7.3/rld/rld.c":997, 0xfb64d44]
539 4 _rld_text_resolve(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
540 ["/comp2/mtibuild/v73/workarea/v7.3/rld/rld_bridge.s":175, 0xfb6032c]
541
79baa30b 542(`rld' is the dynamic linker.) We don't know why this
8643647c 543happens, but setting the environment variable LD_BIND_NOW to 1 (which
c31138a1
EZ
544forces the dynamic linker to bind all shared objects early on) seems
545to work around the problem.
546
f4f4ee4d
GM
547Please refer to the documentation of your dynamic linker for details.
548
9dc15871 549*** When you run Ispell from Emacs, it reports a "misalignment" error.
b1739b51 550
9dc15871
EZ
551This can happen if you compiled the Ispell program to use ASCII
552characters only and then try to use it from Emacs with non-ASCII
553characters, like Latin-1. The solution is to recompile Ispell with
554support for 8-bit characters.
b1739b51 555
9dc15871
EZ
556To see whether your Ispell program supports 8-bit characters, type
557this at your shell's prompt:
b1739b51 558
9dc15871 559 ispell -vv
b1739b51 560
9dc15871
EZ
561and look in the output for the string "NO8BIT". If Ispell says
562"!NO8BIT (8BIT)", your speller supports 8-bit characters; otherwise it
563does not.
e9a52cfe 564
9dc15871
EZ
565To rebuild Ispell with 8-bit character support, edit the local.h file
566in the Ispell distribution and make sure it does _not_ define NO8BIT.
567Then rebuild the speller.
e9a52cfe 568
9dc15871
EZ
569Another possible cause for "misalignment" error messages is that the
570version of Ispell installed on your machine is old. Upgrade.
e9a52cfe 571
9dc15871
EZ
572Yet another possibility is that you are trying to spell-check a word
573in a language that doesn't fit the dictionary you choose for use by
574Ispell. (Ispell can only spell-check one language at a time, because
575it uses a single dictionary.) Make sure that the text you are
576spelling and the dictionary used by Ispell conform to each other.
e9a52cfe 577
9dc15871
EZ
578If your spell-checking program is Aspell, it has been reported that if
579you have a personal configuration file (normally ~/.aspell.conf), it
580can cause this error. Remove that file, execute `ispell-kill-ispell'
581in Emacs, and then try spell-checking again.
e9a52cfe 582
9dc15871 583* Runtime problems related to font handling
e9a52cfe 584
b1446261
CY
585** Characters are displayed as empty boxes or with wrong font under X.
586
587*** This can occur when two different versions of FontConfig are used.
588For example, XFree86 4.3.0 has one version and Gnome usually comes
589with a newer version. Emacs compiled with Gtk+ will then use the
590newer version. In most cases the problem can be temporarily fixed by
591stopping the application that has the error (it can be Emacs or any
592other application), removing ~/.fonts.cache-1, and then start the
593application again. If removing ~/.fonts.cache-1 and restarting
594doesn't help, the application with problem must be recompiled with the
595same version of FontConfig as the rest of the system uses. For KDE,
596it is sufficient to recompile Qt.
597
598*** Some fonts have a missing glyph and no default character. This is
599known to occur for character number 160 (no-break space) in some
600fonts, such as Lucida but Emacs sets the display table for the unibyte
601and Latin-1 version of this character to display a space.
602
603*** Some of the fonts called for in your fontset may not exist on your
604X server.
e9a52cfe 605
3e702d16 606Each X font covers just a fraction of the characters that Emacs
9dc15871 607supports. To display the whole range of Emacs characters requires
b1446261
CY
608many different fonts, collected into a fontset. You can remedy the
609problem by installing additional fonts.
f25eb4f7 610
9dc15871 611The intlfonts distribution includes a full spectrum of fonts that can
9222ba5e 612display all the characters Emacs supports. The etl-unicode collection
3e702d16 613of fonts (available from <URL:ftp://ftp.x.org/contrib/fonts/>) includes
9222ba5e
EZ
614fonts that can display many Unicode characters; they can also be used
615by ps-print and ps-mule to print Unicode characters.
f25eb4f7 616
3e702d16 617** Under X, some characters appear improperly aligned in their lines.
f25eb4f7 618
3e702d16 619You may have bad fonts.
b1446261
CY
620
621** Under X, an unexpected monospace font is used as the default font.
622
623When compiled with XFT, Emacs tries to use a default font named
624"monospace". This is a "virtual font", which the operating system
625(Fontconfig) redirects to a suitable font such as DejaVu Sans Mono.
626On some systems, there exists a font that is actually named Monospace,
627which takes over the virtual font. This is considered an operating
628system bug; see
f25eb4f7 629
b1446261 630http://lists.gnu.org/archive/html/emacs-devel/2008-10/msg00696.html
edd7d3be 631
b1446261
CY
632If you encounter this problem, set the default font to a specific font
633in your .Xresources or initialization file. For instance, you can put
634the following in your .Xresources:
635
636Emacs.font: DejaVu Sans Mono 12
637
638** Certain fonts make each line take one pixel more than it should.
639
640This is because these fonts contain characters a little taller than
641the font's nominal height. Emacs needs to make sure that lines do not
642overlap.
edd7d3be 643
9dc15871 644** Font Lock displays portions of the buffer in incorrect faces.
42303132 645
9dc15871
EZ
646By far the most frequent cause of this is a parenthesis `(' or a brace
647`{' in column zero. Font Lock assumes that such a paren is outside of
648any comment or string. This is of course not true in general, but the
649vast majority of well-formatted program source files don't have such
650parens, and therefore this assumption is used to allow optimizations
651in Font Lock's syntactical analysis. These optimizations avoid some
652pathological cases where jit-lock, the Just-in-Time fontification
653introduced with Emacs 21.1, could significantly slow down scrolling
654through the buffer, especially scrolling backwards, and also jumping
655to the end of a very large buffer.
42303132 656
bf247b6e 657Beginning with version 22.1, a parenthesis or a brace in column zero
9dc15871
EZ
658is highlighted in bold-red face if it is inside a string or a comment,
659to indicate that it could interfere with Font Lock (and also with
660indentation) and should be moved or escaped with a backslash.
42303132 661
9dc15871
EZ
662If you don't use large buffers, or have a very fast machine which
663makes the delays insignificant, you can avoid the incorrect
664fontification by setting the variable
665`font-lock-beginning-of-syntax-function' to a nil value. (This must
666be done _after_ turning on Font Lock.)
f3d6f4ee 667
9dc15871
EZ
668Another alternative is to avoid a paren in column zero. For example,
669in a Lisp string you could precede the paren with a backslash.
f3d6f4ee 670
9dc15871 671** Emacs pauses for several seconds when changing the default font.
9f83d8b3 672
9dc15871
EZ
673This has been reported for fvwm 2.2.5 and the window manager of KDE
6742.1. The reason for the pause is Xt waiting for a ConfigureNotify
675event from the window manager, which the window manager doesn't send.
676Xt stops waiting after a default timeout of usually 5 seconds.
f29d1e75 677
9dc15871 678A workaround for this is to add something like
f29d1e75 679
9dc15871 680emacs.waitForWM: false
c24be289 681
9dc15871
EZ
682to your X resources. Alternatively, add `(wait-for-wm . nil)' to a
683frame's parameter list, like this:
c24be289 684
9dc15871 685 (modify-frame-parameters nil '((wait-for-wm . nil)))
b35319bf 686
9dc15871 687(this should go into your `.emacs' file).
b35319bf 688
9dc15871 689** Underlines appear at the wrong position.
b35319bf 690
9dc15871
EZ
691This is caused by fonts having a wrong UNDERLINE_POSITION property.
692Examples are the font 7x13 on XFree prior to version 4.1, or the jmk
6fc3871e
GM
693neep font from the Debian xfonts-jmk package prior to version 3.0.17.
694To circumvent this problem, set x-use-underline-position-properties
695to nil in your `.emacs'.
b35319bf 696
9dc15871 697To see what is the value of UNDERLINE_POSITION defined by the font,
c64233b2 698type `xlsfonts -lll FONT' and look at the font's UNDERLINE_POSITION property.
787994b7 699
9dc15871 700** When using Exceed, fonts sometimes appear too tall.
0a2eeca1 701
9dc15871
EZ
702When the display is set to an Exceed X-server and fonts are specified
703(either explicitly with the -fn option or implicitly with X resources)
704then the fonts may appear "too tall". The actual character sizes are
705correct but there is too much vertical spacing between rows, which
706gives the appearance of "double spacing".
0a2eeca1 707
9dc15871
EZ
708To prevent this, turn off the Exceed's "automatic font substitution"
709feature (in the font part of the configuration window).
0a2eeca1 710
405b495f
GM
711** Subscript/superscript text in TeX is hard to read.
712
713If `tex-fontify-script' is non-nil, tex-mode displays
714subscript/superscript text in the faces subscript/superscript, which
715are smaller than the normal font and lowered/raised. With some fonts,
716nested superscripts (say) can be hard to read. Switching to a
717different font, or changing your antialiasing setting (on an LCD
718screen), can both make the problem disappear. Alternatively, customize
719the following variables: tex-font-script-display (how much to
720lower/raise); tex-suscript-height-ratio (how much smaller than
721normal); tex-suscript-height-minimum (minimum height).
722
9dc15871 723* Internationalization problems
0a2eeca1 724
de25ebb8
RS
725** M-{ does not work on a Spanish PC keyboard.
726
727Many Spanish keyboards seem to ignore that combination. Emacs can't
728do anything about it.
729
b2d98113
CY
730** International characters aren't displayed under X.
731
732*** Missing X fonts
0a2eeca1 733
9dc15871
EZ
734XFree86 4 contains many fonts in iso10646-1 encoding which have
735minimal character repertoires (whereas the encoding part of the font
736name is meant to be a reasonable indication of the repertoire
737according to the XLFD spec). Emacs may choose one of these to display
738characters from the mule-unicode charsets and then typically won't be
739able to find the glyphs to display many characters. (Check with C-u
740C-x = .) To avoid this, you may need to use a fontset which sets the
741font for the mule-unicode sets explicitly. E.g. to use GNU unifont,
742include in the fontset spec:
0a2eeca1 743
9dc15871
EZ
744mule-unicode-2500-33ff:-gnu-unifont-*-iso10646-1,\
745mule-unicode-e000-ffff:-gnu-unifont-*-iso10646-1,\
746mule-unicode-0100-24ff:-gnu-unifont-*-iso10646-1
0a2eeca1 747
9dc15871 748** The UTF-8/16/7 coding systems don't encode CJK (Far Eastern) characters.
0a2eeca1 749
ce9b56fe
KH
750Emacs directly supports the Unicode BMP whose code points are in the
751ranges 0000-33ff and e000-ffff, and indirectly supports the parts of
752CJK characters belonging to these legacy charsets:
753
754 GB2312, Big5, JISX0208, JISX0212, JISX0213-1, JISX0213-2, KSC5601
755
756The latter support is done in Utf-Translate-Cjk mode (turned on by
757default). Which Unicode CJK characters are decoded into which Emacs
758charset is decided by the current language environment. For instance,
759in Chinese-GB, most of them are decoded into chinese-gb2312.
119d3665 760
9dc15871
EZ
761If you read UTF-8 data with code points outside these ranges, the
762characters appear in the buffer as raw bytes of the original UTF-8
763(composed into a single quasi-character) and they will be written back
764correctly as UTF-8, assuming you don't break the composed sequences.
765If you read such characters from UTF-16 or UTF-7 data, they are
766substituted with the Unicode `replacement character', and you lose
767information.
119d3665 768
9dc15871 769** Accented ISO-8859-1 characters are displayed as | or _.
a933dad1 770
d6b7de9b
EZ
771Try other font set sizes (S-mouse-1). If the problem persists with
772other sizes as well, your text is corrupted, probably through software
773that is not 8-bit clean. If the problem goes away with another font
774size, it's probably because some fonts pretend to be ISO-8859-1 fonts
79baa30b 775when they are really ASCII fonts. In particular the schumacher-clean
d6b7de9b 776fonts have this bug in some versions of X.
a933dad1 777
d6b7de9b 778To see what glyphs are included in a font, use `xfd', like this:
a933dad1 779
d6b7de9b 780 xfd -fn -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-1
a933dad1 781
c64233b2 782If this shows only ASCII glyphs, the font is indeed the source of the problem.
a933dad1 783
d6b7de9b
EZ
784The solution is to remove the corresponding lines from the appropriate
785`fonts.alias' file, then run `mkfontdir' in that directory, and then run
786`xset fp rehash'.
177c0ea7 787
9dc15871 788** The `oc-unicode' package doesn't work with Emacs 21.
a933dad1 789
9dc15871
EZ
790This package tries to define more private charsets than there are free
791slots now. The current built-in Unicode support is actually more
792flexible. (Use option `utf-translate-cjk-mode' if you need CJK
793support.) Files encoded as emacs-mule using oc-unicode aren't
794generally read correctly by Emacs 21.
a933dad1 795
9dc15871 796* X runtime problems
de121241 797
9dc15871 798** X keyboard problems
de121241 799
9dc15871 800*** You "lose characters" after typing Compose Character key.
a933dad1 801
9dc15871 802This is because the Compose Character key is defined as the keysym
3e702d16 803Multi_key, and Emacs (seeing that) does the proper X
9dc15871
EZ
804character-composition processing. If you don't want your Compose key
805to do that, you can redefine it with xmodmap.
a933dad1 806
9dc15871 807For example, here's one way to turn it into a Meta key:
177c0ea7 808
9dc15871 809 xmodmap -e "keysym Multi_key = Meta_L"
a933dad1 810
9dc15871
EZ
811If all users at your site of a particular keyboard prefer Meta to
812Compose, you can make the remapping happen automatically by adding the
813xmodmap command to the xdm setup script for that display.
a933dad1 814
9dc15871 815*** Using X Windows, control-shift-leftbutton makes Emacs hang.
a933dad1 816
9dc15871 817Use the shell command `xset bc' to make the old X Menu package work.
a933dad1 818
9f4f9273 819*** C-SPC fails to work on Fedora GNU/Linux (or with fcitx input method).
09352e8f
RS
820
821Fedora Core 4 steals the C-SPC key by default for the `iiimx' program
822which is the input method for some languages. It blocks Emacs users
823from using the C-SPC key for `set-mark-command'.
824
825One solutions is to remove the `<Ctrl>space' from the `Iiimx' file
826which can be found in the `/usr/lib/X11/app-defaults' directory.
827However, that requires root access.
828
829Another is to specify `Emacs*useXIM: false' in your X resources.
830
831Another is to build Emacs with the `--without-xim' configure option.
832
2fb18d13
KH
833The same problem happens on any other system if you are using fcitx
834(Chinese input method) which by default use C-SPC for toggling. If
835you want to use fcitx with Emacs, you have two choices. Toggle fcitx
836by another key (e.g. C-\) by modifying ~/.fcitx/config, or be
837accustomed to use C-@ for `set-mark-command'.
838
bd098f41
DA
839*** Link-time optimization with clang doesn't work on Fedora 20.
840
841As of May 2014, Fedora 20 has broken LLVMgold.so plugin support in clang
842(tested with clang-3.4-6.fc20) - `clang --print-file-name=LLVMgold.so'
843prints `LLVMgold.so' instead of full path to plugin shared library, and
844`clang -flto' is unable to find the plugin with the following error:
845
846/bin/ld: error: /usr/bin/../lib/LLVMgold.so: could not load plugin library:
847/usr/bin/../lib/LLVMgold.so: cannot open shared object file: No such file
848or directory
849
850The only way to avoid this is to build your own clang from source code
851repositories, as described at http://clang.llvm.org/get_started.html.
852
9dc15871 853*** M-SPC seems to be ignored as input.
a933dad1 854
9dc15871
EZ
855See if your X server is set up to use this as a command
856for character composition.
a933dad1 857
9dc15871 858*** The S-C-t key combination doesn't get passed to Emacs on X.
a933dad1 859
9dc15871
EZ
860This happens because some X configurations assign the Ctrl-Shift-t
861combination the same meaning as the Multi_key. The offending
862definition is in the file `...lib/X11/locale/iso8859-1/Compose'; there
863might be other similar combinations which are grabbed by X for similar
864purposes.
a933dad1 865
9dc15871
EZ
866We think that this can be countermanded with the `xmodmap' utility, if
867you want to be able to bind one of these key sequences within Emacs.
a933dad1 868
9dc15871 869*** Under X, C-v and/or other keys don't work.
a933dad1 870
79baa30b
GM
871These may have been intercepted by your window manager.
872See the WM's documentation for how to change this.
a933dad1 873
9dc15871 874*** Clicking C-mouse-2 in the scroll bar doesn't split the window.
a933dad1 875
9dc15871
EZ
876This currently doesn't work with scroll-bar widgets (and we don't know
877a good way of implementing it with widgets). If Emacs is configured
878--without-toolkit-scroll-bars, C-mouse-2 on the scroll bar does work.
a933dad1 879
9dc15871
EZ
880*** Inability to send an Alt-modified key, when Emacs is communicating
881directly with an X server.
a933dad1 882
9dc15871
EZ
883If you have tried to bind an Alt-modified key as a command, and it
884does not work to type the command, the first thing you should check is
885whether the key is getting through to Emacs. To do this, type C-h c
886followed by the Alt-modified key. C-h c should say what kind of event
887it read. If it says it read an Alt-modified key, then make sure you
888have made the key binding correctly.
a933dad1 889
9dc15871
EZ
890If C-h c reports an event that doesn't have the Alt modifier, it may
891be because your X server has no key for the Alt modifier. The X
c64233b2 892server that comes from MIT does not set up the Alt modifier by default.
a933dad1 893
9dc15871 894If your keyboard has keys named Alt, you can enable them as follows:
a933dad1 895
9dc15871
EZ
896 xmodmap -e 'add mod2 = Alt_L'
897 xmodmap -e 'add mod2 = Alt_R'
a933dad1 898
9dc15871
EZ
899If the keyboard has just one key named Alt, then only one of those
900commands is needed. The modifier `mod2' is a reasonable choice if you
901are using an unmodified MIT version of X. Otherwise, choose any
902modifier bit not otherwise used.
a933dad1 903
9dc15871
EZ
904If your keyboard does not have keys named Alt, you can use some other
905keys. Use the keysym command in xmodmap to turn a function key (or
906some other 'spare' key) into Alt_L or into Alt_R, and then use the
907commands show above to make them modifier keys.
a933dad1 908
9dc15871
EZ
909Note that if you have Alt keys but no Meta keys, Emacs translates Alt
910into Meta. This is because of the great importance of Meta in Emacs.
a933dad1 911
9dc15871 912** Window-manager and toolkit-related problems
a933dad1 913
6a7ce3a2
JD
914*** Metacity: Resizing Emacs or ALT-Tab causes X to be unresponsive.
915
916This happens sometimes when using Metacity. Resizing Emacs or ALT-Tab:bing
917makes the system unresponsive to the mouse or the keyboard. Killing Emacs
3e702d16 918or shifting out from X and back again usually cures it (i.e. Ctrl-Alt-F1
6a7ce3a2
JD
919and then Alt-F7). A bug for it is here:
920https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/231034.
921Note that a permanent fix seems to be to disable "assistive technologies".
922
0e71e4a8
CY
923*** Gnome: Emacs receives input directly from the keyboard, bypassing XIM.
924
925This seems to happen when gnome-settings-daemon version 2.12 or later
926is running. If gnome-settings-daemon is not running, Emacs receives
927input through XIM without any problem. Furthermore, this seems only
928to happen in *.UTF-8 locales; zh_CN.GB2312 and zh_CN.GBK locales, for
929example, work fine. A bug report has been filed in the Gnome
930bugzilla: http://bugzilla.gnome.org/show_bug.cgi?id=357032
931
9a00bed5 932*** Gnome: Emacs's xterm-mouse-mode doesn't work on the Gnome terminal.
a933dad1 933
9dc15871
EZ
934A symptom of this bug is that double-clicks insert a control sequence
935into the buffer. The reason this happens is an apparent
936incompatibility of the Gnome terminal with Xterm, which also affects
937other programs using the Xterm mouse interface. A problem report has
938been filed.
a933dad1 939
9dc15871
EZ
940*** KDE: When running on KDE, colors or fonts are not as specified for Emacs,
941or messed up.
a933dad1 942
9dc15871
EZ
943For example, you could see background you set for Emacs only in the
944empty portions of the Emacs display, while characters have some other
945background.
a933dad1 946
9dc15871
EZ
947This happens because KDE's defaults apply its color and font
948definitions even to applications that weren't compiled for KDE. The
949solution is to uncheck the "Apply fonts and colors to non-KDE apps"
950option in Preferences->Look&Feel->Style (KDE 2). In KDE 3, this option
951is in the "Colors" section, rather than "Style".
a933dad1 952
9dc15871
EZ
953Alternatively, if you do want the KDE defaults to apply to other
954applications, but not to Emacs, you could modify the file `Emacs.ad'
955(should be in the `/usr/share/apps/kdisplay/app-defaults/' directory)
956so that it doesn't set the default background and foreground only for
957Emacs. For example, make sure the following resources are either not
958present or commented out:
a933dad1 959
9dc15871
EZ
960 Emacs.default.attributeForeground
961 Emacs.default.attributeBackground
962 Emacs*Foreground
963 Emacs*Background
a933dad1 964
a3475659
JD
965It is also reported that a bug in the gtk-engines-qt engine can cause this if
966Emacs is compiled with Gtk+.
967The bug is fixed in version 0.7 or newer of gtk-engines-qt.
968
9dc15871 969*** KDE: Emacs hangs on KDE when a large portion of text is killed.
a933dad1 970
9dc15871
EZ
971This is caused by a bug in the KDE applet `klipper' which periodically
972requests the X clipboard contents from applications. Early versions
8576f724 973of klipper don't implement the ICCCM protocol for large selections,
9dc15871 974which leads to Emacs being flooded with selection requests. After a
b11e8823 975while, Emacs may print a message:
a933dad1 976
9dc15871 977 Timed out waiting for property-notify event
a933dad1 978
b11e8823
JD
979A workaround is to not use `klipper'. An upgrade to the `klipper' that
980comes with KDE 3.3 or later also solves the problem.
a933dad1 981
9dc15871 982*** CDE: Frames may cover dialogs they created when using CDE.
a933dad1 983
9dc15871
EZ
984This can happen if you have "Allow Primary Windows On Top" enabled which
985seems to be the default in the Common Desktop Environment.
986To change, go in to "Desktop Controls" -> "Window Style Manager"
987and uncheck "Allow Primary Windows On Top".
d238f982 988
9dc15871
EZ
989*** Xaw3d : When using Xaw3d scroll bars without arrows, the very first mouse
990click in a scroll bar might be ignored by the scroll bar widget. This
991is probably a bug in Xaw3d; when Xaw3d is compiled with arrows, the
992problem disappears.
d238f982 993
9dc15871
EZ
994*** Xaw: There are known binary incompatibilities between Xaw, Xaw3d, neXtaw,
995XawM and the few other derivatives of Xaw. So when you compile with
996one of these, it may not work to dynamically link with another one.
997For example, strange problems, such as Emacs exiting when you type
998"C-x 1", were reported when Emacs compiled with Xaw3d and libXaw was
999used with neXtaw at run time.
d7185f9d 1000
9dc15871
EZ
1001The solution is to rebuild Emacs with the toolkit version you actually
1002want to use, or set LD_PRELOAD to preload the same toolkit version you
1003built Emacs with.
d7185f9d 1004
9dc15871 1005*** Open Motif: Problems with file dialogs in Emacs built with Open Motif.
a933dad1 1006
9dc15871
EZ
1007When Emacs 21 is built with Open Motif 2.1, it can happen that the
1008graphical file dialog boxes do not work properly. The "OK", "Filter"
1009and "Cancel" buttons do not respond to mouse clicks. Dragging the
1010file dialog window usually causes the buttons to work again.
a933dad1 1011
79baa30b 1012As a workaround, you can try building Emacs using Motif or LessTif instead.
a933dad1 1013
9dc15871
EZ
1014Another workaround is not to use the mouse to trigger file prompts,
1015but to use the keyboard. This way, you will be prompted for a file in
1016the minibuffer instead of a graphical file dialog.
a933dad1 1017
9dc15871 1018*** LessTif: Problems in Emacs built with LessTif.
a933dad1 1019
9dc15871
EZ
1020The problems seem to depend on the version of LessTif and the Motif
1021emulation for which it is set up.
a933dad1 1022
9dc15871 1023Only the Motif 1.2 emulation seems to be stable enough in LessTif.
880ea925 1024LessTif 0.92-17's Motif 1.2 emulation seems to work okay on FreeBSD.
9dc15871
EZ
1025On GNU/Linux systems, lesstif-0.92.6 configured with "./configure
1026--enable-build-12 --enable-default-12" is reported to be the most
1027successful. The binary GNU/Linux package
1028lesstif-devel-0.92.0-1.i386.rpm was reported to have problems with
1029menu placement.
a933dad1 1030
79baa30b
GM
1031On some systems, Emacs occasionally locks up, grabbing all mouse and
1032keyboard events. We don't know what causes these problems; they are
1033not reproducible by Emacs developers.
a933dad1 1034
9dc15871 1035*** Motif: The Motif version of Emacs paints the screen a solid color.
a933dad1 1036
9dc15871 1037This has been observed to result from the following X resource:
a933dad1 1038
9dc15871 1039 Emacs*default.attributeFont: -*-courier-medium-r-*-*-*-140-*-*-*-*-iso8859-*
a933dad1 1040
9dc15871 1041That the resource has this effect indicates a bug in something, but we
79baa30b 1042do not know what. If it is an Emacs bug, we hope someone can
9dc15871
EZ
1043explain what the bug is so we can fix it. In the mean time, removing
1044the resource prevents the problem.
a933dad1 1045
9dc15871 1046** General X problems
17a37d87 1047
3e702d16 1048*** Redisplay using X is much slower than previous Emacs versions.
17a37d87 1049
9dc15871
EZ
1050We've noticed that certain X servers draw the text much slower when
1051scroll bars are on the left. We don't know why this happens. If this
1052happens to you, you can work around it by putting the scroll bars
1053on the right (as they were in Emacs 19).
17a37d87 1054
9dc15871 1055Here's how to do this:
17a37d87 1056
9dc15871 1057 (set-scroll-bar-mode 'right)
a933dad1 1058
9dc15871
EZ
1059If you're not sure whether (or how much) this problem affects you,
1060try that and see how much difference it makes. To set things back
1061to normal, do
a933dad1 1062
9dc15871 1063 (set-scroll-bar-mode 'left)
a933dad1 1064
9dc15871 1065*** Error messages about undefined colors on X.
a933dad1 1066
9dc15871 1067The messages might say something like this:
a933dad1 1068
9dc15871 1069 Unable to load color "grey95"
a933dad1 1070
9dc15871 1071(typically, in the `*Messages*' buffer), or something like this:
a933dad1 1072
9dc15871 1073 Error while displaying tooltip: (error Undefined color lightyellow)
a933dad1 1074
9dc15871
EZ
1075These problems could happen if some other X program has used up too
1076many colors of the X palette, leaving Emacs with insufficient system
1077resources to load all the colors it needs.
a933dad1 1078
9dc15871 1079A solution is to exit the offending X programs before starting Emacs.
a933dad1 1080
9257b627
EZ
1081"undefined color" messages can also occur if the RgbPath entry in the
1082X configuration file is incorrect, or the rgb.txt file is not where
1083X expects to find it.
1084
9dc15871 1085*** Improving performance with slow X connections.
a933dad1 1086
9dc15871
EZ
1087There are several ways to improve this performance, any subset of which can
1088be carried out at the same time:
a933dad1 1089
9dc15871
EZ
10901) If you don't need X Input Methods (XIM) for entering text in some
1091 language you use, you can improve performance on WAN links by using
1092 the X resource useXIM to turn off use of XIM. This does not affect
9a00bed5 1093 the use of Emacs's own input methods, which are part of the Leim
9dc15871 1094 package.
3d00585e 1095
9dc15871 10962) If the connection is very slow, you might also want to consider
634e516b
EZ
1097 switching off scroll bars, menu bar, and tool bar. Adding the
1098 following forms to your .emacs file will accomplish that, but only
9b053e76 1099 after the initial frame is displayed:
634e516b
EZ
1100
1101 (scroll-bar-mode -1)
1102 (menu-bar-mode -1)
1103 (tool-bar-mode -1)
1104
1105 For still quicker startup, put these X resources in your .Xdefaults
1106 file:
1107
1108 Emacs.verticalScrollBars: off
1109 Emacs.menuBar: off
1110 Emacs.toolBar: off
3d00585e 1111
9dc15871
EZ
11123) Use ssh to forward the X connection, and enable compression on this
1113 forwarded X connection (ssh -XC remotehostname emacs ...).
3d00585e 1114
9dc15871
EZ
11154) Use lbxproxy on the remote end of the connection. This is an interface
1116 to the low bandwidth X extension in most modern X servers, which
1117 improves performance dramatically, at the slight expense of correctness
91af3942 1118 of the X protocol. lbxproxy achieves the performance gain by grouping
9dc15871 1119 several X requests in one TCP packet and sending them off together,
880ea925 1120 instead of requiring a round-trip for each X request in a separate
9dc15871
EZ
1121 packet. The switches that seem to work best for emacs are:
1122 -noatomsfile -nowinattr -cheaterrors -cheatevents
1123 Note that the -nograbcmap option is known to cause problems.
1124 For more about lbxproxy, see:
1125 http://www.xfree86.org/4.3.0/lbxproxy.1.html
3d00585e 1126
34431988
KS
11275) If copying and killing is slow, try to disable the interaction with the
1128 native system's clipboard by adding these lines to your .emacs file:
1129 (setq interprogram-cut-function nil)
1130 (setq interprogram-paste-function nil)
1131
9dc15871 1132*** Emacs gives the error, Couldn't find per display information.
3d00585e 1133
9dc15871
EZ
1134This can result if the X server runs out of memory because Emacs uses
1135a large number of fonts. On systems where this happens, C-h h is
1136likely to cause it.
a933dad1 1137
9dc15871 1138We do not know of a way to prevent the problem.
7838ea1b 1139
9dc15871 1140*** Emacs does not notice when you release the mouse.
a933dad1 1141
9dc15871
EZ
1142There are reports that this happened with (some) Microsoft mice and
1143that replacing the mouse made it stop.
a933dad1 1144
9dc15871 1145*** You can't select from submenus (in the X toolkit version).
a933dad1 1146
9dc15871
EZ
1147On certain systems, mouse-tracking and selection in top-level menus
1148works properly with the X toolkit, but neither of them works when you
1149bring up a submenu (such as Bookmarks or Compare or Apply Patch, in
1150the Files menu).
a933dad1 1151
9dc15871
EZ
1152This works on most systems. There is speculation that the failure is
1153due to bugs in old versions of X toolkit libraries, but no one really
1154knows. If someone debugs this and finds the precise cause, perhaps a
1155workaround can be found.
a933dad1 1156
9dc15871
EZ
1157*** An error message such as `X protocol error: BadMatch (invalid
1158parameter attributes) on protocol request 93'.
b5cb4652 1159
9dc15871
EZ
1160This comes from having an invalid X resource, such as
1161 emacs*Cursor: black
1162(which is invalid because it specifies a color name for something
1163that isn't a color.)
b5cb4652 1164
9dc15871 1165The fix is to correct your X resources.
a933dad1 1166
9dc15871 1167*** Slow startup on X11R6 with X windows.
a933dad1 1168
9dc15871
EZ
1169If Emacs takes two minutes to start up on X11R6, see if your X
1170resources specify any Adobe fonts. That causes the type-1 font
1171renderer to start up, even if the font you asked for is not a type-1
1172font.
a933dad1 1173
9dc15871
EZ
1174One way to avoid this problem is to eliminate the type-1 fonts from
1175your font path, like this:
a933dad1 1176
3256a475 1177 xset -fp /usr/X11R6/lib/X11/fonts/Type1/
a933dad1 1178
9dc15871 1179*** Pull-down menus appear in the wrong place, in the toolkit version of Emacs.
a933dad1 1180
9dc15871 1181An X resource of this form can cause the problem:
a933dad1 1182
9dc15871 1183 Emacs*geometry: 80x55+0+0
a933dad1 1184
9dc15871
EZ
1185This resource is supposed to apply, and does apply, to the menus
1186individually as well as to Emacs frames. If that is not what you
1187want, rewrite the resource.
3156909f 1188
9dc15871
EZ
1189To check thoroughly for such resource specifications, use `xrdb
1190-query' to see what resources the X server records, and also look at
1191the user's ~/.Xdefaults and ~/.Xdefaults-* files.
a933dad1 1192
9dc15871
EZ
1193*** Emacs running under X Windows does not handle mouse clicks.
1194*** `emacs -geometry 80x20' finds a file named `80x20'.
e96c5c69 1195
9dc15871
EZ
1196One cause of such problems is having (setq term-file-prefix nil) in
1197your .emacs file. Another cause is a bad value of EMACSLOADPATH in
1198the environment.
e96c5c69 1199
9dc15871 1200*** X Windows doesn't work if DISPLAY uses a hostname.
a933dad1 1201
9dc15871
EZ
1202People have reported kernel bugs in certain systems that cause Emacs
1203not to work with X Windows if DISPLAY is set using a host name. But
1204the problem does not occur if DISPLAY is set to `unix:0.0'. I think
1205the bug has to do with SIGIO or FIONREAD.
a933dad1 1206
9dc15871
EZ
1207You may be able to compensate for the bug by doing (set-input-mode nil nil).
1208However, that has the disadvantage of turning off interrupts, so that
1209you are unable to quit out of a Lisp program by typing C-g.
a933dad1 1210
3256a475
RC
1211*** Prevent double pastes in X
1212
1213The problem: a region, such as a command, is pasted twice when you copy
1214it with your mouse from GNU Emacs to an xterm or an RXVT shell in X.
1215The solution: try the following in your X configuration file,
1216/etc/X11/xorg.conf This should enable both PS/2 and USB mice for
1217single copies. You do not need any other drivers or options.
1218
1219 Section "InputDevice"
1220 Identifier "Generic Mouse"
1221 Driver "mousedev"
1222 Option "Device" "/dev/input/mice"
1223 EndSection
1224
833e48d3
GM
1225*** Emacs is slow to exit in X
1226
1227After you use e.g. C-x C-c to exit, it takes many seconds before the
1228Emacs window disappears. If Emacs was started from a terminal, you
1229see the message:
1230
1231 Error saving to X clipboard manager.
1232 If the problem persists, set `x-select-enable-clipboard-manager' to nil.
1233
1234As the message suggests, this problem occurs when Emacs thinks you
1235have a clipboard manager program running, but has trouble contacting it.
1236If you don't want to use a clipboard manager, you can set the
1237suggested variable. Or you can make Emacs not wait so long by
1238reducing the value of `x-selection-timeout', either in .emacs or with
1239X resources.
1240
1241Sometimes this problem is due to a bug in your clipboard manager.
1242Updating to the latest version of the manager can help.
1243For example, in the Xfce 4.8 desktop environment, the clipboard
1244manager in versions of xfce4-settings-helper before 4.8.2 is buggy;
1245https://bugzilla.xfce.org/show_bug.cgi?id=7588 .
1246
df4555fa
JD
1247*** Warning messages when running in Ubuntu
1248
1249When you start Emacs you may see something like this:
1250
af3e4d06 1251(emacs:2286): LIBDBUSMENU-GTK-CRITICAL **: watch_submenu: assertion
df4555fa
JD
1252`GTK_IS_MENU_SHELL(menu)' failed
1253
c03cf6f1 1254This happens if the Emacs binary has been renamed. The cause is the Ubuntu
df4555fa
JD
1255appmenu concept. It tries to track Emacs menus and show them in the top
1256panel, instead of in each Emacs window. This is not properly implemented,
1257so it fails for Emacs. The order of menus is wrong, and things like copy/paste
c03cf6f1 1258that depend on what state Emacs is in are usually wrong (i.e. paste disabled
df4555fa
JD
1259even if you should be able to paste, and similar).
1260
1261You can get back menus on each frame by starting emacs like this:
1262% env UBUNTU_MENUPROXY= emacs
1263
880ea925 1264* Runtime problems on character terminals
a933dad1 1265
def98666 1266** The meta key does not work on xterm.
3e702d16 1267
def98666
CY
1268Typing M-x rings the terminal bell, and inserts a string like ";120~".
1269For recent xterm versions (>= 216), Emacs uses xterm's modifyOtherKeys
1270feature to generate strings for key combinations that are not
1271otherwise usable. One circumstance in which this can cause problems
1272is if you have specified the X resource
1273
1274 xterm*VT100.Translations
1275
1276to contain translations that use the meta key. Then xterm will not
1277use meta in modified function-keys, which confuses Emacs. To fix
1278this, you can remove the X resource or put this in your init file:
1279
1280 (xterm-remove-modify-other-keys)
1281
9dc15871 1282** Emacs spontaneously displays "I-search: " at the bottom of the screen.
a933dad1 1283
9dc15871
EZ
1284This means that Control-S/Control-Q (XON/XOFF) "flow control" is being
1285used. C-s/C-q flow control is bad for Emacs editors because it takes
1286away C-s and C-q as user commands. Since editors do not output long
1287streams of text without user commands, there is no need for a
1288user-issuable "stop output" command in an editor; therefore, a
1289properly designed flow control mechanism would transmit all possible
1290input characters without interference. Designing such a mechanism is
1291easy, for a person with at least half a brain.
a933dad1 1292
9dc15871 1293There are three possible reasons why flow control could be taking place:
a933dad1 1294
9dc15871
EZ
1295 1) Terminal has not been told to disable flow control
1296 2) Insufficient padding for the terminal in use
1297 3) Some sort of terminal concentrator or line switch is responsible
a933dad1 1298
9dc15871
EZ
1299First of all, many terminals have a set-up mode which controls whether
1300they generate XON/XOFF flow control characters. This must be set to
6e270cdb
GM
1301"no XON/XOFF" in order for Emacs to work. (For example, on a VT220
1302you may select "No XOFF" in the setup menu.) Sometimes there is an
9dc15871
EZ
1303escape sequence that the computer can send to turn flow control off
1304and on. If so, perhaps the termcap `ti' string should turn flow
1305control off, and the `te' string should turn it on.
a933dad1 1306
9dc15871
EZ
1307Once the terminal has been told "no flow control", you may find it
1308needs more padding. The amount of padding Emacs sends is controlled
1309by the termcap entry for the terminal in use, and by the output baud
1310rate as known by the kernel. The shell command `stty' will print
1311your output baud rate; `stty' with suitable arguments will set it if
1312it is wrong. Setting to a higher speed causes increased padding. If
1313the results are wrong for the correct speed, there is probably a
1314problem in the termcap entry. You must speak to a local Unix wizard
1315to fix this. Perhaps you are just using the wrong terminal type.
a933dad1 1316
9dc15871
EZ
1317For terminals that lack a "no flow control" mode, sometimes just
1318giving lots of padding will prevent actual generation of flow control
1319codes. You might as well try it.
a933dad1 1320
9dc15871
EZ
1321If you are really unlucky, your terminal is connected to the computer
1322through a concentrator which sends XON/XOFF flow control to the
1323computer, or it insists on sending flow control itself no matter how
1324much padding you give it. Unless you can figure out how to turn flow
1325control off on this concentrator (again, refer to your local wizard),
1326you are screwed! You should have the terminal or concentrator
1327replaced with a properly designed one. In the mean time, some drastic
1328measures can make Emacs semi-work.
4c635a29 1329
9dc15871
EZ
1330You can make Emacs ignore C-s and C-q and let the operating system
1331handle them. To do this on a per-session basis, just type M-x
1332enable-flow-control RET. You will see a message that C-\ and C-^ are
1333now translated to C-s and C-q. (Use the same command M-x
1334enable-flow-control to turn *off* this special mode. It toggles flow
1335control handling.)
a933dad1 1336
9dc15871
EZ
1337If C-\ and C-^ are inconvenient for you (for example, if one of them
1338is the escape character of your terminal concentrator), you can choose
1339other characters by setting the variables flow-control-c-s-replacement
1340and flow-control-c-q-replacement. But choose carefully, since all
1341other control characters are already used by emacs.
a933dad1 1342
9dc15871
EZ
1343IMPORTANT: if you type C-s by accident while flow control is enabled,
1344Emacs output will freeze, and you will have to remember to type C-q in
1345order to continue.
a933dad1 1346
9dc15871
EZ
1347If you work in an environment where a majority of terminals of a
1348certain type are flow control hobbled, you can use the function
1349`enable-flow-control-on' to turn on this flow control avoidance scheme
1350automatically. Here is an example:
a933dad1 1351
9dc15871 1352(enable-flow-control-on "vt200" "vt300" "vt101" "vt131")
a933dad1 1353
9dc15871
EZ
1354If this isn't quite correct (e.g. you have a mixture of flow-control hobbled
1355and good vt200 terminals), you can still run enable-flow-control
1356manually.
a933dad1 1357
9dc15871
EZ
1358I have no intention of ever redesigning the Emacs command set for the
1359assumption that terminals use C-s/C-q flow control. XON/XOFF flow
1360control technique is a bad design, and terminals that need it are bad
1361merchandise and should not be purchased. Now that X is becoming
1362widespread, XON/XOFF seems to be on the way out. If you can get some
1363use out of GNU Emacs on inferior terminals, more power to you, but I
1364will not make Emacs worse for properly designed systems for the sake
1365of inferior systems.
a933dad1 1366
9dc15871 1367** Control-S and Control-Q commands are ignored completely.
a933dad1 1368
9dc15871
EZ
1369For some reason, your system is using brain-damaged C-s/C-q flow
1370control despite Emacs's attempts to turn it off. Perhaps your
1371terminal is connected to the computer through a concentrator
1372that wants to use flow control.
a933dad1 1373
9dc15871
EZ
1374You should first try to tell the concentrator not to use flow control.
1375If you succeed in this, try making the terminal work without
1376flow control, as described in the preceding section.
a933dad1 1377
9dc15871
EZ
1378If that line of approach is not successful, map some other characters
1379into C-s and C-q using keyboard-translate-table. The example above
1380shows how to do this with C-^ and C-\.
a933dad1 1381
9dc15871 1382** Screen is updated wrong, but only on one kind of terminal.
a933dad1 1383
9dc15871
EZ
1384This could mean that the termcap entry you are using for that
1385terminal is wrong, or it could mean that Emacs has a bug handing
1386the combination of features specified for that terminal.
a933dad1 1387
9dc15871
EZ
1388The first step in tracking this down is to record what characters
1389Emacs is sending to the terminal. Execute the Lisp expression
1390(open-termscript "./emacs-script") to make Emacs write all
1391terminal output into the file ~/emacs-script as well; then do
1392what makes the screen update wrong, and look at the file
1393and decode the characters using the manual for the terminal.
1394There are several possibilities:
a933dad1 1395
9dc15871 13961) The characters sent are correct, according to the terminal manual.
a933dad1 1397
9dc15871
EZ
1398In this case, there is no obvious bug in Emacs, and most likely you
1399need more padding, or possibly the terminal manual is wrong.
a933dad1 1400
9dc15871 14012) The characters sent are incorrect, due to an obscure aspect
c64233b2 1402 of the terminal behavior not described in an obvious way by termcap.
a933dad1 1403
9dc15871
EZ
1404This case is hard. It will be necessary to think of a way for
1405Emacs to distinguish between terminals with this kind of behavior
1406and other terminals that behave subtly differently but are
1407classified the same by termcap; or else find an algorithm for
1408Emacs to use that avoids the difference. Such changes must be
1409tested on many kinds of terminals.
a933dad1 1410
9dc15871 14113) The termcap entry is wrong.
a933dad1 1412
9dc15871
EZ
1413See the file etc/TERMS for information on changes
1414that are known to be needed in commonly used termcap entries
1415for certain terminals.
a933dad1 1416
9dc15871
EZ
14174) The characters sent are incorrect, and clearly cannot be
1418 right for any terminal with the termcap entry you were using.
a933dad1 1419
9dc15871
EZ
1420This is unambiguously an Emacs bug, and can probably be fixed
1421in termcap.c, tparam.c, term.c, scroll.c, cm.c or dispnew.c.
a933dad1 1422
9dc15871 1423** Control-S and Control-Q commands are ignored completely on a net connection.
a933dad1 1424
9dc15871
EZ
1425Some versions of rlogin (and possibly telnet) do not pass flow
1426control characters to the remote system to which they connect.
1427On such systems, emacs on the remote system cannot disable flow
c64233b2 1428control on the local system. Sometimes `rlogin -8' will avoid this problem.
a933dad1 1429
9dc15871
EZ
1430One way to cure this is to disable flow control on the local host
1431(the one running rlogin, not the one running rlogind) using the
1432stty command, before starting the rlogin process. On many systems,
6e270cdb 1433"stty start u stop u" will do this. On some systems, use
0a46152e 1434"stty -ixon" instead.
a933dad1 1435
9dc15871
EZ
1436Some versions of tcsh will prevent even this from working. One way
1437around this is to start another shell before starting rlogin, and
1438issue the stty command to disable flow control from that shell.
a933dad1 1439
9dc15871
EZ
1440If none of these methods work, the best solution is to type
1441M-x enable-flow-control at the beginning of your emacs session, or
1442if you expect the problem to continue, add a line such as the
1443following to your .emacs (on the host running rlogind):
a933dad1 1444
9dc15871 1445(enable-flow-control-on "vt200" "vt300" "vt101" "vt131")
a933dad1 1446
c64233b2 1447See the entry about spontaneous display of I-search (above) for more info.
a933dad1 1448
9dc15871 1449** Output from Control-V is slow.
a933dad1 1450
9dc15871
EZ
1451On many bit-map terminals, scrolling operations are fairly slow.
1452Often the termcap entry for the type of terminal in use fails
1453to inform Emacs of this. The two lines at the bottom of the screen
1454before a Control-V command are supposed to appear at the top after
1455the Control-V command. If Emacs thinks scrolling the lines is fast,
1456it will scroll them to the top of the screen.
a933dad1 1457
9dc15871
EZ
1458If scrolling is slow but Emacs thinks it is fast, the usual reason is
1459that the termcap entry for the terminal you are using does not
1460specify any padding time for the `al' and `dl' strings. Emacs
1461concludes that these operations take only as much time as it takes to
1462send the commands at whatever line speed you are using. You must
1463fix the termcap entry to specify, for the `al' and `dl', as much
1464time as the operations really take.
a933dad1 1465
9dc15871
EZ
1466Currently Emacs thinks in terms of serial lines which send characters
1467at a fixed rate, so that any operation which takes time for the
1468terminal to execute must also be padded. With bit-map terminals
1469operated across networks, often the network provides some sort of
1470flow control so that padding is never needed no matter how slow
1471an operation is. You must still specify a padding time if you want
1472Emacs to realize that the operation takes a long time. This will
1473cause padding characters to be sent unnecessarily, but they do
1474not really cost much. They will be transmitted while the scrolling
1475is happening and then discarded quickly by the terminal.
a933dad1 1476
9dc15871
EZ
1477Most bit-map terminals provide commands for inserting or deleting
1478multiple lines at once. Define the `AL' and `DL' strings in the
1479termcap entry to say how to do these things, and you will have
1480fast output without wasted padding characters. These strings should
1481each contain a single %-spec saying how to send the number of lines
1482to be scrolled. These %-specs are like those in the termcap
1483`cm' string.
a933dad1 1484
9dc15871
EZ
1485You should also define the `IC' and `DC' strings if your terminal
1486has a command to insert or delete multiple characters. These
1487take the number of positions to insert or delete as an argument.
a933dad1 1488
9dc15871
EZ
1489A `cs' string to set the scrolling region will reduce the amount
1490of motion you see on the screen when part of the screen is scrolled.
a933dad1 1491
9dc15871 1492** You type Control-H (Backspace) expecting to delete characters.
a933dad1 1493
9dc15871
EZ
1494Put `stty dec' in your .login file and your problems will disappear
1495after a day or two.
a933dad1 1496
9dc15871
EZ
1497The choice of Backspace for erasure was based on confusion, caused by
1498the fact that backspacing causes erasure (later, when you type another
1499character) on most display terminals. But it is a mistake. Deletion
1500of text is not the same thing as backspacing followed by failure to
1501overprint. I do not wish to propagate this confusion by conforming
1502to it.
a933dad1 1503
9dc15871
EZ
1504For this reason, I believe `stty dec' is the right mode to use,
1505and I have designed Emacs to go with that. If there were a thousand
1506other control characters, I would define Control-h to delete as well;
1507but there are not very many other control characters, and I think
1508that providing the most mnemonic possible Help character is more
1509important than adapting to people who don't use `stty dec'.
a933dad1 1510
9dc15871
EZ
1511If you are obstinate about confusing buggy overprinting with deletion,
1512you can redefine Backspace in your .emacs file:
1513 (global-set-key "\b" 'delete-backward-char)
1514You can probably access help-command via f1.
a933dad1 1515
9dc15871 1516** Colors are not available on a tty or in xterm.
a933dad1 1517
9dc15871
EZ
1518Emacs 21 supports colors on character terminals and terminal
1519emulators, but this support relies on the terminfo or termcap database
1520entry to specify that the display supports color. Emacs looks at the
1521"Co" capability for the terminal to find out how many colors are
1522supported; it should be non-zero to activate the color support within
1523Emacs. (Most color terminals support 8 or 16 colors.) If your system
1524uses terminfo, the name of the capability equivalent to "Co" is
1525"colors".
a933dad1 1526
9dc15871
EZ
1527In addition to the "Co" capability, Emacs needs the "op" (for
1528``original pair'') capability, which tells how to switch the terminal
1529back to the default foreground and background colors. Emacs will not
1530use colors if this capability is not defined. If your terminal entry
1531doesn't provide such a capability, try using the ANSI standard escape
1532sequence \E[00m (that is, define a new termcap/terminfo entry and make
1533it use your current terminal's entry plus \E[00m for the "op"
1534capability).
a933dad1 1535
9dc15871
EZ
1536Finally, the "NC" capability (terminfo name: "ncv") tells Emacs which
1537attributes cannot be used with colors. Setting this capability
1538incorrectly might have the effect of disabling colors; try setting
1539this capability to `0' (zero) and see if that helps.
a933dad1 1540
9dc15871
EZ
1541Emacs uses the database entry for the terminal whose name is the value
1542of the environment variable TERM. With `xterm', a common terminal
1543entry that supports color is `xterm-color', so setting TERM's value to
1544`xterm-color' might activate the color support on an xterm-compatible
1545emulator.
a933dad1 1546
bf247b6e 1547Beginning with version 22.1, Emacs supports the --color command-line
9dc15871
EZ
1548option which may be used to force Emacs to use one of a few popular
1549modes for getting colors on a tty. For example, --color=ansi8 sets up
1550for using the ANSI-standard escape sequences that support 8 colors.
a933dad1 1551
9dc15871
EZ
1552Some modes do not use colors unless you turn on the Font-lock mode.
1553Some people have long ago set their `~/.emacs' files to turn on
1554Font-lock on X only, so they won't see colors on a tty. The
1555recommended way of turning on Font-lock is by typing "M-x
1556global-font-lock-mode RET" or by customizing the variable
1557`global-font-lock-mode'.
a933dad1 1558
40f86458 1559** Unexpected characters inserted into the buffer when you start Emacs.
9a00bed5 1560See e.g. <URL:http://debbugs.gnu.org/11129>
40f86458
GM
1561
1562This can happen when you start Emacs in -nw mode in an Xterm.
1563For example, in the *scratch* buffer, you might see something like:
1564
1565 0;276;0c
1566
1567This is more likely to happen if you are using Emacs over a slow
1568connection, and begin typing before Emacs is ready to respond.
1569
1570This occurs when Emacs tries to query the terminal to see what
1571capabilities it supports, and gets confused by the answer.
1572To avoid it, set xterm-extra-capabilities to a value other than
1573`check' (the default). See that variable's documentation (in
1574term/xterm.el) for more details.
1575
9dc15871 1576* Runtime problems specific to individual Unix variants
f1e54ce1 1577
9dc15871 1578** GNU/Linux
f1e54ce1 1579
f77e4514
KS
1580*** GNU/Linux: Process output is corrupted.
1581
1582There is a bug in Linux kernel 2.6.10 PTYs that can cause emacs to
1583read corrupted process output.
1584
1585*** GNU/Linux: Remote access to CVS with SSH causes file corruption.
1586
1587If you access a remote CVS repository via SSH, files may be corrupted
1588due to bad interaction between CVS, SSH, and libc.
1589
1590To fix the problem, save the following script into a file, make it
1591executable, and set CVS_RSH environment variable to the file name of
1592the script:
1593
1594#!/bin/bash
1595exec 2> >(exec cat >&2 2>/dev/null)
1596exec ssh "$@"
1597
9d760d75 1598*** GNU/Linux: Truncated svn annotate output with SSH.
9a00bed5 1599http://debbugs.gnu.org/7791
9d760d75
GM
1600
1601The symptoms are: you are accessing a svn repository over SSH.
1602You use vc-annotate on a large (several thousand line) file, and the
1603result is truncated around the 1000 line mark. It works fine with
1604other access methods (eg http), or from outside Emacs.
1605
1606This may be a similar libc/SSH issue to the one mentioned above for CVS.
1607A similar workaround seems to be effective: create a script with the
1608same contents as the one used above for CVS_RSH, and set the SVN_SSH
1609environment variable to point to it.
1610
9dc15871
EZ
1611*** GNU/Linux: After upgrading to a newer version of Emacs,
1612the Meta key stops working.
a01325b8 1613
9dc15871
EZ
1614This was reported to happen on a GNU/Linux system distributed by
1615Mandrake. The reason is that the previous version of Emacs was
1616modified by Mandrake to make the Alt key act as the Meta key, on a
1617keyboard where the Windows key is the one which produces the Meta
1618modifier. A user who started using a newer version of Emacs, which
1619was not hacked by Mandrake, expected the Alt key to continue to act as
1620Meta, and was astonished when that didn't happen.
a01325b8 1621
9dc15871
EZ
1622The solution is to find out what key on your keyboard produces the Meta
1623modifier, and use that key instead. Try all of the keys to the left
1624and to the right of the space bar, together with the `x' key, and see
1625which combination produces "M-x" in the echo area. You can also use
1626the `xmodmap' utility to show all the keys which produce a Meta
1627modifier:
a933dad1 1628
9dc15871 1629 xmodmap -pk | egrep -i "meta|alt"
a933dad1 1630
9dc15871
EZ
1631A more convenient way of finding out which keys produce a Meta modifier
1632is to use the `xkbprint' utility, if it's available on your system:
a01325b8 1633
9dc15871 1634 xkbprint 0:0 /tmp/k.ps
a933dad1 1635
9dc15871
EZ
1636This produces a PostScript file `/tmp/k.ps' with a picture of your
1637keyboard; printing that file on a PostScript printer will show what
1638keys can serve as Meta.
a933dad1 1639
9dc15871
EZ
1640The `xkeycaps' also shows a visual representation of the current
1641keyboard settings. It also allows to modify them.
a933dad1 1642
ff3e9dbc 1643*** GNU/Linux: slow startup on Linux-based GNU systems.
a933dad1 1644
9dc15871
EZ
1645People using systems based on the Linux kernel sometimes report that
1646startup takes 10 to 15 seconds longer than `usual'.
a933dad1 1647
9dc15871
EZ
1648This is because Emacs looks up the host name when it starts.
1649Normally, this takes negligible time; the extra delay is due to
1650improper system configuration. This problem can occur for both
1651networked and non-networked machines.
a933dad1 1652
9dc15871 1653Here is how to fix the configuration. It requires being root.
a933dad1 1654
9dc15871 1655**** Networked Case.
a933dad1 1656
9dc15871
EZ
1657First, make sure the files `/etc/hosts' and `/etc/host.conf' both
1658exist. The first line in the `/etc/hosts' file should look like this
1659(replace HOSTNAME with your host name):
a933dad1 1660
9dc15871 1661 127.0.0.1 HOSTNAME
a933dad1 1662
9dc15871
EZ
1663Also make sure that the `/etc/host.conf' files contains the following
1664lines:
1dd8b979 1665
9dc15871
EZ
1666 order hosts, bind
1667 multi on
10a763e5 1668
9dc15871
EZ
1669Any changes, permanent and temporary, to the host name should be
1670indicated in the `/etc/hosts' file, since it acts a limited local
1671database of addresses and names (e.g., some SLIP connections
1672dynamically allocate ip addresses).
1dd8b979 1673
9dc15871 1674**** Non-Networked Case.
a933dad1 1675
9dc15871
EZ
1676The solution described in the networked case applies here as well.
1677However, if you never intend to network your machine, you can use a
1678simpler solution: create an empty `/etc/host.conf' file. The command
1679`touch /etc/host.conf' suffices to create the file. The `/etc/hosts'
1680file is not necessary with this approach.
a933dad1 1681
9dc15871 1682*** GNU/Linux: Emacs on a tty switches the cursor to large blinking block.
a933dad1 1683
9dc15871
EZ
1684This was reported to happen on some GNU/Linux systems which use
1685ncurses version 5.0, but could be relevant for other versions as well.
1686These versions of ncurses come with a `linux' terminfo entry, where
1687the "cvvis" capability (termcap "vs") is defined as "\E[?25h\E[?8c"
1688(show cursor, change size). This escape sequence switches on a
1689blinking hardware text-mode cursor whose size is a full character
1690cell. This blinking cannot be stopped, since a hardware cursor
1691always blinks.
3d00585e 1692
9dc15871
EZ
1693A work-around is to redefine the "cvvis" capability so that it
1694enables a *software* cursor. The software cursor works by inverting
1695the colors of the character at point, so what you see is a block
1696cursor that doesn't blink. For this to work, you need to redefine
1697the "cnorm" capability as well, so that it operates on the software
1698cursor instead of the hardware cursor.
3d00585e 1699
9dc15871
EZ
1700To this end, run "infocmp linux > linux-term", edit the file
1701`linux-term' to make both the "cnorm" and "cvvis" capabilities send
1702the sequence "\E[?25h\E[?17;0;64c", and then run "tic linux-term" to
1703produce a modified terminfo entry.
3d00585e 1704
9dc15871
EZ
1705Alternatively, if you want a blinking underscore as your Emacs cursor,
1706change the "cvvis" capability to send the "\E[?25h\E[?0c" command.
a933dad1 1707
9dc15871 1708** FreeBSD
a933dad1 1709
9dc15871 1710*** FreeBSD: Getting a Meta key on the console.
a933dad1 1711
9dc15871
EZ
1712By default, neither Alt nor any other key acts as a Meta key on
1713FreeBSD, but this can be changed using kbdcontrol(1). Dump the
1714current keymap to a file with the command
a933dad1 1715
9dc15871 1716 $ kbdcontrol -d >emacs.kbd
a933dad1 1717
9dc15871
EZ
1718Edit emacs.kbd, and give the key you want to be the Meta key the
1719definition `meta'. For instance, if your keyboard has a ``Windows''
1720key with scan code 105, change the line for scan code 105 in emacs.kbd
1721to look like this
a933dad1 1722
9dc15871 1723 105 meta meta meta meta meta meta meta meta O
a933dad1 1724
9dc15871 1725to make the Windows key the Meta key. Load the new keymap with
a933dad1 1726
9dc15871 1727 $ kbdcontrol -l emacs.kbd
a933dad1 1728
9dc15871 1729** HP-UX
a933dad1 1730
9dc15871 1731*** HP/UX : Shell mode gives the message, "`tty`: Ambiguous".
a933dad1 1732
9dc15871 1733christos@theory.tn.cornell.edu says:
a933dad1 1734
9dc15871 1735The problem is that in your .cshrc you have something that tries to
79baa30b
GM
1736execute `tty`. If you are not running the shell on a real tty then
1737tty will print "not a tty". Csh expects one word in some places,
9dc15871 1738but tty is giving it back 3.
a933dad1 1739
9dc15871
EZ
1740The solution is to add a pair of quotes around `tty` to make it a single
1741word:
a933dad1 1742
9dc15871 1743if (`tty` == "/dev/console")
a933dad1 1744
9dc15871 1745should be changed to:
a933dad1 1746
9dc15871 1747if ("`tty`" == "/dev/console")
a933dad1 1748
9dc15871
EZ
1749Even better, move things that set up terminal sections out of .cshrc
1750and into .login.
a933dad1 1751
9dc15871 1752*** HP/UX: `Pid xxx killed due to text modification or page I/O error'.
a933dad1 1753
9dc15871
EZ
1754On HP/UX, you can get that error when the Emacs executable is on an NFS
1755file system. HP/UX responds this way if it tries to swap in a page and
1756does not get a response from the server within a timeout whose default
1757value is just ten seconds.
a933dad1 1758
9dc15871 1759If this happens to you, extend the timeout period.
a933dad1 1760
9dc15871
EZ
1761*** HP/UX: The right Alt key works wrong on German HP keyboards (and perhaps
1762other non-English HP keyboards too).
a933dad1 1763
9dc15871
EZ
1764This is because HP-UX defines the modifiers wrong in X. Here is a
1765shell script to fix the problem; be sure that it is run after VUE
1766configures the X server.
a933dad1 1767
9dc15871
EZ
1768 xmodmap 2> /dev/null - << EOF
1769 keysym Alt_L = Meta_L
1770 keysym Alt_R = Meta_R
1771 EOF
a933dad1 1772
9dc15871
EZ
1773 xmodmap - << EOF
1774 clear mod1
1775 keysym Mode_switch = NoSymbol
1776 add mod1 = Meta_L
1777 keysym Meta_R = Mode_switch
1778 add mod2 = Mode_switch
1779 EOF
a933dad1 1780
9dc15871 1781*** HP/UX: Emacs does not recognize the AltGr key.
a933dad1 1782
9dc15871
EZ
1783To fix this, set up a file ~/.dt/sessions/sessionetc with executable
1784rights, containing this text:
a933dad1 1785
9dc15871
EZ
1786--------------------------------
1787xmodmap 2> /dev/null - << EOF
1788keysym Alt_L = Meta_L
1789keysym Alt_R = Meta_R
1790EOF
a933dad1 1791
9dc15871
EZ
1792xmodmap - << EOF
1793clear mod1
1794keysym Mode_switch = NoSymbol
1795add mod1 = Meta_L
1796keysym Meta_R = Mode_switch
1797add mod2 = Mode_switch
1798EOF
1799--------------------------------
a933dad1 1800
9dc15871 1801*** HP/UX 11.0: Emacs makes HP/UX 11.0 crash.
a933dad1 1802
9dc15871 1803This is a bug in HPUX; HPUX patch PHKL_16260 is said to fix it.
a933dad1 1804
9dc15871 1805** AIX
a933dad1 1806
9dc15871 1807*** AIX: Trouble using ptys.
a933dad1 1808
9dc15871
EZ
1809People often install the pty devices on AIX incorrectly.
1810Use `smit pty' to reinstall them properly.
a933dad1 1811
9dc15871 1812*** AIXterm: Your Delete key sends a Backspace to the terminal.
a933dad1 1813
9dc15871 1814The solution is to include in your .Xdefaults the lines:
a933dad1 1815
9dc15871
EZ
1816 *aixterm.Translations: #override <Key>BackSpace: string(0x7f)
1817 aixterm*ttyModes: erase ^?
a933dad1 1818
9dc15871 1819This makes your Backspace key send DEL (ASCII 127).
a933dad1 1820
9dc15871
EZ
1821*** AIX: If linking fails because libXbsd isn't found, check if you
1822are compiling with the system's `cc' and CFLAGS containing `-O5'. If
1823so, you have hit a compiler bug. Please make sure to re-configure
1824Emacs so that it isn't compiled with `-O5'.
a933dad1 1825
9dc15871 1826*** AIX 4.3.x or 4.4: Compiling fails.
a933dad1 1827
9dc15871
EZ
1828This could happen if you use /bin/c89 as your compiler, instead of
1829the default `cc'. /bin/c89 treats certain warnings, such as benign
1830redefinitions of macros, as errors, and fails the build. A solution
1831is to use the default compiler `cc'.
a933dad1 1832
9dc15871
EZ
1833*** AIX 4: Some programs fail when run in a Shell buffer
1834with an error message like No terminfo entry for "unknown".
a933dad1 1835
9dc15871
EZ
1836On AIX, many terminal type definitions are not installed by default.
1837`unknown' is one of them. Install the "Special Generic Terminal
1838Definitions" to make them defined.
a933dad1 1839
9dc15871 1840** Solaris
a933dad1 1841
c64233b2
GM
1842We list bugs in current versions here. See also the section on legacy
1843systems.
a933dad1 1844
9dc15871 1845*** On Solaris, C-x doesn't get through to Emacs when you use the console.
a933dad1 1846
9dc15871
EZ
1847This is a Solaris feature (at least on Intel x86 cpus). Type C-r
1848C-r C-t, to toggle whether C-x gets through to Emacs.
a933dad1 1849
9dc15871 1850*** Problem with remote X server on Suns.
a933dad1 1851
9dc15871
EZ
1852On a Sun, running Emacs on one machine with the X server on another
1853may not work if you have used the unshared system libraries. This
1854is because the unshared libraries fail to use YP for host name lookup.
1855As a result, the host name you specify may not be recognized.
a933dad1 1856
c64233b2 1857*** Solaris 2.6: Emacs crashes with SIGBUS or SIGSEGV on Solaris after you delete a frame.
a933dad1 1858
0a4dd4e4
EZ
1859We suspect that this is a bug in the X libraries provided by
1860Sun. There is a report that one of these patches fixes the bug and
1861makes the problem stop:
a933dad1 1862
0a4dd4e4
EZ
1863105216-01 105393-01 105518-01 105621-01 105665-01 105615-02 105216-02
1864105667-01 105401-08 105615-03 105621-02 105686-02 105736-01 105755-03
1865106033-01 105379-01 105786-01 105181-04 105379-03 105786-04 105845-01
1866105284-05 105669-02 105837-01 105837-02 105558-01 106125-02 105407-01
a933dad1 1867
0a4dd4e4
EZ
1868Another person using a newer system (kernel patch level Generic_105181-06)
1869suspects that the bug was fixed by one of these more recent patches:
a933dad1 1870
0a4dd4e4
EZ
1871106040-07 SunOS 5.6: X Input & Output Method patch
1872106222-01 OpenWindows 3.6: filemgr (ff.core) fixes
1873105284-12 Motif 1.2.7: sparc Runtime library patch
a933dad1 1874
0a4dd4e4 1875*** Solaris 7 or 8: Emacs reports a BadAtom error (from X)
a933dad1 1876
0a4dd4e4
EZ
1877This happens when Emacs was built on some other version of Solaris.
1878Rebuild it on Solaris 8.
a933dad1 1879
9dc15871
EZ
1880*** When using M-x dbx with the SparcWorks debugger, the `up' and `down'
1881commands do not move the arrow in Emacs.
a933dad1 1882
9dc15871 1883You can fix this by adding the following line to `~/.dbxinit':
a933dad1 1884
9dc15871 1885 dbxenv output_short_file_name off
a933dad1 1886
0a4dd4e4
EZ
1887*** On Solaris, CTRL-t is ignored by Emacs when you use
1888the fr.ISO-8859-15 locale (and maybe other related locales).
a933dad1 1889
0a4dd4e4 1890You can fix this by editing the file:
a933dad1 1891
3256a475 1892 /usr/openwin/lib/locale/iso8859-15/Compose
a933dad1 1893
0a4dd4e4 1894Near the bottom there is a line that reads:
a933dad1 1895
3256a475 1896 Ctrl<t> <quotedbl> <Y> : "\276" threequarters
a933dad1 1897
0a4dd4e4 1898that should read:
a933dad1 1899
3256a475 1900 Ctrl<T> <quotedbl> <Y> : "\276" threequarters
a933dad1 1901
0a4dd4e4 1902Note the lower case <t>. Changing this line should make C-t work.
a933dad1 1903
1b6406b3
CY
1904*** On Solaris, Emacs fails to set menu-bar-update-hook on startup, with error
1905"Error in menu-bar-update-hook: (error Point before start of properties)".
1906This seems to be a GCC optimization bug that occurs for GCC 4.1.2 (-g
1907and -g -O2) and GCC 4.2.3 (-g -O and -g -O2). You can fix this by
1908compiling with GCC 4.2.3 or CC 5.7, with no optimizations.
1909
0a4dd4e4 1910** Irix
a933dad1 1911
0a4dd4e4 1912*** Irix: Trouble using ptys, or running out of ptys.
a933dad1 1913
9dc15871
EZ
1914The program mkpts (which may be in `/usr/adm' or `/usr/sbin') needs to
1915be set-UID to root, or non-root programs like Emacs will not be able
1916to allocate ptys reliably.
a933dad1 1917
9dc15871 1918* Runtime problems specific to MS-Windows
a933dad1 1919
037f36e5
EZ
1920** Emacs on Windows 9X requires UNICOWS.DLL
1921
1922If that DLL is not available, Emacs will display an error dialog
1923stating its absence, and refuse to run.
1924
1925This is because Emacs 24.4 and later uses functions whose non-stub
1926implementation is only available in UNICOWS.DLL, which implements the
1927Microsoft Layer for Unicode on Windows 9X, or "MSLU". This article on
1928MSDN:
1929
1930 http://msdn.microsoft.com/en-us/goglobal/bb688166.aspx
1931
1932includes a short description of MSLU and a link where it can be
1933downloaded.
1934
1935** A few seconds delay is seen at startup and for many file operations
1936
1937This happens when the Net Logon service is enabled. During Emacs
1938startup, this service issues many DNS requests looking up for the
1939Windows Domain Controller. When Emacs accesses files on networked
1940drives, it automatically logs on the user into those drives, which
1941again causes delays when Net Logon is running.
1942
1943The solution seems to be to disable Net Logon with this command typed
1944at the Windows shell prompt:
1945
1946 net stop netlogon
1947
1948To start the service again, type "net start netlogon". (You can also
1949stop and start the service from the Computer Management application,
1950accessible by right-clicking "My Computer" or "Computer", selecting
1951"Manage", then clicking on "Services".)
1952
7ce645e0
EZ
1953** Emacs crashes when exiting the Emacs session
1954
1955This was reported to happen when some optional DLLs, such as those
1956used for displaying images or the GnuTLS library, which are loaded
1957on-demand, have a runtime dependency on the libgcc DLL,
1958libgcc_s_dw2-1.dll. The reason seems to be a bug in libgcc which
1959rears its ugly head whenever the libgcc DLL is loaded after Emacs has
1960started.
1961
1962One solution for this problem is to find an alternative build of the
1963same optional library that does not depend on the libgcc DLL.
1964
1965Another possibility is to rebuild Emacs with the -shared-libgcc
1966switch, which will force Emacs to load libgcc_s_dw2-1.dll on startup,
1967ahead of any optional DLLs loaded on-demand later in the session.
1968
62e466d0
JB
1969** PATH can contain unexpanded environment variables
1970
1971Old releases of TCC (version 9) and 4NT (up to version 8) do not correctly
1972expand App Paths entries of type REG_EXPAND_SZ. When Emacs is run from TCC
1973and such an entry exists for emacs.exe, exec-path will contain the
1974unexpanded entry. This has been fixed in TCC 10. For more information,
1975see bug#2062.
1976
d9b0e161
EZ
1977** Setting w32-pass-rwindow-to-system and w32-pass-lwindow-to-system to nil
1978does not prevent the Start menu from popping up when the left or right
1979``Windows'' key is pressed.
1980
1981This was reported to happen when XKeymacs is installed. At least with
1982XKeymacs Version 3.47, deactivating XKeymacs when Emacs is active is
1983not enough to avoid its messing with the keyboard input. Exiting
1984XKeymacs completely is reported to solve the problem.
1985
ade79051
KS
1986** Windows 95 and networking.
1987
037f36e5
EZ
1988To support server sockets, Emacs loads ws2_32.dll. If this file is
1989missing, all Emacs networking features are disabled.
ade79051
KS
1990
1991Old versions of Windows 95 may not have the required DLL. To use
9a00bed5 1992Emacs's networking features on Windows 95, you must install the
ade79051
KS
1993"Windows Socket 2" update available from MicroSoft's support Web.
1994
9dc15871 1995** Emacs exits with "X protocol error" when run with an X server for MS-Windows.
a933dad1 1996
9dc15871
EZ
1997A certain X server for Windows had a bug which caused this.
1998Supposedly the newer 32-bit version of this server doesn't have the
1999problem.
177c0ea7 2000
b6ec0fa0
JR
2001** Emacs crashes when opening a file with a UNC path and rails-mode is loaded.
2002
79baa30b 2003Loading rails-mode seems to interfere with UNC path handling. This has been
b6ec0fa0
JR
2004reported as a bug against both Emacs and rails-mode, so look for an updated
2005rails-mode that avoids this crash, or avoid using UNC paths if using
2006rails-mode.
2007
037f36e5 2008** M-x term does not work on MS-Windows.
de66e883 2009
037f36e5
EZ
2010TTY emulation on Windows is undocumented, and programs such as stty
2011which are used on posix platforms to control tty emulation do not
2012exist for native windows terminals.
117402b8 2013
037f36e5 2014** Using create-fontset-from-ascii-font or the --font startup parameter
de66e883 2015with a Chinese, Japanese or Korean font leads to display problems.
79baa30b 2016Use a Latin-only font as your default font. If you want control over
de66e883
JR
2017which font is used to display Chinese, Japanese or Korean character,
2018use create-fontset-from-fontset-spec to define a fontset.
a933dad1 2019
037f36e5
EZ
2020** Frames are not refreshed while dialogs or menus are displayed
2021
2022This means no redisplay while the File or Font dialog or a pop-up menu
2023is displayed. This also means tooltips with help text for pop-up
2024menus is not displayed at all (except in a TTY session, where the help
2025text is shown in the echo area). This is because message handling
2026under Windows is synchronous, so we cannot handle repaint (or any
2027other) messages while waiting for a system function, which popped up
2028the menu/dialog, to return the result of the dialog or pop-up menu
2029interaction.
2030
2031** Help text in tooltips does not work on old Windows versions
a933dad1 2032
9dc15871
EZ
2033Windows 95 and Windows NT up to version 4.0 do not support help text
2034for menus. Help text is only available in later versions of Windows.
a933dad1 2035
037f36e5
EZ
2036** Display problems with ClearType method of smoothing
2037
af71f3ce
EZ
2038When "ClearType" method is selected as the "method to smooth edges of
2039screen fonts" (in Display Properties, Appearance tab, under
2040"Effects"), there are various problems related to display of
f396bf16
JR
2041characters: Bold fonts can be hard to read, small portions of some
2042characters could appear chopped, etc. This happens because, under
2043ClearType, characters are drawn outside their advertised bounding box.
2044Emacs 21 disabled the use of ClearType, whereas Emacs 22 allows it and
2045has some code to enlarge the width of the bounding box. Apparently,
2046this display feature needs more changes to get it 100% right. A
2047workaround is to disable ClearType.
af71f3ce 2048
037f36e5
EZ
2049** Problems with mouse-tracking and focus management
2050
9dc15871
EZ
2051There are problems with display if mouse-tracking is enabled and the
2052mouse is moved off a frame, over another frame then back over the first
2053frame. A workaround is to click the left mouse button inside the frame
2054after moving back into it.
a933dad1 2055
9dc15871
EZ
2056Some minor flickering still persists during mouse-tracking, although
2057not as severely as in 21.1.
a933dad1 2058
9dc15871
EZ
2059An inactive cursor remains in an active window after the Windows
2060Manager driven switch of the focus, until a key is pressed.
a933dad1 2061
037f36e5
EZ
2062** Problems with Windows input methods
2063
2064Some of the Windows input methods cause the keyboard to send
2065characters encoded in the appropriate coding system (e.g., ISO 8859-1
2066for Latin-1 characters, ISO 8859-8 for Hebrew characters, etc.). To
2067make these input methods work with Emacs on Windows 9X, you might need
2068to set the keyboard coding system to the appropriate value after you
2069activate the Windows input method. For example, if you activate the
2070Hebrew input method, type this:
4ed1bce5
EZ
2071
2072 C-x RET k hebrew-iso-8bit RET
2073
037f36e5
EZ
2074In addition, to use these Windows input methods, you might need to set
2075your "Language for non-Unicode programs" (on Windows XP, this is on
2076the Advanced tab of Regional Settings) to the language of the input
2077method.
a933dad1 2078
868c31fe 2079To bind keys that produce non-ASCII characters with modifiers, you
79baa30b 2080must specify raw byte codes. For instance, if you want to bind
868c31fe
EZ
2081META-a-grave to a command, you need to specify this in your `~/.emacs':
2082
2083 (global-set-key [?\M-\340] ...)
2084
2085The above example is for the Latin-1 environment where the byte code
2086of the encoded a-grave is 340 octal. For other environments, use the
2087encoding appropriate to that environment.
a933dad1 2088
037f36e5
EZ
2089** Problems with the %b format specifier for format-time-string
2090
9dc15871
EZ
2091The %b specifier for format-time-string does not produce abbreviated
2092month names with consistent widths for some locales on some versions
79baa30b 2093of Windows. This is caused by a deficiency in the underlying system
9dc15871 2094library function.
a933dad1 2095
037f36e5
EZ
2096** Problems with set-time-zone-rule function
2097
cdc9f5c2
JR
2098The function set-time-zone-rule gives incorrect results for many
2099non-US timezones. This is due to over-simplistic handling of
2100daylight savings switchovers by the Windows libraries.
9f1bc31f 2101
037f36e5
EZ
2102** Files larger than 4GB report wrong size
2103
365b9257
EZ
2104Files larger than 4GB cause overflow in the size (represented as a
210532-bit integer) reported by `file-attributes'. This affects Dired as
2106well, since the Windows port uses a Lisp emulation of `ls' that relies
2107on `file-attributes'.
2108
037f36e5
EZ
2109** Playing sound doesn't support the :data method
2110
56dc0646
EZ
2111Sound playing is not supported with the `:data DATA' key-value pair.
2112You _must_ use the `:file FILE' method.
2113
0a4dd4e4 2114** Typing Alt-Shift has strange effects on MS-Windows.
a933dad1 2115
0a4dd4e4
EZ
2116This combination of keys is a command to change keyboard layout. If
2117you proceed to type another non-modifier key before you let go of Alt
2118and Shift, the Alt and Shift act as modifiers in the usual way. A
2119more permanent work around is to change it to another key combination,
d169ccbd
EZ
2120or disable it in the "Regional and Language Options" applet of the
2121Control Panel. (The exact sequence of mouse clicks in the "Regional
2122and Language Options" applet needed to find the key combination that
2123changes the keyboard layout depends on your Windows version; for XP,
2124in the Languages tab, click "Details" and then "Key Settings".)
a933dad1 2125
0a4dd4e4 2126** Interrupting Cygwin port of Bash from Emacs doesn't work.
a933dad1 2127
0a4dd4e4
EZ
2128Cygwin 1.x builds of the ported Bash cannot be interrupted from the
2129MS-Windows version of Emacs. This is due to some change in the Bash
2130port or in the Cygwin library which apparently make Bash ignore the
2131keyboard interrupt event sent by Emacs to Bash. (Older Cygwin ports
2132of Bash, up to b20.1, did receive SIGINT from Emacs.)
a933dad1 2133
0a4dd4e4 2134** Accessing remote files with ange-ftp hangs the MS-Windows version of Emacs.
a933dad1 2135
0a4dd4e4
EZ
2136If the FTP client is the Cygwin port of GNU `ftp', this appears to be
2137due to some bug in the Cygwin DLL or some incompatibility between it
2138and the implementation of asynchronous subprocesses in the Windows
2139port of Emacs. Specifically, some parts of the FTP server responses
2140are not flushed out, apparently due to buffering issues, which
2141confuses ange-ftp.
a933dad1 2142
0a4dd4e4
EZ
2143The solution is to downgrade to an older version of the Cygwin DLL
2144(version 1.3.2 was reported to solve the problem), or use the stock
2145Windows FTP client, usually found in the `C:\WINDOWS' or 'C:\WINNT'
2146directory. To force ange-ftp use the stock Windows client, set the
2147variable `ange-ftp-ftp-program-name' to the absolute file name of the
2148client's executable. For example:
a933dad1 2149
9dc15871 2150 (setq ange-ftp-ftp-program-name "c:/windows/ftp.exe")
a933dad1 2151
9dc15871
EZ
2152If you want to stick with the Cygwin FTP client, you can work around
2153this problem by putting this in your `.emacs' file:
a933dad1 2154
9dc15871 2155 (setq ange-ftp-ftp-program-args '("-i" "-n" "-g" "-v" "--prompt" "")
a933dad1 2156
9dc15871 2157** lpr commands don't work on MS-Windows with some cheap printers.
a933dad1 2158
9dc15871
EZ
2159This problem may also strike other platforms, but the solution is
2160likely to be a global one, and not Emacs specific.
a933dad1 2161
9dc15871
EZ
2162Many cheap inkjet, and even some cheap laser printers, do not
2163print plain text anymore, they will only print through graphical
3e702d16 2164printer drivers. A workaround on MS-Windows is to use Windows's basic
9dc15871
EZ
2165built in editor to print (this is possibly the only useful purpose it
2166has):
a933dad1 2167
251c2719
GM
2168(setq printer-name "") ; notepad takes the default
2169(setq lpr-command "notepad") ; notepad
2170(setq lpr-switches nil) ; not needed
2171(setq lpr-printer-switch "/P") ; run notepad as batch printer
a933dad1 2172
9dc15871 2173** Antivirus software interacts badly with the MS-Windows version of Emacs.
a933dad1 2174
9dc15871
EZ
2175The usual manifestation of these problems is that subprocesses don't
2176work or even wedge the entire system. In particular, "M-x shell RET"
2177was reported to fail to work. But other commands also sometimes don't
2178work when an antivirus package is installed.
a933dad1 2179
9dc15871
EZ
2180The solution is to switch the antivirus software to a less aggressive
2181mode (e.g., disable the ``auto-protect'' feature), or even uninstall
2182or disable it entirely.
a933dad1 2183
9dc15871 2184** Pressing the mouse button on MS-Windows does not give a mouse-2 event.
a933dad1 2185
79baa30b 2186This is usually a problem with the mouse driver. Because most Windows
9dc15871
EZ
2187programs do not do anything useful with the middle mouse button, many
2188mouse drivers allow you to define the wheel press to do something
79baa30b
GM
2189different. Some drivers do not even have the option to generate a
2190middle button press. In such cases, setting the wheel press to
2191"scroll" sometimes works if you press the button twice. Trying a
9dc15871 2192generic mouse driver might help.
a933dad1 2193
9dc15871 2194** Scrolling the mouse wheel on MS-Windows always scrolls the top window.
a933dad1 2195
79baa30b 2196This is another common problem with mouse drivers. Instead of
9dc15871 2197generating scroll events, some mouse drivers try to fake scroll bar
79baa30b
GM
2198movement. But they are not intelligent enough to handle multiple
2199scroll bars within a frame. Trying a generic mouse driver might help.
a933dad1 2200
9dc15871
EZ
2201** Mail sent through Microsoft Exchange in some encodings appears to be
2202mangled and is not seen correctly in Rmail or Gnus. We don't know
2203exactly what happens, but it isn't an Emacs problem in cases we've
2204seen.
a933dad1 2205
9dc15871
EZ
2206** On MS-Windows, you cannot use the right-hand ALT key and the left-hand
2207CTRL key together to type a Control-Meta character.
a933dad1 2208
9dc15871 2209This is a consequence of a misfeature beyond Emacs's control.
a933dad1 2210
9dc15871
EZ
2211Under Windows, the AltGr key on international keyboards generates key
2212events with the modifiers Right-Alt and Left-Ctrl. Since Emacs cannot
2213distinguish AltGr from an explicit Right-Alt and Left-Ctrl
2214combination, whenever it sees Right-Alt and Left-Ctrl it assumes that
2215AltGr has been pressed. The variable `w32-recognize-altgr' can be set
2216to nil to tell Emacs that AltGr is really Ctrl and Alt.
a933dad1 2217
9a00bed5 2218** Under some X-servers running on MS-Windows, Emacs's display is incorrect.
a933dad1 2219
9dc15871
EZ
2220The symptoms are that Emacs does not completely erase blank areas of the
2221screen during scrolling or some other screen operations (e.g., selective
2222display or when killing a region). M-x recenter will cause the screen
2223to be completely redisplayed and the "extra" characters will disappear.
a933dad1 2224
9dc15871
EZ
2225This is known to occur under Exceed 6, and possibly earlier versions
2226as well; it is reportedly solved in version 6.2.0.16 and later. The
2227problem lies in the X-server settings.
a933dad1 2228
9dc15871
EZ
2229There are reports that you can solve the problem with Exceed by
2230running `Xconfig' from within NT, choosing "X selection", then
2231un-checking the boxes "auto-copy X selection" and "auto-paste to X
2232selection".
a933dad1 2233
3e702d16 2234If this does not work, please inform bug-gnu-emacs@gnu.org. Then
9dc15871 2235please call support for your X-server and see if you can get a fix.
c64233b2 2236If you do, please send it to bug-gnu-emacs@gnu.org so we can list it here.
a933dad1 2237
9dc15871 2238* Build-time problems
a933dad1 2239
af3e4d06 2240** Autoreconf
b05e08a4 2241
af3e4d06
PE
2242*** autoreconf fails with "possibly undefined macro: PKG_CONFIG".
2243This can happen if you installed your own automake in a non-standard
2244location /prefix. The simplest workaround is to run ./autogen.sh
2245instead. If you prefer to run autoreconf directly, then if pkg.m4 is
2246in the directory /usr/share/aclocal you can append /usr/share/local to
2247your ACLOCAL_PATH environment variable, or you can add a line
2248"/usr/share/aclocal" to the file /prefix/share/aclocal/dirlist (create
2249the file if necessary).
b05e08a4 2250
9dc15871 2251** Configuration
a933dad1 2252
f4b84ef4
GM
2253*** `configure' warns ``accepted by the compiler, rejected by the preprocessor''.
2254
2255This indicates a mismatch between the C compiler and preprocessor that
2256configure is using. For example, on Solaris 10 trying to use
2257CC=/opt/SUNWspro/bin/cc (the Sun Studio compiler) together with
2258CPP=/usr/ccs/lib/cpp can result in errors of this form (you may also
2259see the error ``"/usr/include/sys/isa_defs.h", line 500: undefined control'').
2260
2261The solution is to tell configure to use the correct C preprocessor
2262for your C compiler (CPP="/opt/SUNWspro/bin/cc -E" in the above
2263example).
2264
9dc15871 2265** Compilation
a933dad1 2266
9dc15871 2267*** Building Emacs over NFS fails with ``Text file busy''.
a933dad1 2268
9dc15871 2269This was reported to happen when building Emacs on a GNU/Linux system
880ea925 2270(Red Hat Linux 6.2) using a build directory automounted from Solaris
9dc15871
EZ
2271(SunOS 5.6) file server, but it might not be limited to that
2272configuration alone. Presumably, the NFS server doesn't commit the
2273files' data to disk quickly enough, and the Emacs executable file is
2274left ``busy'' for several seconds after Emacs has finished dumping
2275itself. This causes the subsequent commands which invoke the dumped
2276Emacs executable to fail with the above message.
a933dad1 2277
9dc15871
EZ
2278In some of these cases, a time skew between the NFS server and the
2279machine where Emacs is built is detected and reported by GNU Make
2280(it says that some of the files have modification time in the future).
2281This might be a symptom of NFS-related problems.
a933dad1 2282
9dc15871
EZ
2283If the NFS server runs on Solaris, apply the Solaris patch 105379-05
2284(Sunos 5.6: /kernel/misc/nfssrv patch). If that doesn't work, or if
2285you have a different version of the OS or the NFS server, you can
2286force the NFS server to use 1KB blocks, which was reported to fix the
2287problem albeit at a price of slowing down file I/O. You can force 1KB
2288blocks by specifying the "-o rsize=1024,wsize=1024" options to the
2289`mount' command, or by adding ",rsize=1024,wsize=1024" to the mount
2290options in the appropriate system configuration file, such as
2291`/etc/auto.home'.
a933dad1 2292
9dc15871
EZ
2293Alternatively, when Make fails due to this problem, you could wait for
2294a few seconds and then invoke Make again. In one particular case,
2295waiting for 10 or more seconds between the two Make invocations seemed
2296to work around the problem.
a933dad1 2297
9dc15871
EZ
2298Similar problems can happen if your machine NFS-mounts a directory
2299onto itself. Suppose the Emacs sources live in `/usr/local/src' and
2300you are working on the host called `marvin'. Then an entry in the
2301`/etc/fstab' file like the following is asking for trouble:
a933dad1 2302
9dc15871 2303 marvin:/usr/local/src /usr/local/src ...options.omitted...
a933dad1 2304
9dc15871 2305The solution is to remove this line from `etc/fstab'.
a933dad1 2306
745377e8
GM
2307*** Building a 32-bit executable on a 64-bit GNU/Linux architecture.
2308
2309First ensure that the necessary 32-bit system libraries and include
79baa30b 2310files are installed. Then use:
745377e8 2311
3e702d16 2312 env CC="gcc -m32" ./configure --build=i386-linux-gnu --x-libraries=/usr/lib
745377e8
GM
2313
2314(using the location of the 32-bit X libraries on your system).
2315
024681aa
KB
2316*** Building Emacs for Cygwin can fail with GCC 3
2317
2318As of Emacs 22.1, there have been stability problems with Cygwin
2319builds of Emacs using GCC 3. Cygwin users are advised to use GCC 4.
9c9f0081 2320
4f35b2e8
KB
2321*** Building Emacs 23.3 and later will fail under Cygwin 1.5.19
2322
2323This is a consequence of a change to src/dired.c on 2010-07-27. The
2324issue is that Cygwin 1.5.19 did not have d_ino in 'struct dirent'.
2325See
2326
2327 http://lists.gnu.org/archive/html/emacs-devel/2010-07/msg01266.html
2328
5660c0f5
EZ
2329*** Building the native MS-Windows port fails due to unresolved externals
2330
2331The linker error messages look like this:
2332
2333 oo-spd/i386/ctags.o:ctags.c:(.text+0x156e): undefined reference to `_imp__re_set_syntax'
2334 collect2: ld returned 1 exit status
2335
2336This happens because GCC finds an incompatible header regex.h
2337somewhere on the include path, before the version of regex.h supplied
2338with Emacs. One such incompatible version of regex.h is part of the
2339GnuWin32 Regex package.
2340
2341The solution is to remove the incompatible regex.h from the include
2342path, when compiling Emacs. Alternatively, re-run the configure.bat
2343script with the "-isystem C:/GnuWin32/include" switch (adapt for your
2344system's place where you keep the GnuWin32 include files) -- this will
2345cause the compiler to search headers in the directories specified by
2346the Emacs Makefile _before_ it looks in the GnuWin32 include
2347directories.
2348
9c9f0081 2349*** Building the native MS-Windows port with Cygwin GCC can fail.
a933dad1 2350
ad05a5de 2351Emacs may not build using some Cygwin builds of GCC, such as Cygwin
9dc15871
EZ
2352version 1.1.8, using the default configure settings. It appears to be
2353necessary to specify the -mwin32 flag when compiling, and define
2354__MSVCRT__, like so:
a933dad1 2355
9dc15871 2356 configure --with-gcc --cflags -mwin32 --cflags -D__MSVCRT__
a933dad1 2357
9dc15871 2358*** Building the MS-Windows port fails with a CreateProcess failure.
a933dad1 2359
9dc15871 2360Some versions of mingw32 make on some versions of Windows do not seem
79baa30b 2361to detect the shell correctly. Try "make SHELL=cmd.exe", or if that
9dc15871 2362fails, try running make from Cygwin bash instead.
a933dad1 2363
9dc15871 2364*** Building `ctags' for MS-Windows with the MinGW port of GCC fails.
a933dad1 2365
9dc15871
EZ
2366This might happen due to a bug in the MinGW header assert.h, which
2367defines the `assert' macro with a trailing semi-colon. The following
2368patch to assert.h should solve this:
a933dad1 2369
0cc69e7d
EZ
2370 *** include/assert.h.orig Sun Nov 7 02:41:36 1999
2371 --- include/assert.h Mon Jan 29 11:49:10 2001
2372 ***************
2373 *** 41,47 ****
2374 /*
2375 * If not debugging, assert does nothing.
2376 */
2377 ! #define assert(x) ((void)0);
2378
2379 #else /* debugging enabled */
2380
2381 --- 41,47 ----
2382 /*
2383 * If not debugging, assert does nothing.
2384 */
2385 ! #define assert(x) ((void)0)
2386
2387 #else /* debugging enabled */
a933dad1 2388
a933dad1 2389
3e7c244e 2390*** Building the MS-Windows port with Visual Studio 2005 fails.
a933dad1 2391
3e7c244e
JR
2392Microsoft no longer ships the single threaded version of the C library
2393with their compiler, and the multithreaded static library is missing
0cc69e7d 2394some functions that Microsoft have deemed non-threadsafe. The
3e7c244e
JR
2395dynamically linked C library has all the functions, but there is a
2396conflict between the versions of malloc in the DLL and in Emacs, which
2397is not resolvable due to the way Windows does dynamic linking.
a933dad1 2398
8c4fae51 2399We recommend the use of the MinGW port of GCC for compiling Emacs, as
3e7c244e
JR
2400not only does it not suffer these problems, but it is also Free
2401software like Emacs.
a933dad1 2402
8c4fae51
JR
2403*** Building the MS-Windows port with Visual Studio fails compiling emacs.rc
2404
2405If the build fails with the following message then the problem
2406described here most likely applies:
2407
2408../nt/emacs.rc(1) : error RC2176 : old DIB in icons\emacs.ico; pass it
2409through SDKPAINT
2410
2411The Emacs icon contains a high resolution PNG icon for Vista, which is
79baa30b 2412not recognized by older versions of the resource compiler. There are
8c4fae51
JR
2413several workarounds for this problem:
2414 1. Use Free MinGW tools to compile, which do not have this problem.
2415 2. Install the latest Windows SDK.
2416 3. Replace emacs.ico with an older or edited icon.
2417
0a46152e
JB
2418*** Building the MS-Windows port complains about unknown escape sequences.
2419
2420Errors and warnings can look like this:
2421
2422 w32.c:1959:27: error: \x used with no following hex digits
2423 w32.c:1959:27: warning: unknown escape sequence '\i'
2424
2425This happens when paths using backslashes are passed to the compiler or
2426linker (via -I and possibly other compiler flags); when these paths are
2427included in source code, the backslashes are interpreted as escape sequences.
2428See http://lists.gnu.org/archive/html/emacs-devel/2010-07/msg00995.html
2429
2430The fix is to use forward slashes in all paths passed to the compiler.
2431
9dc15871 2432** Linking
a933dad1 2433
9dc15871
EZ
2434*** Building Emacs with a system compiler fails to link because of an
2435undefined symbol such as __eprintf which does not appear in Emacs.
a933dad1 2436
9dc15871
EZ
2437This can happen if some of the libraries linked into Emacs were built
2438with GCC, but Emacs itself is being linked with a compiler other than
2439GCC. Object files compiled with GCC might need some helper functions
2440from libgcc.a, the library which comes with GCC, but the system
2441compiler does not instruct the linker to search libgcc.a during the
2442link stage.
a933dad1 2443
9dc15871 2444A solution is to link with GCC, like this:
a933dad1 2445
3256a475 2446 make CC=gcc
a933dad1 2447
9dc15871
EZ
2448Since the .o object files already exist, this will not recompile Emacs
2449with GCC, but just restart by trying again to link temacs.
a933dad1 2450
9dc15871 2451*** Sun with acc: Link failure when using acc on a Sun.
a933dad1 2452
9dc15871 2453To use acc, you need additional options just before the libraries, such as
a933dad1 2454
9dc15871 2455 /usr/lang/SC2.0.1/values-Xt.o -L/usr/lang/SC2.0.1/cg87 -L/usr/lang/SC2.0.1
a933dad1 2456
9dc15871 2457and you need to add -lansi just before -lc.
a933dad1 2458
9dc15871
EZ
2459The precise file names depend on the compiler version, so we
2460cannot easily arrange to supply them.
a933dad1 2461
9dc15871 2462*** `tparam' reported as a multiply-defined symbol when linking with ncurses.
a933dad1 2463
9dc15871
EZ
2464This problem results from an incompatible change in ncurses, in
2465version 1.9.9e approximately. This version is unable to provide a
2466definition of tparm without also defining tparam. This is also
2467incompatible with Terminfo; as a result, the Emacs Terminfo support
2468does not work with this version of ncurses.
a933dad1 2469
9dc15871 2470The fix is to install a newer version of ncurses, such as version 4.2.
a933dad1 2471
d7ef7cd4
GM
2472** Bootstrapping
2473
2474Bootstrapping (compiling the .el files) is normally only necessary
c64233b2 2475with development builds, since the .elc files are pre-compiled in releases.
d7ef7cd4
GM
2476
2477*** "No rule to make target" with Ubuntu 8.04 make 3.81-3build1
2478
2479Compiling the lisp files fails at random places, complaining:
2480"No rule to make target `/path/to/some/lisp.elc'".
2481The causes of this problem are not understood. Using GNU make 3.81 compiled
9a00bed5
GM
2482from source, rather than the Ubuntu version, worked.
2483See <URL:http://debbugs.gnu.org/327, <URL:http://debbugs.gnu.org/821>.
d7ef7cd4 2484
9dc15871 2485** Dumping
a933dad1 2486
79baa30b 2487*** Segfault during `make bootstrap' under the Linux kernel.
a933dad1 2488
79baa30b
GM
2489In Red Hat Linux kernels, "Exec-shield" functionality is enabled by
2490default, which creates a different memory layout that can break the
2491emacs dumper. Emacs tries to handle this at build time, but if this
2492fails, the following instructions may be useful.
a933dad1 2493
79baa30b 2494Exec-shield is enabled on your system if
a933dad1 2495
9dc15871 2496 cat /proc/sys/kernel/exec-shield
a933dad1 2497
79baa30b
GM
2498prints a value other than 0. (Please read your system documentation
2499for more details on Exec-shield and associated commands.)
1f02a4ba 2500
79baa30b
GM
2501Additionally, Linux kernel versions since 2.6.12 randomize the virtual
2502address space of a process by default. If this feature is enabled on
2503your system, then
a933dad1 2504
79baa30b 2505 cat /proc/sys/kernel/randomize_va_space
a933dad1 2506
79baa30b 2507prints a value other than 0.
a933dad1 2508
79baa30b
GM
2509When these features are enabled, building Emacs may segfault during
2510the execution of this command:
1f02a4ba 2511
79baa30b 2512 ./temacs --batch --load loadup [dump|bootstrap]
a933dad1 2513
79baa30b
GM
2514To work around this problem, you can temporarily disable these
2515features while building Emacs. You can do so using the following
2516commands (as root). Remember to re-enable them when you are done,
2517by echoing the original values back to the files.
ade79051 2518
79baa30b
GM
2519 echo 0 > /proc/sys/kernel/exec-shield
2520 echo 0 > /proc/sys/kernel/randomize_va_space
ff0ab406 2521
79baa30b
GM
2522Or, on x86, you can try using the `setarch' command when running
2523temacs, like this:
ff0ab406 2524
79baa30b 2525 setarch i386 -R ./temacs --batch --load loadup [dump|bootstrap]
ff0ab406
RS
2526
2527or
2528
79baa30b 2529 setarch i386 -R make
a933dad1 2530
79baa30b 2531(The -R option disables address space randomization.)
a933dad1 2532
9dc15871 2533*** temacs prints "Pure Lisp storage exhausted".
a933dad1 2534
3e702d16
GM
2535This means that the Lisp code loaded from the .elc and .el files during
2536`temacs --batch --load loadup dump' took up more space than was allocated.
a933dad1
DL
2537
2538This could be caused by
2539 1) adding code to the preloaded Lisp files
2540 2) adding more preloaded files in loadup.el
2541 3) having a site-init.el or site-load.el which loads files.
2542 Note that ANY site-init.el or site-load.el is nonstandard;
c64233b2
GM
2543 if you have received Emacs from some other site and it contains a
2544 site-init.el or site-load.el file, consider deleting that file.
a933dad1
DL
2545 4) getting the wrong .el or .elc files
2546 (not from the directory you expected).
2547 5) deleting some .elc files that are supposed to exist.
2548 This would cause the source files (.el files) to be
2549 loaded instead. They take up more room, so you lose.
c64233b2 2550 6) a bug in the Emacs distribution which underestimates the space required.
a933dad1
DL
2551
2552If the need for more space is legitimate, change the definition
2553of PURESIZE in puresize.h.
2554
2555But in some of the cases listed above, this problem is a consequence
c64233b2 2556of something else that is wrong. Be sure to check and fix the real problem.
a933dad1 2557
0bce976c
GM
2558*** OpenBSD 4.0 macppc: Segfault during dumping.
2559
2560The build aborts with signal 11 when the command `./temacs --batch
14395431 2561--load loadup bootstrap' tries to load files.el. A workaround seems
464df798 2562to be to reduce the level of compiler optimization used during the
14395431
GM
2563build (from -O2 to -O1). It is possible this is an OpenBSD
2564GCC problem specific to the macppc architecture, possibly only
2565occurring with older versions of GCC (e.g. 3.3.5).
0bce976c 2566
ce46543c
GM
2567*** openSUSE 10.3: Segfault in bcopy during dumping.
2568
2569This is due to a bug in the bcopy implementation in openSUSE 10.3.
2570It is/will be fixed in an openSUSE update.
2571
9dc15871 2572** First execution
a933dad1 2573
9dc15871 2574*** Emacs binary is not in executable format, and cannot be run.
a933dad1 2575
9dc15871
EZ
2576This was reported to happen when Emacs is built in a directory mounted
2577via NFS, for some combinations of NFS client and NFS server.
2578Usually, the file `emacs' produced in these cases is full of
2579binary null characters, and the `file' utility says:
a933dad1 2580
9dc15871 2581 emacs: ASCII text, with no line terminators
a933dad1 2582
9dc15871
EZ
2583We don't know what exactly causes this failure. A work-around is to
2584build Emacs in a directory on a local disk.
a933dad1 2585
9dc15871 2586*** The dumped Emacs crashes when run, trying to write pure data.
a933dad1 2587
ba93a187 2588On a system where getpagesize is not a system call, it is defined
29cf3e20 2589as a macro. If the definition (in both unex*.c and malloc.c) is wrong,
a933dad1
DL
2590it can cause problems like this. You might be able to find the correct
2591value in the man page for a.out (5).
2592
79baa30b 2593* Problems on legacy systems
a933dad1 2594
9dc15871
EZ
2595This section covers bugs reported on very old hardware or software.
2596If you are using hardware and an operating system shipped after 2000,
2597it is unlikely you will see any of these.
a933dad1 2598
9dc15871 2599*** Solaris 2.x
a933dad1 2600
9dc15871 2601**** Strange results from format %d in a few cases, on a Sun.
a933dad1 2602
79baa30b
GM
2603Sun compiler version SC3.0 has been found to miscompile part of editfns.c.
2604The workaround is to compile with some other compiler such as GCC.
a933dad1 2605
9dc15871 2606**** On Solaris, Emacs dumps core if lisp-complete-symbol is called.
a933dad1 2607
9dc15871
EZ
2608If you compile Emacs with the -fast or -xO4 option with version 3.0.2
2609of the Sun C compiler, Emacs dumps core when lisp-complete-symbol is
2610called. The problem does not happen if you compile with GCC.
a933dad1 2611
9dc15871 2612**** On Solaris, Emacs crashes if you use (display-time).
a933dad1 2613
9dc15871
EZ
2614This can happen if you configure Emacs without specifying the precise
2615version of Solaris that you are using.
a933dad1 2616
9dc15871 2617**** Solaris 2.x: GCC complains "64 bit integer types not supported".
a933dad1 2618
9dc15871
EZ
2619This suggests that GCC is not installed correctly. Most likely you
2620are using GCC 2.7.2.3 (or earlier) on Solaris 2.6 (or later); this
2621does not work without patching. To run GCC 2.7.2.3 on Solaris 2.6 or
2622later, you must patch fixinc.svr4 and reinstall GCC from scratch as
2623described in the Solaris FAQ
2624<http://www.wins.uva.nl/pub/solaris/solaris2.html>. A better fix is
2625to upgrade to GCC 2.8.1 or later.
a933dad1 2626
9dc15871
EZ
2627**** Solaris 2.7: Building Emacs with WorkShop Compilers 5.0 98/12/15
2628C 5.0 failed, apparently with non-default CFLAGS, most probably due to
2629compiler bugs. Using Sun Solaris 2.7 Sun WorkShop 6 update 1 C
2630release was reported to work without problems. It worked OK on
2631another system with Solaris 8 using apparently the same 5.0 compiler
2632and the default CFLAGS.
a933dad1 2633
9dc15871 2634**** Solaris 2.x: Emacs dumps core when built with Motif.
a933dad1 2635
9dc15871
EZ
2636The Solaris Motif libraries are buggy, at least up through Solaris 2.5.1.
2637Install the current Motif runtime library patch appropriate for your host.
2638(Make sure the patch is current; some older patch versions still have the bug.)
2639You should install the other patches recommended by Sun for your host, too.
2640You can obtain Sun patches from ftp://sunsolve.sun.com/pub/patches/;
2641look for files with names ending in `.PatchReport' to see which patches
2642are currently recommended for your host.
a933dad1 2643
9dc15871
EZ
2644On Solaris 2.6, Emacs is said to work with Motif when Solaris patch
2645105284-12 is installed, but fail when 105284-15 is installed.
2646105284-18 might fix it again.
a933dad1 2647
0a4dd4e4 2648**** Solaris 2.6 and 7: the Compose key does not work.
a933dad1 2649
9dc15871
EZ
2650This is a bug in Motif in Solaris. Supposedly it has been fixed for
2651the next major release of Solaris. However, if someone with Sun
2652support complains to Sun about the bug, they may release a patch.
2653If you do this, mention Sun bug #4188711.
a933dad1 2654
9dc15871
EZ
2655One workaround is to use a locale that allows non-ASCII characters.
2656For example, before invoking emacs, set the LC_ALL environment
2657variable to "en_US" (American English). The directory /usr/lib/locale
2658lists the supported locales; any locale other than "C" or "POSIX"
2659should do.
a933dad1 2660
9dc15871 2661pen@lysator.liu.se says (Feb 1998) that the Compose key does work
c64233b2 2662if you link with the MIT X11 libraries instead of the Solaris X11 libraries.
0a4dd4e4 2663
c64233b2 2664** MS-Windows 95, 98, ME, and NT
0a4dd4e4
EZ
2665
2666*** MS-Windows NT/95: Problems running Perl under Emacs
2667
2668`perl -de 0' just hangs when executed in an Emacs subshell.
2669The fault lies with Perl (indirectly with Windows NT/95).
2670
2671The problem is that the Perl debugger explicitly opens a connection to
2672"CON", which is the DOS/NT equivalent of "/dev/tty", for interacting
2673with the user.
2674
2675On Unix, this is okay, because Emacs (or the shell?) creates a
2676pseudo-tty so that /dev/tty is really the pipe Emacs is using to
2677communicate with the subprocess.
2678
2679On NT, this fails because CON always refers to the handle for the
2680relevant console (approximately equivalent to a tty), and cannot be
2681redirected to refer to the pipe Emacs assigned to the subprocess as
2682stdin.
2683
2684A workaround is to modify perldb.pl to use STDIN/STDOUT instead of CON.
2685
2686For Perl 4:
2687
2688 *** PERL/LIB/PERLDB.PL.orig Wed May 26 08:24:18 1993
2689 --- PERL/LIB/PERLDB.PL Mon Jul 01 15:28:16 1996
2690 ***************
2691 *** 68,74 ****
3256a475 2692 $rcfile=".perldb";
0a4dd4e4
EZ
2693 }
2694 else {
2695 ! $console = "con";
3256a475 2696 $rcfile="perldb.ini";
0a4dd4e4
EZ
2697 }
2698
2699 --- 68,74 ----
3256a475 2700 $rcfile=".perldb";
0a4dd4e4
EZ
2701 }
2702 else {
2703 ! $console = "";
3256a475 2704 $rcfile="perldb.ini";
0a4dd4e4
EZ
2705 }
2706
2707
2708 For Perl 5:
2709 *** perl/5.001/lib/perl5db.pl.orig Sun Jun 04 21:13:40 1995
2710 --- perl/5.001/lib/perl5db.pl Mon Jul 01 17:00:08 1996
2711 ***************
2712 *** 22,28 ****
3256a475 2713 $rcfile=".perldb";
0a4dd4e4
EZ
2714 }
2715 elsif (-e "con") {
2716 ! $console = "con";
3256a475 2717 $rcfile="perldb.ini";
0a4dd4e4
EZ
2718 }
2719 else {
2720 --- 22,28 ----
3256a475 2721 $rcfile=".perldb";
0a4dd4e4
EZ
2722 }
2723 elsif (-e "con") {
2724 ! $console = "";
3256a475 2725 $rcfile="perldb.ini";
0a4dd4e4
EZ
2726 }
2727 else {
2728
2729*** MS-Windows 95: Alt-f6 does not get through to Emacs.
2730
2731This character seems to be trapped by the kernel in Windows 95.
2732You can enter M-f6 by typing ESC f6.
2733
2734*** MS-Windows 95/98/ME: subprocesses do not terminate properly.
2735
2736This is a limitation of the Operating System, and can cause problems
63e984f8
GM
2737when shutting down Windows. Ensure that all subprocesses are exited
2738cleanly before exiting Emacs. For more details, see the Emacs on MS
2739Windows FAQ (info manual "efaq-w32").
0a4dd4e4
EZ
2740
2741*** MS-Windows 95/98/ME: crashes when Emacs invokes non-existent programs.
2742
2743When a program you are trying to run is not found on the PATH,
2744Windows might respond by crashing or locking up your system. In
2745particular, this has been reported when trying to compile a Java
c64233b2 2746program in JDEE when javac.exe is installed, but not on the system PATH.
0a4dd4e4 2747
9dc15871 2748** MS-DOS
a933dad1 2749
bde76d3e 2750*** When compiling with DJGPP on MS-Windows NT or later, "config msdos" fails.
a933dad1 2751
9dc15871
EZ
2752If the error message is "VDM has been already loaded", this is because
2753Windows has a program called `redir.exe' that is incompatible with a
2754program by the same name supplied with DJGPP, which is used by
2755config.bat. To resolve this, move the DJGPP's `bin' subdirectory to
2756the front of your PATH environment variable.
a933dad1 2757
dbf9702e
EZ
2758*** When Emacs compiled with DJGPP runs on Windows 2000 and later, it cannot
2759find your HOME directory.
2760
2761This was reported to happen when you click on "Save for future
2762sessions" button in a Customize buffer. You might see an error
2763message like this one:
2764
2765 basic-save-buffer-2: c:/FOO/BAR/~dosuser/: no such directory
2766
2767(The telltale sign is the "~USER" part at the end of the directory
2768Emacs complains about, where USER is your username or the literal
2769string "dosuser", which is the default username set up by the DJGPP
2770startup file DJGPP.ENV.)
2771
2772This happens when the functions `user-login-name' and
2773`user-real-login-name' return different strings for your username as
2774Emacs sees it. To correct this, make sure both USER and USERNAME
2775environment variables are set to the same value. Windows 2000 and
2776later sets USERNAME, so if you want to keep that, make sure USER is
2777set to the same value. If you don't want to set USER globally, you
2778can do it in the [emacs] section of your DJGPP.ENV file.
2779
bde76d3e
EZ
2780*** When Emacs compiled with DJGPP runs on Vista, it runs out of memory.
2781
2782If Emacs running on Vista displays "!MEM FULL!" in the mode line, you
2783are hitting the memory allocation bugs in the Vista DPMI server. See
2784msdos/INSTALL for how to work around these bugs (search for "Vista").
2785
9dc15871
EZ
2786*** When compiling with DJGPP on MS-Windows 95, Make fails for some targets
2787like make-docfile.
a933dad1 2788
9dc15871
EZ
2789This can happen if long file name support (the setting of environment
2790variable LFN) when Emacs distribution was unpacked and during
bde76d3e
EZ
2791compilation are not the same. See msdos/INSTALL for the explanation
2792of how to avoid this problem.
a933dad1 2793
9dc15871 2794*** Emacs compiled with DJGPP complains at startup:
a933dad1 2795
9dc15871 2796 "Wrong type of argument: internal-facep, msdos-menu-active-face"
a933dad1 2797
9dc15871
EZ
2798This can happen if you define an environment variable `TERM'. Emacs
2799on MSDOS uses an internal terminal emulator which is disabled if the
2800value of `TERM' is anything but the string "internal". Emacs then
2801works as if its terminal were a dumb glass teletype that doesn't
2802support faces. To work around this, arrange for `TERM' to be
2803undefined when Emacs runs. The best way to do that is to add an
2804[emacs] section to the DJGPP.ENV file which defines an empty value for
2805`TERM'; this way, only Emacs gets the empty value, while the rest of
2806your system works as before.
a933dad1 2807
9dc15871 2808*** MS-DOS: Emacs crashes at startup.
a933dad1 2809
9dc15871 2810Some users report that Emacs 19.29 requires dpmi memory management,
c64233b2 2811and crashes on startup if the system does not have it. We don't
9dc15871
EZ
2812know why this happens--perhaps these machines don't have enough real
2813memory, or perhaps something is wrong in Emacs or the compiler.
2814However, arranging to use dpmi support is a workaround.
a933dad1 2815
9dc15871
EZ
2816You can find out if you have a dpmi host by running go32 without
2817arguments; it will tell you if it uses dpmi memory. For more
2818information about dpmi memory, consult the djgpp FAQ. (djgpp
2819is the GNU C compiler as packaged for MSDOS.)
a933dad1 2820
9dc15871
EZ
2821Compiling Emacs under MSDOS is extremely sensitive for proper memory
2822configuration. If you experience problems during compilation, consider
2823removing some or all memory resident programs (notably disk caches)
2824and make sure that your memory managers are properly configured. See
2825the djgpp faq for configuration hints.
a933dad1 2826
9dc15871
EZ
2827*** Emacs compiled with DJGPP for MS-DOS/MS-Windows cannot access files
2828in the directory with the special name `dev' under the root of any
2829drive, e.g. `c:/dev'.
a933dad1 2830
9dc15871
EZ
2831This is an unfortunate side-effect of the support for Unix-style
2832device names such as /dev/null in the DJGPP runtime library. A
2833work-around is to rename the problem directory to another name.
a933dad1 2834
c64233b2 2835*** MS-DOS+DJGPP: Problems on MS-DOS if DJGPP v2.0 is used to compile Emacs.
a933dad1 2836
9dc15871 2837There are two DJGPP library bugs which cause problems:
a933dad1 2838
9dc15871
EZ
2839 * Running `shell-command' (or `compile', or `grep') you get
2840 `Searching for program: permission denied (EACCES), c:/command.com';
2841 * After you shell to DOS, Ctrl-Break kills Emacs.
a933dad1 2842
9dc15871
EZ
2843To work around these bugs, you can use two files in the msdos
2844subdirectory: `is_exec.c' and `sigaction.c'. Compile them and link
2845them into the Emacs executable `temacs'; then they will replace the
2846incorrect library functions.
a933dad1 2847
9dc15871
EZ
2848*** MS-DOS: Emacs compiled for MSDOS cannot find some Lisp files, or other
2849run-time support files, when long filename support is enabled.
a933dad1 2850
9dc15871
EZ
2851Usually, this problem will manifest itself when Emacs exits
2852immediately after flashing the startup screen, because it cannot find
2853the Lisp files it needs to load at startup. Redirect Emacs stdout
2854and stderr to a file to see the error message printed by Emacs.
a933dad1 2855
9dc15871 2856Another manifestation of this problem is that Emacs is unable to load
c64233b2 2857the support for editing program sources in languages such as C and Lisp.
a933dad1 2858
9dc15871
EZ
2859This can happen if the Emacs distribution was unzipped without LFN
2860support, thus causing long filenames to be truncated to the first 6
2861characters and a numeric tail that Windows 95 normally attaches to it.
2862You should unzip the files again with a utility that supports long
2863filenames (such as djtar from DJGPP or InfoZip's UnZip program
bde76d3e
EZ
2864compiled with DJGPP v2). The file msdos/INSTALL explains this issue
2865in more detail.
a933dad1 2866
9dc15871
EZ
2867Another possible reason for such failures is that Emacs compiled for
2868MSDOS is used on Windows NT, where long file names are not supported
2869by this version of Emacs, but the distribution was unpacked by an
2870unzip program that preserved the long file names instead of truncating
2871them to DOS 8+3 limits. To be useful on NT, the MSDOS port of Emacs
2872must be unzipped by a DOS utility, so that long file names are
2873properly truncated.
a933dad1 2874
9dc15871 2875** Archaic window managers and toolkits
a933dad1 2876
79baa30b 2877*** Open Look: Under Open Look, the Emacs window disappears when you type M-q.
a933dad1 2878
9dc15871
EZ
2879Some versions of the Open Look window manager interpret M-q as a quit
2880command for whatever window you are typing at. If you want to use
2881Emacs with that window manager, you should try to configure the window
2882manager to use some other command. You can disable the
2883shortcut keys entirely by adding this line to ~/.OWdefaults:
a933dad1 2884
9dc15871 2885 OpenWindows.WindowMenuAccelerators: False
a933dad1 2886
c64233b2 2887*** twm: A position you specified in .Xdefaults is ignored, using twm.
a933dad1 2888
9dc15871
EZ
2889twm normally ignores "program-specified" positions.
2890You can tell it to obey them with this command in your `.twmrc' file:
a933dad1 2891
9dc15871 2892 UsePPosition "on" #allow clients to request a position
a933dad1 2893
9dc15871 2894** Bugs related to old DEC hardware
a933dad1 2895
9dc15871 2896*** The Compose key on a DEC keyboard does not work as Meta key.
a933dad1 2897
9dc15871 2898This shell command should fix it:
a933dad1 2899
9dc15871 2900 xmodmap -e 'keycode 0xb1 = Meta_L'
a933dad1 2901
9dc15871
EZ
2902*** Keyboard input gets confused after a beep when using a DECserver
2903as a concentrator.
a933dad1 2904
9dc15871
EZ
2905This problem seems to be a matter of configuring the DECserver to use
29067 bit characters rather than 8 bit characters.
53854552 2907\f
5b87ad55 2908This file is part of GNU Emacs.
fe6b4873 2909
ab73e885 2910GNU Emacs is free software: you can redistribute it and/or modify
5b87ad55 2911it under the terms of the GNU General Public License as published by
ab73e885
GM
2912the Free Software Foundation, either version 3 of the License, or
2913(at your option) any later version.
fe6b4873 2914
5b87ad55
GM
2915GNU Emacs is distributed in the hope that it will be useful,
2916but WITHOUT ANY WARRANTY; without even the implied warranty of
2917MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2918GNU General Public License for more details.
2919
2920You should have received a copy of the GNU General Public License
ab73e885 2921along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
5b87ad55
GM
2922
2923\f
53854552
EZ
2924Local variables:
2925mode: outline
3256a475 2926paragraph-separate: "[ \f]*$"
53854552 2927end: