XEmacs 21.4.9 "Informed Management".
[chise/xemacs-chise.git.1] / PROBLEMS
index dab9c7c..ccce14f 100644 (file)
--- a/PROBLEMS
+++ b/PROBLEMS
@@ -2,7 +2,7 @@
 
 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
@@ -17,19 +17,48 @@ Use `C-c C-f' to move to the next equal level of outline, and
 `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'.
 
@@ -187,6 +216,33 @@ Valdis.Kletnieks@vt.edu writes:
 
 
 ** 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:
@@ -212,6 +268,10 @@ normally held in /usr/ccs/bin.  This can be done by one of:
 
 - 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
@@ -552,12 +612,38 @@ Note: Much of the above entry is probably not valid for XEmacs 21.0
 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
@@ -568,10 +654,9 @@ mean configure is slower but more reliable.
 
 *** 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.
 
@@ -579,17 +664,6 @@ This is a known problem. It can be remedied with cygwin b20 or greater
 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
@@ -597,9 +671,9 @@ obtain makeinfo from somewhere or build it yourself.
 
 *** 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.
 
@@ -611,6 +685,26 @@ microsoft website.
 * 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
@@ -726,7 +820,7 @@ may need to add "#define static" to the m- or the s- file.
 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.
 
@@ -905,7 +999,7 @@ 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.
 
@@ -1297,6 +1391,55 @@ affected virtually all ioctl() calls.
 
 
 ** 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
@@ -1315,6 +1458,19 @@ XEmacs to use the Alt key" below.
 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.
@@ -1357,30 +1513,6 @@ http://www.geocities.com/kensanata/color-emacs.html#ansicolors
 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
@@ -1429,9 +1561,9 @@ file is not necessary with this approach.
 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
 
@@ -1447,23 +1579,45 @@ IPv4 behavior.  Explicitly setting DISPLAY=127.0.0.1:0.0 (or whatever
 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.
@@ -1696,14 +1850,38 @@ GCC.
 
 
 ** 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)
 ==============================================================================