Known Problems with GNU Emacs
Copyright (C) 1987, 1988, 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
See the end of the file for license conditions.
This file describes various problems that have been encountered
-in compiling, installing and running GNU Emacs. Try doing Ctl-C Ctl-t
-and browsing through the outline headers.
+in compiling, installing and running GNU Emacs. Try doing C-c C-t
+and browsing through the outline headers. (See C-h m for help on
+Outline mode.)
* Mule-UCS doesn't work in Emacs 23.
+/* $TOG: imInt.c /main/5 1998/05/30 21:11:16 kaleb $ */
/******************************************************************
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
+ Copyright 1992, 1993, 1994 by FUJITSU LIMITED
@@ -166,8 +166,8 @@
_XimMakeImName(lcd)
- XLCd lcd;
+ XLCd lcd;
{
- char* begin;
- char* end;
+ char* begin = NULL;
+ char* end = NULL;
- char* ret;
- int i = 0;
- char* ximmodifier = XIMMODIFIER;
+ char* ret;
+ int i = 0;
+ char* ximmodifier = XIMMODIFIER;
@@ -182,7 +182,11 @@
- }
- ret = Xmalloc(end - begin + 2);
- if (ret != NULL) {
- - (void)strncpy(ret, begin, end - begin + 1);
+ }
+ ret = Xmalloc(end - begin + 2);
+ if (ret != NULL) {
+ - (void)strncpy(ret, begin, end - begin + 1);
+ if (begin != NULL) {
- + (void)strncpy(ret, begin, end - begin + 1);
+ + (void)strncpy(ret, begin, end - begin + 1);
+ } else {
- + ret[0] = '\0';
+ + ret[0] = '\0';
+ }
- ret[end - begin + 1] = '\0';
- }
- return ret;
+ ret[end - begin + 1] = '\0';
+ }
+ return ret;
** Emacs crashes on startup after a glibc upgrade.
This happens because of bugs in Gtk+. Gtk+ 2.10 seems to be OK. See bug
http://bugzilla.gnome.org/show_bug.cgi?id=85715.
+** Emacs compiled with Gtk+ may loop forever if a display crashes.
+
+This is related to the bug above. A scenario for this is when emacs is run
+as a server, and an X frame is created. If the X server for the frame
+crashes or exits unexpectedly and an attempt is made to create a new
+frame on another X display, then a Gtk+ error happens in the emacs
+server that results in an endless loop. This is not fixed in any known
+Gtk+ version (2.14.4 being current).
+
** Emacs compiled with Gtk+ crashes on startup on Cygwin.
A typical error message is
`mail'. To do this, use the following commands (as root) after doing the
make install.
- chgrp mail movemail
- chmod 2755 movemail
+ chgrp mail movemail
+ chmod 2755 movemail
Installation normally copies movemail from the build directory to an
installation directory which is usually under /usr/local/lib. The
--- serversyscall.c Wed Jan 28 15:14:48 1987
***************
*** 163,169 ****
- /*
- * No return sent for close or fsync!
- */
+ /*
+ * No return sent for close or fsync!
+ */
! if (syscall == RSYS_close || syscall == RSYS_fsync)
- proc->p_returnval = deallocate_fd(proc, msg->m_args[0]);
- else
- {
+ proc->p_returnval = deallocate_fd(proc, msg->m_args[0]);
+ else
+ {
--- 166,172 ----
- /*
- * No return sent for close or fsync!
- */
+ /*
+ * No return sent for close or fsync!
+ */
! if (syscall == RSYS_close)
- proc->p_returnval = deallocate_fd(proc, msg->m_args[0]);
- else
- {
+ proc->p_returnval = deallocate_fd(proc, msg->m_args[0]);
+ else
+ {
** PSGML
* Runtime problems related to font handling
-** Under X11, some characters appear as hollow boxes.
+** Characters are displayed as empty boxes or with wrong font under X.
+
+*** This can occur when two different versions of FontConfig are used.
+For example, XFree86 4.3.0 has one version and Gnome usually comes
+with a newer version. Emacs compiled with Gtk+ will then use the
+newer version. In most cases the problem can be temporarily fixed by
+stopping the application that has the error (it can be Emacs or any
+other application), removing ~/.fonts.cache-1, and then start the
+application again. If removing ~/.fonts.cache-1 and restarting
+doesn't help, the application with problem must be recompiled with the
+same version of FontConfig as the rest of the system uses. For KDE,
+it is sufficient to recompile Qt.
+
+*** Some fonts have a missing glyph and no default character. This is
+known to occur for character number 160 (no-break space) in some
+fonts, such as Lucida but Emacs sets the display table for the unibyte
+and Latin-1 version of this character to display a space.
+
+*** Some of the fonts called for in your fontset may not exist on your
+X server.
Each X11 font covers just a fraction of the characters that Emacs
supports. To display the whole range of Emacs characters requires
-many different fonts, collected into a fontset.
-
-If some of the fonts called for in your fontset do not exist on your X
-server, then the characters that have no font appear as hollow boxes.
-You can remedy the problem by installing additional fonts.
+many different fonts, collected into a fontset. You can remedy the
+problem by installing additional fonts.
The intlfonts distribution includes a full spectrum of fonts that can
display all the characters Emacs supports. The etl-unicode collection
fonts that can display many Unicode characters; they can also be used
by ps-print and ps-mule to print Unicode characters.
-Another cause of this for specific characters is fonts which have a
-missing glyph and no default character. This is known to occur for
-character number 160 (no-break space) in some fonts, such as Lucida
-but Emacs sets the display table for the unibyte and Latin-1 version
-of this character to display a space.
-
** Under X11, some characters appear improperly aligned in their lines.
You may have bad X11 fonts; try installing the intlfonts distribution
-or the etl-unicode collection (see the previous entry).
+or the etl-unicode collection (see above).
+
+** Under X, an unexpected monospace font is used as the default font.
+
+When compiled with XFT, Emacs tries to use a default font named
+"monospace". This is a "virtual font", which the operating system
+(Fontconfig) redirects to a suitable font such as DejaVu Sans Mono.
+On some systems, there exists a font that is actually named Monospace,
+which takes over the virtual font. This is considered an operating
+system bug; see
+
+http://lists.gnu.org/archive/html/emacs-devel/2008-10/msg00696.html
-** Certain fonts make each line take one pixel more than it "should".
+If you encounter this problem, set the default font to a specific font
+in your .Xresources or initialization file. For instance, you can put
+the following in your .Xresources:
-This is because these fonts contain characters a little taller
-than the font's nominal height. Emacs needs to make sure that
-lines do not overlap.
+Emacs.font: DejaVu Sans Mono 12
+
+** Certain fonts make each line take one pixel more than it should.
+
+This is because these fonts contain characters a little taller than
+the font's nominal height. Emacs needs to make sure that lines do not
+overlap.
** Loading fonts is very slow.
away with installation of a new X server. The failing server was
XFree86 3.1.1. XFree86 3.1.2 works.
-** Characters are displayed as empty boxes or with wrong font under X.
-
-This can occur when two different versions of FontConfig are used.
-For example, XFree86 4.3.0 has one version and Gnome usually comes
-with a newer version. Emacs compiled with Gtk+ will then use
-the newer version. In most cases the problem can be temporarily
-fixed by stopping the application that has the error (it can be
-Emacs or any other application), removing ~/.fonts.cache-1,
-and then start the application again.
-If removing ~/.fonts.cache-1 and restarting doesn't help, the
-application with problem must be recompiled with the same version
-of FontConfig as the rest of the system uses. For KDE, it is
-sufficient to recompile Qt.
-
** Emacs pauses for several seconds when changing the default font.
This has been reported for fvwm 2.2.5 and the window manager of KDE
+ ;; register-char-codings may be very slow for these coding
+ ;; system definitions.
+ (let ((y (cadr x)))
-+ (mucs-define-coding-system
-+ (car x) (nth 1 y) (nth 2 y)
-+ (nth 3 y) (nth 4 y) (nth 5 y)))
++ (mucs-define-coding-system
++ (car x) (nth 1 y) (nth 2 y)
++ (nth 3 y) (nth 4 y) (nth 5 y)))
+ (mapcar
+ (lambda (y)
-+ (mucs-define-coding-system
-+ (nth 0 y) (nth 1 y) (nth 2 y)
-+ (nth 3 y) (nth 4 y) (nth 5 y) (nth 6 y))
-+ (coding-system-put (car y) 'alias-coding-systems (list (car x)))))
++ (mucs-define-coding-system
++ (nth 0 y) (nth 1 y) (nth 2 y)
++ (nth 3 y) (nth 4 y) (nth 5 y) (nth 6 y))
++ (coding-system-put (car y) 'alias-coding-systems (list (car x)))))
+ (cdr x)))
`((utf-8
(utf-8-unix
; (message "MCCLREGFIN:%S" result)
- `(progn
- (setq mucs-ccl-facility-alist
-- (quote ,mucs-ccl-facility-alist))
+- (quote ,mucs-ccl-facility-alist))
- ,@result)))
+ ;; The only way the function is used in this package is included
+ ;; in `mucs-package-definition-end-hook' value, where it must
+ ;; on byte compiler to remove extra `progn's in `(progn ...)'
+ ;; form.
+ `((setq mucs-ccl-facility-alist
-+ (quote ,mucs-ccl-facility-alist))
++ (quote ,mucs-ccl-facility-alist))
+ ,@result)))
;;; Add hook for embedding translation informations to a package.
One way to avoid this problem is to eliminate the type-1 fonts from
your font path, like this:
- xset -fp /usr/X11R6/lib/X11/fonts/Type1/
+ xset -fp /usr/X11R6/lib/X11/fonts/Type1/
*** Pull-down menus appear in the wrong place, in the toolkit version of Emacs.
in your site-init.el file.
+*** Prevent double pastes in X
+
+The problem: a region, such as a command, is pasted twice when you copy
+it with your mouse from GNU Emacs to an xterm or an RXVT shell in X.
+The solution: try the following in your X configuration file,
+/etc/X11/xorg.conf This should enable both PS/2 and USB mice for
+single copies. You do not need any other drivers or options.
+
+ Section "InputDevice"
+ Identifier "Generic Mouse"
+ Driver "mousedev"
+ Option "Device" "/dev/input/mice"
+ EndSection
+
* Runtime problems on character terminals
** Emacs spontaneously displays "I-search: " at the bottom of the screen.
You can fix this by editing the file:
- /usr/openwin/lib/locale/iso8859-15/Compose
+ /usr/openwin/lib/locale/iso8859-15/Compose
Near the bottom there is a line that reads:
- Ctrl<t> <quotedbl> <Y> : "\276" threequarters
+ Ctrl<t> <quotedbl> <Y> : "\276" threequarters
that should read:
- Ctrl<T> <quotedbl> <Y> : "\276" threequarters
+ Ctrl<T> <quotedbl> <Y> : "\276" threequarters
Note the lower case <t>. Changing this line should make C-t work.
* Runtime problems specific to MS-Windows
+** PATH can contain unexpanded environment variables
+
+Old releases of TCC (version 9) and 4NT (up to version 8) do not correctly
+expand App Paths entries of type REG_EXPAND_SZ. When Emacs is run from TCC
+and such an entry exists for emacs.exe, exec-path will contain the
+unexpanded entry. This has been fixed in TCC 10. For more information,
+see bug#2062.
+
+** Setting w32-pass-rwindow-to-system and w32-pass-lwindow-to-system to nil
+does not prevent the Start menu from popping up when the left or right
+``Windows'' key is pressed.
+
+This was reported to happen when XKeymacs is installed. At least with
+XKeymacs Version 3.47, deactivating XKeymacs when Emacs is active is
+not enough to avoid its messing with the keyboard input. Exiting
+XKeymacs completely is reported to solve the problem.
+
** Windows 95 and networking.
To support server sockets, Emacs 22.1 loads ws2_32.dll. If this file
Supposedly the newer 32-bit version of this server doesn't have the
problem.
-** Known problems with the MS-Windows port of Emacs 22.1
+** Emacs crashes when opening a file with a UNC path and rails-mode is loaded.
+
+Loading rails-mode seems to interfere with UNC path handling. This has been
+reported as a bug against both Emacs and rails-mode, so look for an updated
+rails-mode that avoids this crash, or avoid using UNC paths if using
+rails-mode.
+
+** Known problems with the MS-Windows port of Emacs 22.3
M-x term does not work on MS-Windows. TTY emulation on Windows is
undocumented, and programs such as stty which are used on posix platforms
conflict between the versions of malloc in the DLL and in Emacs, which
is not resolvable due to the way Windows does dynamic linking.
-We recommend the use of the MingW port of GCC for compiling Emacs, as
+We recommend the use of the MinGW port of GCC for compiling Emacs, as
not only does it not suffer these problems, but it is also Free
software like Emacs.
+*** Building the MS-Windows port with Visual Studio fails compiling emacs.rc
+
+If the build fails with the following message then the problem
+described here most likely applies:
+
+../nt/emacs.rc(1) : error RC2176 : old DIB in icons\emacs.ico; pass it
+through SDKPAINT
+
+The Emacs icon contains a high resolution PNG icon for Vista, which is
+not recognized by older versions of the resource compiler. There are
+several workarounds for this problem:
+ 1. Use Free MinGW tools to compile, which do not have this problem.
+ 2. Install the latest Windows SDK.
+ 3. Replace emacs.ico with an older or edited icon.
+
** Linking
*** Building Emacs with a system compiler fails to link because of an
A solution is to link with GCC, like this:
- make CC=gcc
+ make CC=gcc
Since the .o object files already exist, this will not recompile Emacs
with GCC, but just restart by trying again to link temacs.
*** AIX 4.1.2: Linker error messages such as
ld: 0711-212 SEVERE ERROR: Symbol .__quous, found in the global symbol table
- of archive /usr/lib/libIM.a, was not defined in archive member shr.o.
+ of archive /usr/lib/libIM.a, was not defined in archive member shr.o.
This is a problem in libIM.a. You can work around it by executing
these shell commands in the src subdirectory of the directory where
The fix is to install a newer version of ncurses, such as version 4.2.
+** Bootstrapping
+
+Bootstrapping (compiling the .el files) is normally only necessary
+with CVS builds, since the .elc files are pre-compiled in releases.
+
+*** "No rule to make target" with Ubuntu 8.04 make 3.81-3build1
+
+Compiling the lisp files fails at random places, complaining:
+"No rule to make target `/path/to/some/lisp.elc'".
+The causes of this problem are not understood. Using GNU make 3.81 compiled
+from source, rather than the Ubuntu version, worked. See Bug#327,821.
+
** Dumping
*** Linux: Segfault during `make bootstrap' under certain recent versions of the Linux kernel.
*** Fatal signal in the command temacs -l loadup inc dump.
This command is the final stage of building Emacs. It is run by the
-Makefile in the src subdirectory, or by build.com on VMS.
+Makefile in the src subdirectory.
It has been known to get fatal errors due to insufficient swapping
space available on the machine.
distribution:
#if 0 /* This breaks things on PPC GNU/Linux except for Yellowdog,
- even with identical GCC, as, ld. Let's take it out until we
- know what's really going on here. */
+ even with identical GCC, as, ld. Let's take it out until we
+ know what's really going on here. */
/* GCC 2.95 and newer on GNU/Linux PPC changed the load address to
0x10000000. */
#if defined __linux__
103093-03: [README] SunOS 5.5: kernel patch (2140557 bytes)
102832-01: [README] OpenWindows 3.5: Xview Jumbo Patch (4181613 bytes)
- 103242-04: [README] SunOS 5.5: linker patch (595363 bytes)
+ 103242-04: [README] SunOS 5.5: linker patch (595363 bytes)
(One user reports that the bug was fixed by those patches together
with patches 102980-04, 103279-01, 103300-02, and 103468-01.)
that affect other programs besides `scoterm'. In particular, these
resources affect Emacs also:
- *Font: -*-helvetica-medium-r-*--12-*-p-*
- *Background: scoBackground
- *Foreground: scoForeground
+ *Font: -*-helvetica-medium-r-*--12-*-p-*
+ *Background: scoBackground
+ *Foreground: scoForeground
The best solution is to create an application-specific resource file for
Emacs, /usr/lib/X11/sco/startup/Emacs, with the following contents:
- Emacs*Font: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
- Emacs*Background: white
- Emacs*Foreground: black
+ Emacs*Font: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
+ Emacs*Background: white
+ Emacs*Foreground: black
(These settings mimic the Emacs defaults, but you can change them to
suit your needs.) This resource file is only read when the X server
--- PERL/LIB/PERLDB.PL Mon Jul 01 15:28:16 1996
***************
*** 68,74 ****
- $rcfile=".perldb";
+ $rcfile=".perldb";
}
else {
! $console = "con";
- $rcfile="perldb.ini";
+ $rcfile="perldb.ini";
}
--- 68,74 ----
- $rcfile=".perldb";
+ $rcfile=".perldb";
}
else {
! $console = "";
- $rcfile="perldb.ini";
+ $rcfile="perldb.ini";
}
--- perl/5.001/lib/perl5db.pl Mon Jul 01 17:00:08 1996
***************
*** 22,28 ****
- $rcfile=".perldb";
+ $rcfile=".perldb";
}
elsif (-e "con") {
! $console = "con";
- $rcfile="perldb.ini";
+ $rcfile="perldb.ini";
}
else {
--- 22,28 ----
- $rcfile=".perldb";
+ $rcfile=".perldb";
}
elsif (-e "con") {
! $console = "";
- $rcfile="perldb.ini";
+ $rcfile="perldb.ini";
}
else {
** MS-DOS
-*** When compiling with DJGPP on MS-Windows NT, "config msdos" fails.
+*** When compiling with DJGPP on MS-Windows NT or later, "config msdos" fails.
If the error message is "VDM has been already loaded", this is because
Windows has a program called `redir.exe' that is incompatible with a
config.bat. To resolve this, move the DJGPP's `bin' subdirectory to
the front of your PATH environment variable.
+*** When Emacs compiled with DJGPP runs on Vista, it runs out of memory.
+
+If Emacs running on Vista displays "!MEM FULL!" in the mode line, you
+are hitting the memory allocation bugs in the Vista DPMI server. See
+msdos/INSTALL for how to work around these bugs (search for "Vista").
+
*** When compiling with DJGPP on MS-Windows 95, Make fails for some targets
like make-docfile.
This can happen if long file name support (the setting of environment
variable LFN) when Emacs distribution was unpacked and during
-compilation are not the same. See the MSDOG section of INSTALL for
-the explanation of how to avoid this problem.
+compilation are not the same. See msdos/INSTALL for the explanation
+of how to avoid this problem.
*** Emacs compiled with DJGPP complains at startup:
characters and a numeric tail that Windows 95 normally attaches to it.
You should unzip the files again with a utility that supports long
filenames (such as djtar from DJGPP or InfoZip's UnZip program
-compiled with DJGPP v2). The MSDOG section of the file INSTALL
-explains this issue in more detail.
+compiled with DJGPP v2). The file msdos/INSTALL explains this issue
+in more detail.
Another possible reason for such failures is that Emacs compiled for
MSDOS is used on Windows NT, where long file names are not supported
This seems to be due to a GCC bug; it is fixed in GCC 2.8.1.
-** VMS: Compilation errors on VMS.
-
-You will get warnings when compiling on VMS because there are
-variable names longer than 32 (or whatever it is) characters.
-This is not an error. Ignore it.
-
-VAX C does not support #if defined(foo). Uses of this construct
-were removed, but some may have crept back in. They must be rewritten.
-
-There is a bug in the C compiler which fails to sign extend characters
-in conditional expressions. The bug is:
- char c = -1, d = 1;
- int i;
-
- i = d ? c : d;
-The result is i == 255; the fix is to typecast the char in the
-conditional expression as an (int). Known occurrences of such
-constructs in Emacs have been fixed.
-
** Vax C compiler bugs affecting Emacs.
You may get one of these problems compiling Emacs:
\f
Local variables:
mode: outline
-paragraph-separate: "[ \f]*$"
+paragraph-separate: "[ \f]*$"
end:
arch-tag: 49fc0d95-88cb-4715-b21c-f27fb5a4764a