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
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.
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 Windows 2000 and later, it cannot
+find your HOME directory.
+
+This was reported to happen when you click on "Save for future
+sessions" button in a Customize buffer. You might see an error
+message like this one:
+
+ basic-save-buffer-2: c:/FOO/BAR/~dosuser/: no such directory
+
+(The telltale sign is the "~USER" part at the end of the directory
+Emacs complains about, where USER is your username or the literal
+string "dosuser", which is the default username set up by the DJGPP
+startup file DJGPP.ENV.)
+
+This happens when the functions `user-login-name' and
+`user-real-login-name' return different strings for your username as
+Emacs sees it. To correct this, make sure both USER and USERNAME
+environment variables are set to the same value. Windows 2000 and
+later sets USERNAME, so if you want to keep that, make sure USER is
+set to the same value. If you don't want to set USER globally, you
+can do it in the [emacs] section of your DJGPP.ENV file.
+
+*** 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
\f
Local variables:
mode: outline
-paragraph-separate: "[ \f]*$"
+paragraph-separate: "[ \f]*$"
end:
arch-tag: 49fc0d95-88cb-4715-b21c-f27fb5a4764a