This file describes various problems that have been encountered
in compiling, installing and running XEmacs. It has been updated for
-XEmacs 21.4.
+XEmacs 21.0.
This file is rather large, but we have tried to sort the entries by
their respective relevance for XEmacs, but may have not succeeded
`C-c C-b' to move to previous equal level. `C-h m' will give more
info about the Outline mode.
-Also, try finding the things you need using one of the search commands
+Also, Try finding the things you need using one of the search commands
XEmacs provides (e.g. `C-s').
-General advice:
-
- WATCH OUT for your init file! (~/.xemacs/init.el or ~/.emacs) If
- you observe strange problems, invoke XEmacs with the `-vanilla'
- option and see if you can repeat the problem.
-
- Note that most of the problems described here manifest at RUN
- time, even those described as BUILD problems. It is quite unusual
- for a released XEmacs to fail to build. So a "build problem"
- requires you to tweak the build environment, then rebuild XEmacs.
- A "runtime problem" is one that can be fixed by proper
- configuration of the existing build. Compatibility problems and
- Mule issues are generally runtime problems, but are treated
- separately for convenience.
+A general advice:
+ WATCH OUT for .emacs file! ~/.emacs is your Emacs init file. If
+ you observe strange problems, invoke XEmacs with the `-q' option
+ and see if you can repeat the problem.
* Problems with building XEmacs
===============================
** General
- Much general information is in INSTALL. If it's covered in
- INSTALL, we don't repeat it here.
-
-*** How does I configure to get the buffer tabs/progress bars?
-
-These features depend on support for "native widgets". Use the
---with-widgets option to configure. Configuration of widgets is
-automatic for "modern" toolkits (MS Windows, GTK, and Motif), but if
-you are using Xt and the Athena widgets, you will probably want to
-specify a "3d" widget set. See configure --usage, and don't forget to
-install the corresponding development libraries.
-
-*** I know I have libfoo installed, but configure doesn't find it.
-
-Typical of Linux systems with package managers. To link with a shared
-library, you only need the shared library. To compile objects that
-link with it, you need the headers---and distros don't provide them with
-the libraries. You need the additional "development" package, too.
-
*** Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures
without also using `-fno-schedule-insns'.
** SunOS/Solaris
-*** Crashes when using Motif libraries, especially with multiple frames.
-
-Crashes that produce C-backtraces like this:
-
-#0 0xfec9a118 in _libc_kill () from /usr/lib/libc.so.1
-#1 0x77f48 in fatal_error_signal (sig=11)
- at /codes/rpluim/xemacs-21.4/src/emacs.c:539
-#2 <signal handler called>
-#3 0xfee929f4 in XFindContext () from /usr/openwin/lib/libX11.so.4
-#4 0xfee92930 in XFindContext () from /usr/openwin/lib/libX11.so.4
-#5 0xff297e54 in DisplayDestroy () from /usr/dt/lib/libXm.so.4
-#6 0xfefbece0 in XtCallCallbackList () from /usr/openwin/lib/libXt.so.4
-#7 0xfefc486c in XtPhase2Destroy () from /usr/openwin/lib/libXt.so.4
-#8 0xfefc45d0 in _XtDoPhase2Destroy () from /usr/openwin/lib/libXt.so.4
-#9 0xfefc43b4 in XtDestroyWidget () from /usr/openwin/lib/libXt.so.4
-#10 0x15cf9c in x_delete_device (d=0x523f00)
-
-are caused by buggy Motif libraries. Installing the following patches
-has been reported to solve the problem on Solaris 2.7:
-
-107081-40 107656-07
-
-For information (although they have not been confirmed to work), the
-equivalent patches for Solaris 2.8 are:
-
-108940-33 108652-25
-
*** Dumping error when using GNU binutils / GNU ld on a Sun.
Errors similar to the following:
- uninstalling GNU ld.
-- configuring XEmacs with these environment settings (suggested by
- Goran Koruga <goran.koruga@hermes.si>):
- LD=/usr/ccs/bin/ld AS=/usr/ccs/bin/as configure
-
The Solaris2 FAQ claims:
When you install gcc, don't make the mistake of installing
and later.
** Cygwin
-
*** In general use etc/check_cygwin_setup.sh to trap environment problems.
The script etc/check_cygwin_setup.sh will attempt to detect whether
-you have a suitable environment for building. This script may not work
+you have a suitable environment for building. This script may not work
correctly if you are using ash instead of bash (see below).
-*** Syntax errors running configure scripts, make failing with exit code 127
- in inexplicable situations, etc.
-
-This may be because you are using the default cygwin shell. The
-default cygwin shell (/bin/sh.exe) is ash which appears to work in
-most circumstances but has some weird failure modes. You need to
-replace the symlink with bash.exe.
-
-*** Lots of compile errors, esp. on lines containing macro definitions
- terminated by backslashes.
-
-Your partition holding the source files is mounted binary. It needs
-to be mounted text. (This will not screw up any binary files because
-the Cygwin utilities specify explicitly whether they want binary or
-text mode when working with source vs. binary files, which overrides
-the mount type.) To fix this, you just need to run the appropriate
-mount command once -- afterwards, the settings are remembered in the
-registry.
-
-*** Errors from make like /c:not found.
-
-make sure you set the environment variable MAKE_MODE to UNIX in your
-.bashrc, Control Panel (Windows 2000/NT), or AUTOEXEC.BAT (Windows
-98/95).
-
*** X11 not detected.
This is usually because xmkmf is not in your path or because you are
*** Subprocesses do not work.
-You do not have "tty" in your CYGWIN environment variable. This must
-be set in your autoexec.bat (win95) or the system properties (winnt)
-as it must be read before the cygwin DLL initializes.
+You do not have "tty" in your CYGWIN32 (for b19) or CYGWIN (for b20)
+environment variable. This must be set in your autoexec.bat (win95) or
+the system properties (winnt) as it must be read before the cygwin dll
+initializes.
*** ^G does not work on hung subprocesses.
by defining BROKEN_SIGIO in src/s/cygwin32.h, however this currently
leads to instability in XEmacs.
+*** The XEmacs executable crashes at startup.
+
+This can be caused by many things.
+
+If you are running with X11 you need to have cygwin b19 or cygwin
+b20.1 or greater, cygwin b20 will not work.
+
+If you are running with cygwin b19 make sure you are using egcs 1.0.2
+rather than vanilla gcc. XEmacs builds by default with -O3 which does
+not work with the gcc that ships with b19. Alternatively use -O2.
+
*** The info files will not build.
makeinfo that ships with cygwin (all versions) is a noop. You need to
*** I have no graphics.
-You need to obtain the various graphics libraries. Pre-built versions
+You need to obtain the various graphics libraries. Pre-built versions
of these and the X libraries are located on the XEmacs website in
-ftp://ftp.xemacs.org/pub/aux/cygwin/.
+ftp://ftp.xemacs.org/pub/aux/cygwin*.
*** There are no images in the toolbar buttons.
* Problems with running XEmacs
==============================
** General
-
-*** XEmacs crashes mysteriously.
-
-Check whether XEmacs was configured --use-union-type. Many compilers
-are known to treat union types incompatibly with proper functioning of
-the Lisp_Object type. (Whether this is a compiler bug or nonstandard-
-conforming code in XEmacs is a moot point.) Especially with
---with-mule, --pdump, and/or non-null --error-checking, this is known
-to produce an unreliable build with many versions of MS VC++ and GCC,
-and similar problems are likely to occur with other compilers.
-
-Symptoms are similar to garbage collection and other "wild pointer"
-bugs, ie, stack-smashing and other hard-to-debug crashes in unrelated
-code. Try reconfiguring and building without --use-union-type.
-
---use-union-type _is_ useful to get improved _static_ type checking of
-Lisp objects. It is theoretically possible that it might help with
-aliasing bugs under optimization and improve runtime stability, but in
-practice exactly the opposite seems to be true. If you don't work on
-XEmacs C code directly, then avoid --use-union-type entirely for now.
-
-*** XEmacs crashes mysteriously in regexp-intensive applications (eg, Gnus)
-
-The regexp implementation used in XEmacs uses alloca by default for
-efficiency. alloca provides no reliable way to check for out of
-memory (in this case, stack). Normally not a problem, except for
-systems with very small default stack allocations, and applications
-that use multi-line regular expressions (ie, explicitly including ?\n)
-in moderately large files (> 100kB or so).
-
-You may get relief by increasing the amount of stack space allocated
-to your XEmacs process (a system-dependent operation, ask your
-administrator or local experts for help), or by recompiling the regexp
-module regex.c with REGEX_MALLOC defined, relinking, and redumping.
-
-*** At startup I get a warning on stderr about missing charsets:
-
- Warning: Missing charsets in String to FontSet conversion
-
-You need to specify appropriate charsets for your locale (usually the
-value of the LANG environment variable) in .Xresources. See
-etc/Emacs.ad for the relevant resources (mostly menubar fonts and
-fontsets). Do not edit this file, it's purely informative.
-
-If you have no satisfactory fonts for iso-8859-1, XEmacs will crash.
-
-It looks like XFree86 4.x (the usual server on Linux and *BSD) has
-some braindamage where .UTF-8 locales will always generate this
-message, because the XFree86 (font)server doesn't know that UTF-8 will
-use the ISO10646-1 font registry (or a Cmap or something).
-
-If you are not using a .UTF-8 locale and see this warning for a
-character set not listed in the default in Emacs.ad, please let
-xemacs-beta@xemacs.org know about it, so we can add fonts to the
-appropriate fontsets and stifle this warning. (Unfortunately it's
-buried in Xlib, so we can't easily get rid of it otherwise.)
-
-*** Whenever I try to retrieve a remote file, I have problems.
-
-A typical error: FTP Error: USER request failed; 500 AUTH not understood.
-Thanks to giacomo boffi <giacomo.boffi@polimi.it> on comp.emacs.xemacs:
-
- tell your ftp client to not attempt AUTH authentication (or do not
- use FTP servers that don't understand AUTH)
-
-and notes that you need to add an element (often "-u") to
-`efs-ftp-program-args'. Use M-x customize-variable, and verify the
-needed flag with `man ftp' or other local documentation.
-
-*** gnuserv is running, some clients can connect, but others cannot.
-
-The code in gnuslib.c respects the value of TMPDIR. If the server and
-the client have different values in their environment, you lose.
-One program known to set TMPDIR and manifest this problem is exmh.
-You can defeat the use of TMPDIR by unsetting USE_TMPDIR at the top of
-gnuserv.h at build time.
-
*** C-z just refreshes the screen instead of suspending Emacs.
You are probably using a shell that doesn't support job control, even
Try evaluating the form (setq lock-directory nil) and see if that helps.
There is a problem with file-locking on some systems (possibly related
to NFS) that I don't understand. Please send mail to the address
-xemacs-beta@xemacs.org if you figure this one out.
+xemacs@xemacs.org if you figure this one out.
*** When emacs starts up, I get lots of warnings about unknown keysyms.
slow.
If you are interested in fixing this, please let us know at
-<xemacs-beta@xemacs.org>.
+<xemacs@xemacs.org>.
*** Screen is updated wrong, but only on one kind of terminal.
Emacs*EmacsFrame.geometry: 81x56--9--1
-** MacOS/X, Darwin
-*** XEmacs crashes on MacOS within font-lock, or when dealing
-with large compilation buffers, or in other regex applications.
-
-The default stack size under MacOS/X is rather small (512k as opposed
-to Solaris 8M), hosing the regexp code, which uses alloca()
-extensively, overflowing the stack when complex regexps are used.
-Workarounds:
-
-1) Increase your stack size, using `ulimit -s 8192' or a (t)csh
- equivalent;
-
-2) Recompile regex.c with REGEX_MALLOC defined.
-
** AIX
*** Your Delete key sends a Backspace to the terminal, using an AIXterm.
** Linux
-*** XEmacs crashes on exit.
-
-This is known to happen with Lesstif version 0.93.36. It is
-apparently due to breakage in Lesstif. There is a patch for Lesstif.
-
-Frank McIngvale <frankm@hiwaay.net> says:
-
- Ok, 0.93.34 works, and I tracked down the crash to a section
- marked "experimental" in 0.93.36. Patch attached, "works for me".
-
-diff -u -r lesstif-0.93.36/lib/Xm/ImageCache.c lesstif-0.93.36-mod/lib/Xm/ImageCache.c
---- lesstif-0.93.36/lib/Xm/ImageCache.c 2002-08-05 14:53:24.000000000 -0500
-+++ lesstif-0.93.36-mod/lib/Xm/ImageCache.c 2002-11-11 11:13:12.000000000 -0600
-@@ -1166,5 +1166,4 @@
- DEBUGOUT(_LtDebug0(__FILE__, NULL, "_LtImageCacheScreenDestroy (XmGetPixmapByDepth) %p\n",
- s));
-
-- (void) _LTHashTableForEachItem(PixmapCache, YowIter, (XtPointer)s);
- }
-
-
-*** XEmacs crashes on startup, in make-frame.
-
-Typically the Lisp backtrace includes
-
- make-frame(nil #<x-device on ":0.0" 0x2558>)
-
-somewhere near the top. One problem is due to an improvement in GNU
-ld that sorts the ELF reloc sections in the executable, giving
-dramatic speedups in startup for large executables. It also confuses
-the traditional unexec code in XEmacs, leading to the core dump. The
-solution is to use either the `--ldflags="-z nocombreloc" or the
-"--pdump" option to configure. "--pdump" is recommended.
-
-Recent 21.4 and 21.5 versions of XEmacs autodetect this feature of ld
-in configure. Unfortunately, Red Hat and SuSE (at least) distributed
-prerelease versions of ld (numbered around 2.11.90.x.y, nicknamed
-"Hannibal Lecter" at XEmacs.ORG) where autodetection fails but the
-feature is enabled by default. The recommended procedure is to
-upgrade to binutils >= 2.12 and rerun configure. Otherwise you must
-apply the flags by hand.
-
-Andrew Jaffe reported a problem on Red Hat 7.3 with identical
-symptoms, except that ld was already being invoked with -z
-nocombreloc. Switching dialogs and widgets from Motif to Athena
-eliminated the problem. Both LessTif and OpenMotif were installed,
-and a bad interaction is suspected. This problem has not yet been
-fully analyzed.
-
-*** Debian
-**** XEmacs warns "Symbol `toggleClassRec' has different size in shared
- object, consider re-linking / Symbol `labelClassRec' has different
- size in shared object, consider re-linking / Warning: Representation
- size 4 must match superclass's to override value"
-
-Sometimes this results in segfaults when using the tab control widget
-or a progress bar widget.
-
-Some versions of Debian install 3D versions of the Athena widget
-library as /usr/X11R6/lib/libXaw.so. We have not yet solved the
-problem of identifying the actual library in use in ./configure, so it
-is possible for XEmacs to be compiled with reference to headers for
-"flat" Xaw but find a "3D" Xaw when loading.
-
-The straightforward solution is to rebuild XEmacs with additional
-configure options: --with-widgets=athena --with-athena=3d.
-
-There are several 3D Athena widget sets available; to see which ones
-are supported by XEmacs, use ./configure --usage.
-
*** Mandrake
The Mandrake Linux distribution is attempting to comprehensively
The color-gcc wrapper (see below) is in common use on the Mandrake
platform.
-*** XEmacs configured with ESD crashes with a segmentation violation
-
-This often occurs when a progress bar pops up.
-
-The problem is that the ESD sound daemon manipulates interrupts in a
-way that disagrees with XEmacs. The currently available workaround is
-not very satisfactory: remove ESD support. Rebuild after
-reconfiguring with the option --with-sound=none[,native][,nas]
-
-The funny syntax (requiring the initial "none") is for backward
-compatibility, and may change. Native sound and NAS do not cause the
-problem, so they may be added to the option to get some sound support.
-
*** I want XEmacs to use the Alt key, not the XXX key, for Meta commands
For historical reasons, XEmacs looks for a Meta key, then an Alt key.
This is written for the mainline GNU Emacs but the author has made
efforts to adapt it to XEmacs. YMMV.
+*** You get crashes in a non-C locale with Linux GNU Libc 2.0.
+
+Internationalization was not the top priority for GNU Libc 2.0.
+As of this writing (1998-12-28) you may get crashes while running
+XEmacs in a non-C locale. For example, `LC_ALL=en_US xemacs' crashes
+while `LC_ALL=C xemacs' runs fine. This happens for example with GNU
+libc 2.0.7. Installing libintl.a and libintl.h built from gettext
+0.10.35 and re-building XEmacs solves the crashes. Presumably soon
+everyone will upgrade to GNU Libc 2.1 and this problem will go away.
+
+*** `C-z', or `M-x suspend-emacs' hangs instead of suspending.
+
+If you build with `gpm' support on Linux, you cannot suspend XEmacs
+because gpm installs a buggy SIGTSTP handler. Either compile with
+`--with-gpm=no', or don't suspend XEmacs on the Linux console until
+this bug is fixed.
+
+*** With certain fonts, when the cursor appears on a character, the
+character doesn't appear--you get a solid box instead.
+
+One user on a Linux system reported that this problem went away with
+installation of a new X server. The failing server was XFree86 3.1.1.
+XFree86 3.1.2 works.
+
*** Slow startup on Linux.
People using systems based on the Linux kernel sometimes report that
A newer problem is due to XEmacs changing to use the modern
getaddrinfo() interface from the older gethostbyname() interface. The
solution above is insufficient, because getaddrinfo() by default tries
-to get IPv6 information for localhost (including the local X server).
-This always involves a dns lookup to get the CNAME, and the strategies
-above don't work. It then falls back to IPv4 behavior.
+to get IPv6 information for localhost. This always involves a dns
+lookup to get the CNAME, and the strategies above don't work. It then
+falls back to IPv4 behavior. This is good[tm]; trust us.
***** Robust network case
is appropriate) works in most cases.
If you cannot or do not want to do that, you can hard code IPv4
-behavior in src/process-unix.c. Add `--with-ipv6-cname=no" to your
-configure options and rebuild XEmacs.
-
-*** XEmacs disappears after several sound events in succession
+behavior in src/process-unix.c. This is bad[tm], on your own head be
+it. In the function unix_canonicalize_host_name() about ten lines
+down, change the statement
-If esd is not running (e.g. you unchecked the run esd checkbox in the
-GNOME Configuration tool), every sound event will cause the esound
-client library to signal SIGUSR1. It is not that difficult (hold down
-PgUp or PgDn, for example) to cause XEmacs to generate additional
-SIGUSR1 signals before the first handler has a chance to reset, so the
-second SIGUSR1 causes the default behavior of ending the process.
+ hints.ai_family = AF_UNSPEC;
-The solution is either to build XEmacs with -sound=native,noesd or to make sure
-that esd is in fact running.
-
-*** You get crashes in a non-C locale with Linux GNU Libc 2.0.
+to
-Internationalization was not the top priority for GNU Libc 2.0.
-As of this writing (1998-12-28) you may get crashes while running
-XEmacs in a non-C locale. For example, `LC_ALL=en_US xemacs' crashes
-while `LC_ALL=C xemacs' runs fine. This happens for example with GNU
-libc 2.0.7. Installing libintl.a and libintl.h built from gettext
-0.10.35 and re-building XEmacs solves the crashes. Presumably soon
-everyone will upgrade to GNU Libc 2.1 and this problem will go away.
+ hints.ai_family = PF_INET;
-*** `C-z', or `M-x suspend-emacs' hangs instead of suspending.
+and rebuild XEmacs.
-If you build with `gpm' support on Linux, you cannot suspend XEmacs
-because gpm installs a buggy SIGTSTP handler. Either compile with
-`--with-gpm=no', or don't suspend XEmacs on the Linux console until
-this bug is fixed.
+getaddrinfo() is also called in src/sysdep.c:init_system_name() and in
+src/process-unix.c:unix_open_network_stream(). It should not be
+useful to make this change in either of those places.
-*** With certain fonts, when the cursor appears on a character, the
-character doesn't appear--you get a solid box instead.
-One user on a Linux system reported that this problem went away with
-installation of a new X server. The failing server was XFree86 3.1.1.
-XFree86 3.1.2 works.
-
** IRIX
*** On Irix, I don't see the toolbar icons and I'm getting lots of
entries in the warnings buffer.
** Digital UNIX/OSF/VMS/Ultrix
*** XEmacs crashes on Digital Unix within font-lock, or when dealing
-with large compilation buffers, or in other regex applications.
+with large compilation buffers.
The default stack size under Digital Unix is rather small (2M as
opposed to Solaris 8M), hosing the regexp code, which uses alloca()
** Windows
-*** In general, the Windows code is less mature than the Unix code.
-
-The Windows code base is still changing quickly. If you are
-experiencing problems, try the latest beta version to see if the
-problem still exists. Also ask on xemacs-nt@xemacs.org.
-
-
-** Cygwin
-*** XEmacs fails to start because cygXpm-noX4.dll was not found.
+*** Emacs exits with "X protocol error" when run with an X server for
+Windows.
-Andy Piper <andy@xemacs.org> sez:
+A certain X server for Windows had a bug which caused this.
+Supposedly the newer 32-bit version of this server doesn't have the
+problem.
- cygXpm-noX4 is part of the cygwin distribution under libraries or
- graphics, but is not installed by default. You need to run the
- cygwin setup again and select this package.
-
-*** Subprocesses do not work.
-
-You do not have "tty" in your CYGWIN environment variable. This must
-be set in your autoexec.bat (win95) or the system properties (winnt)
-as it must be read before the cygwin DLL initializes.
-
-*** ^G does not work on hung subprocesses.
-This is a known problem. It can be remedied by defining BROKEN_SIGIO
-in src/s/cygwin.h, however this currently leads to instability in XEmacs.
-(#### is this still true?)
-
-*** Errors from make like `/c:not found' when running `M-x compile'.
-
-Make sure you set the environment variable MAKE_MODE to UNIX in your
-init file (.xemacs/init.el), Control Panel (Windows 2000/NT), or
-AUTOEXEC.BAT (Windows 98/95).
-
-*** There are no images in the toolbar buttons.
-
-You need version 4.71 of commctrl.dll which does not ship with windows
-95. You can get this by installing IE 4.0 or downloading it from the
-microsoft website.
-
* Compatibility problems (with Emacs 18, GNU Emacs, or previous XEmacs/lemacs)
==============================================================================