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
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.
* Problems with building XEmacs
** 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:
+
+ Dumping under the name xemacs unexec():
+ dldump(/space/rpluim/xemacs-obj/src/xemacs): ld.so.1: ./temacs:
+ fatal: /space/rpluim/xemacs-obj/src/xemacs: unknown dynamic entry:
+ 1879048176
+
+are caused by using GNU ld. There are several workarounds available:
+
+In XEmacs 21.2 or later, configure using the new portable dumper
+(--pdump).
+
+Alternatively, you can link using the Sun version of ld, which is
+normally held in /usr/ccs/bin. This can be done by one of:
+
+- building gcc with these configure flags:
+ configure --with-ld=/usr/ccs/bin/ld --with-as=/usr/ccs/bin/as
+
+- adding -B/usr/ccs/bin/ to CFLAGS used to configure XEmacs
+ (Note: The trailing '/' there is significant.)
+
+- 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
+ GNU binutils or GNU libc, they are not as capable as their
+ counterparts you get with Solaris 2.x.
+
*** Link failure when using acc on a Sun.
To use acc, you need additional options just before the libraries, such as
There have been reports of Sun sed truncating very lines in the
Makefile during configuration. The workaround is to use GNU sed or,
-even better, think of a better way to generate Makefile, and send us a
+even better, think of a better way to generate Makefile, and send us a
patch. :-)
*** On Solaris 2 I get undefined symbols from libcurses.a.
bash, as a workaround.
*** On SunOS, you get linker errors
- ld: Undefined symbol
+ ld: Undefined symbol
_get_wmShellWidgetClass
_get_applicationShellWidgetClass
*** On a Sun running SunOS 4.1.1, you get this error message from GNU ld:
- /lib/libc.a(_Q_sub.o): Undefined symbol __Q_get_rp_rd referenced from text segment
+ /lib/libc.a(_Q_sub.o): Undefined symbol __Q_get_rp_rd referenced from text segment
The problem is in the Sun shared C library, not in GNU ld.
*** SunOS 4.1.2: undefined symbol _get_wmShellWidgetClass
Apparently the version of libXmu.so.a that Sun ships is hosed: it's missing
- some stuff that is in libXmu.a (the static version). Sun has a patch for
+ some stuff that is in libXmu.a (the static version). Sun has a patch for
this, but a workaround is to use the static version of libXmu, by changing
the link command from "-lXmu" to "-Bstatic -lXmu -Bdynamic". If you have
OpenWindows 3.0, ask Sun for these patches:
an earlier version. The solution is to upgrade your old library.
** IRIX
+
+*** On Irix 6.5, the MIPSpro compiler gets an internal compiler error
+
+The MIPSpro Compiler (at least version 7.2.1) can't seem to handle the
+union type properly, and fails to compile src/glyphs.c. To avoid this
+problem, always build ---use-union-type=no (but that's the default, so
+you should only see this problem if you're an XEmacs maintainer).
+
*** Linking with -rpath on IRIX.
Darrell Kindred <dkindred@cmu.edu> writes:
1. The ld in IRIX 5.3 ignores all but the last -rpath
spec, so the patched configure spits out a warning
if --x-libraries or --site-runtime-libraries are
- specified under irix 5.x, and it only adds -rpath
+ specified under irix 5.x, and it only adds -rpath
entries for the --site-runtime-libraries. This bug was
fixed sometime between 5.3 and 6.2.
This might be a sed problem. For your own safety make sure to use
GNU sed while dumping XEmacs.
-*** On HP-UX 11.0 XEmacs causes excessive X11 errors when running.
+*** On HP-UX 11.0 XEmacs causes excessive X11 errors when running.
(also appears on AIX as reported in comp.emacs.xemacs)
Marcus Thiessel <marcus@xemacs.org>
configure:
--x-libraries="/usr/lib/Motif1.2_R6 -L/usr/lib/X11R6"
-
+
Make sure /usr/lib/Motif1.2_R6/libXm.sl is a link to
/usr/lib/Motif1.2_R6/libXm.3.
*** Native cc on SCO OpenServer 5 is now OK. Icc may still throw you
a curve. Here is what Robert Lipe <robertl@arnet.com> says:
-Unlike XEmacs 19.13, building with the native cc on SCO OpenServer 5
+Unlike XEmacs 19.13, building with the native cc on SCO OpenServer 5
now produces a functional binary. I will typically build this
configuration for COFF with:
--site-includes=/usr/local/include --site-libraries=/usr/local/lib \
--with-xpm --with-xface --with-sound=nas
-This version now supports ELF builds. I highly recommend this to
-reduce the in-core footprint of XEmacs. This is now how I compile
+This version now supports ELF builds. I highly recommend this to
+reduce the in-core footprint of XEmacs. This is now how I compile
all my test releases. Build it like this:
/path_to_XEmacs_source/configure --with-gcc=no \
--site-includes=/usr/local/include --site-libraries=/usr/local/lib \
--with-xpm --with-xface --with-sound=nas --dynamic
-The compiler known as icc [ supplied with the OpenServer 5 Development
+The compiler known as icc [ supplied with the OpenServer 5 Development
System ] generates a working binary, but it takes forever to generate
XEmacs. ICC also whines more about the code than /bin/cc does. I do
believe all its whining is legitimate, however. Note that you do
--site-includes=/usr/local/include --site-libraries=/usr/local/lib \
--with-xpm --with-xface --with-sound=nas --dynamic --compiler="icc"
-NOTE I have the xpm, xface, and audio libraries and includes in
+NOTE I have the xpm, xface, and audio libraries and includes in
/usr/local/lib, /usr/local/include. If you don't have these,
don't include the "--with-*" arguments in any of my examples.
-In previous versions of XEmacs, you had to override the defaults while
+In previous versions of XEmacs, you had to override the defaults while
compiling font-lock.o and extents.o when building with icc. This seems
to no longer be true, but I'm including this old information in case it
resurfaces. The process I used was:
- make -k
- [ procure pizza, beer, repeat ]
+ make -k
+ [ procure pizza, beer, repeat ]
cd src
make CC="icc -W0,-mP1COPT_max_tree_size=3000" font-lock.o extents.o
make LD=icc
-If you want sound support, get the tls566 supplement from
-ftp.sco.com:/TLS or any of its mirrors. It works just groovy
+If you want sound support, get the tls566 supplement from
+ftp.sco.com:/TLS or any of its mirrors. It works just groovy
with XEmacs.
The M-x manual-entry is known not to work. If you know Lisp and would
like help in making it work, e-mail me at <robertl@dgii.com>.
(UNCHECKED for 19.15 -- it might work).
-In earlier releases, gnuserv/gnuclient/gnudoit would open a frame
+In earlier releases, gnuserv/gnuclient/gnudoit would open a frame
just fine, but the client would lock up and the server would
-terminate when you used C-x # to close the frame. This is now
+terminate when you used C-x # to close the frame. This is now
fixed in XEmacs.
In etc/ there are two files of note. emacskeys.sco and emacsstrs.sco.
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
+*** 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.
+to NFS) that I don't understand. Please send mail to the address
+xemacs-beta@xemacs.org if you figure this one out.
*** When emacs starts up, I get lots of warnings about unknown keysyms.
If you are running the prebuilt binaries, the Motif library expects to find
certain thing in the XKeysymDB file. This file is normally in /usr/lib/X11/
or in /usr/openwin/lib/. If you keep yours in a different place, set the
-environment variable $XKEYSYMDB to point to it before starting emacs. If
-you still have the problem after doing that, perhaps your version of X is
+environment variable $XKEYSYMDB to point to it before starting emacs. If
+you still have the problem after doing that, perhaps your version of X is
too old. There is a copy of the MIT X11R5 XKeysymDB file in the emacs `etc'
directory. Try using that one.
*** My X resources used to work, and now some of them are being ignored.
Check the resources in .../etc/Emacs.ad (which is the same as the file
-sample.Xdefaults). Perhaps some of the default resources built in to
+sample.Xdefaults). Perhaps some of the default resources built in to
emacs are now overriding your existing resources. Copy and edit the
resources in Emacs.ad as necessary.
XEmacs has fairly new TTY redisplay support (beginning from 19.12),
which doesn't include some basic TTY optimizations -- like using
scrolling regions to move around blocks of text. This is why
-redisplay on the traditional terminals, or over slow lines can be very
+redisplay on the traditional terminals, or over slow lines can be very
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.
if ($?EMACS) then
if ($EMACS == "t") then
- unset edit
+ unset edit
stty -icrnl -onlcr -echo susp ^Z
endif
endif
** Linux
+*** 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.
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
+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.
Also make sure that the `/etc/host.conf' files contains the following
lines:
- order hosts, bind
+ order hosts, bind
multi on
Any changes, permanent and temporary, to the host name should be
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
-
- hints.ai_family = AF_UNSPEC;
-
-to
+behavior in src/process-unix.c. Add `--with-ipv6-cname=no" to your
+configure options and rebuild XEmacs.
- hints.ai_family = PF_INET;
+*** XEmacs disappears after several sound events in succession
-and rebuild XEmacs.
-
-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.
+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.
+The solution is either to build XEmacs with -sound=native,noesd or to make sure
+that esd is in fact running.
** IRIX
*** On Irix, I don't see the toolbar icons and I'm getting lots of
The solution is to add a pair of quotes around `tty` to make it a
single word:
-if (`tty` == "/dev/console")
+if (`tty` == "/dev/console")
should be changed to:
-if ("`tty`" == "/dev/console")
+if ("`tty`" == "/dev/console")
Even better, move things that set up terminal sections out of .cshrc
and into .login.
** 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.
+
+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?)
-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.
+*** 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)
==============================================================================
and testers. It probably doesn't work.
** There are no `native XEmacs' TUTORIALs for any Asian languages,
-including Japanese. FSF Emacs and XEmacs tutorials are quite similar,
+including Japanese. FSF Emacs and XEmacs tutorials are quite similar,
so it should be sufficient to skim through the differences and apply
them to the Japanese version.