This file describes various problems that have been encountered
in compiling, installing and running XEmacs. It has been updated for
-XEmacs 21.0.
+XEmacs 21.4.
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').
-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.
+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.
* 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 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.
+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.
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
+*** 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@xemacs.org if you figure this one out.
+xemacs-beta@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@xemacs.org>.
+<xemacs-beta@xemacs.org>.
*** Screen is updated wrong, but only on one kind of terminal.
** Linux
+*** 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. 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.
+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.
***** 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. This is bad[tm], on your own head be
-it. In the function unix_canonicalize_host_name() about ten lines
-down, change the statement
+behavior in src/process-unix.c. Add `--with-ipv6-cname=no" to your
+configure options and rebuild XEmacs.
- hints.ai_family = AF_UNSPEC;
+*** XEmacs disappears after several sound events in succession
-to
+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 = PF_INET;
+The solution is either to build XEmacs with -sound=native,noesd or to make sure
+that esd is in fact running.
-and rebuild XEmacs.
+*** You get crashes in a non-C locale with Linux GNU Libc 2.0.
-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.
+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.
+
** IRIX
*** On Irix, I don't see the toolbar icons and I'm getting lots of
entries in the warnings buffer.
** Windows
-*** Emacs exits with "X protocol error" when run with an X server for
-Windows.
+*** In general, the Windows code is less mature than the Unix code.
-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.
+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
+*** 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)
==============================================================================