update.
[chise/xemacs-chise.git.1] / PROBLEMS
index 072fc72..7abb978 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
 
 This file describes various problems that have been encountered
 in compiling, installing and running XEmacs.  It has been updated for
-XEmacs 21.2.
+XEmacs 21.5.
 
 This file is rather large, but we have tried to sort the entries by
 their respective relevance for XEmacs, but may have not succeeded
 
 This file is rather large, but we have tried to sort the entries by
 their respective relevance for XEmacs, but may have not succeeded
@@ -20,35 +20,66 @@ info about the Outline mode.
 Also, Try finding the things you need using one of the search commands
 XEmacs provides (e.g. `C-s').
 
 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
 ===============================
 
 
 
 * Problems with building XEmacs
 ===============================
 
-** Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using
-`-fno-strength-reduce'.
+** General
 
 
-gcc will generate incorrect code otherwise.  This bug is present in at
-least 2.6.x and 2.7.[0-2].  This bug has been fixed in GCC 2.7.2.1 and
-later.  This bug is O/S independent, but is limited to x86 architectures.
+    Much general information is in INSTALL.  If it's covered in
+    INSTALL, we don't repeat it here.
 
 
-This problem is known to be fixed in egcs (or pgcc) 1.0 or later.
+*** X11/bitmaps/gray (or other X11-related file) not found.
 
 
-** Don't use -O2 with gcc 2.7.2 under Intel architectures without also
-using `-fno-caller-saves'.
+The X11R6 distribution was monolithic, but the X11R7 distribution is
+much more modular.  Many OS distributions omit these bitmaps (assuming
+nobody uses them, evidently).  Your OS distribution should have a
+developer's package containing these files, probably with a name
+containing the string "bitmap".  Known package names (you may need to
+add an extension such as .deb or .rpm) include x11/xbitmaps (Ubuntu)
+and xorg-x11-xbitmaps (Fedora Core 5).
 
 
-gcc will generate incorrect code otherwise.  This bug is still
-present in gcc 2.7.2.3.  There have been no reports to indicate the
-bug is present in egcs 1.0 (or pgcc 1.0) or later.  This bug is O/S
-independent, but limited to x86 architectures.
+*** How do I configure to get the buffer tabs/progress bars?
 
 
-This problem is known to be fixed in egcs (or pgcc) 1.0 or later.
+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.
+
+*** When using gcc, you get the error message "undefined symbol __fixunsdfsi".
+When using gcc, you get the error message "undefined symbol __main".
 
 
-** Excessive optimization with pgcc can break XEmacs
+This means that you need to link with the gcc library.  It may be called
+"gcc-gnulib" or "libgcc.a"; figure out where it is, and define LIB_GCC in
+config.h to point to it.
+
+It may also work to use the GCC version of `ld' instead of the standard one.
+
+*** Excessive optimization with pgcc can break XEmacs
 
 It has been reported on some systems that compiling with -O6 can lead
 to XEmacs failures.  The workaround is to use a lower optimization
 
 It has been reported on some systems that compiling with -O6 can lead
 to XEmacs failures.  The workaround is to use a lower optimization
@@ -59,28 +90,21 @@ of libc.  Snapshots near the release of pgcc-1.0 have been tested
 extensively and no sign of breakage has been seen on systems using
 glibc-2.
 
 extensively and no sign of breakage has been seen on systems using
 glibc-2.
 
-** `compress' and `uncompress' not found and XFree86
-
-XFree86 installs a very old version of libz.a by default ahead of where
-more modern version of libz might be installed.  This will cause problems
-when attempting to link against libMagick.  The fix is to remove the old
-libz.a in the X11 binary directory.
+*** src/Makefile and lib-src/Makefile are truncated--most of the file missing.
 
 
-** Excessive optimization on AIX 4.2 can lead to compiler failure.
+This can happen if configure uses GNU sed version 2.03.  That version
+had a bug.  GNU sed version 2.05 works properly.
 
 
-Valdis.Kletnieks@vt.edu writes:
-  At least at the b34 level, and the latest-and-greatest IBM xlc
-  (3.1.4.4), there are problems with -O3.  I haven't investigated
-  further.
+*** When compiling with X11, you get "undefined symbol _XtStrings".
 
 
-** Sed problems on Solaris 2.5
+This means that you are trying to link emacs against the X11r4 version of
+libXt.a, but you have compiled either Emacs or the code in the lwlib
+subdirectory with the X11r5 header files.  That doesn't work.
 
 
-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 
-patch. :-)
+Remember, you can't compile lwlib for r4 and emacs for r5, or vice versa.
+They must be in sync.
 
 
-** test-distrib says that the distribution has been clobbered
+*** test-distrib says that the distribution has been clobbered
 or, temacs prints "Command key out of range 0-127"
 or, temacs runs and dumps xemacs, but xemacs totally fails to work.
 or, temacs gets errors dumping xemacs
 or, temacs prints "Command key out of range 0-127"
 or, temacs runs and dumps xemacs, but xemacs totally fails to work.
 or, temacs gets errors dumping xemacs
@@ -100,112 +124,158 @@ characters, you can fix them by running:
 
 This will rebuild all the needed .elc files.
 
 
 This will rebuild all the needed .elc files.
 
-** `Error: No ExtNode to pop!' on Linux systems with Lesstif.
-
-This error message has been observed with lesstif-0.75a.  It does not
-appear to cause any harm.
-
-** Linking with -rpath on IRIX.
-
-Darrell Kindred <dkindred@cmu.edu> writes:
-There are a couple of problems [with use of -rpath with Irix ld], though:
-
-  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 
-     entries for the --site-runtime-libraries.  This bug was
-     fixed sometime between 5.3 and 6.2.
-
-  2. IRIX gcc 2.7.2 doesn't accept -rpath directly, so
-     it would have to be prefixed by -Xlinker or "-Wl,".
-     This would be fine, except that configure compiles with
-        ${CC-cc} $CFLAGS $LDFLAGS ...
-     rather than quoting $LDFLAGS with prefix-args, like
-     src/Makefile does.  So if you specify --x-libraries
-     or --site-runtime-libraries, you must use --use-gcc=no,
-     or configure will fail.
-
-** On Irix 6.3, the SGI ld quits with segmentation fault when linking temacs
+** Intel Architecture General
 
 
-This occurs if you use the SGI linker version 7.1.  Installing the
-patch SG0001872 fixes this problem.
-
-** xemacs: can't resolve symbol '__malloc_hook'
-
-This is a Linux problem where you've compiled the XEmacs binary on a libc
-5.4 with version higher than 5.4.19 and attempted to run the binary against
-an earlier version.  The solution is to upgrade your old library.
+*** Don't use -O2 or -O3 with Cygwin 1.0, CodeFusion-99070 or gcc 2.7.2 on x86
+without also using `-fno-strength-reduce'.
 
 
-** Compilation errors on VMS.
+gcc will generate incorrect code otherwise.  This bug is present in at
+least 2.6.x and 2.7.[0-2].  This bug has been fixed in GCC 2.7.2.1 and
+later.  This bug is O/S independent, but is limited to x86 architectures.
 
 
-Sorry, XEmacs does not work under VMS.  You might consider working on
-the port if you really want to have XEmacs work under VMS.
+This problem is known to be fixed in egcs (or pgcc) 1.0 or later.
 
 
-** On Solaris 2 I get undefined symbols from libcurses.a.
+Unfortunately, later releases of Cygnus-released compilers (not the
+Net-released ones) have a bug with the same `problem signature'.
 
 
-You probably have /usr/ucblib/ on your LD_LIBRARY_PATH.  Do the link with
-LD_LIBRARY_PATH unset.  Generally, avoid using any ucb* stuff when
-building XEmacs.
+If you're lucky, you'll get an error while compiling that looks like:
 
 
-** On Solaris 2 I cannot make alloc.o, glyphs.o or process.o.
+event-stream.c:3189: internal error--unrecognizable insn:
+(insn 256 14 15 (set (reg/v:SI 24)
+        (minus:SI (reg/v:SI 25)
+            (const_int 2))) -1 (insn_list 11 (nil))
+    (nil))
+    0       0 [main]
 
 
-The SparcWorks C compiler may have difficulty building those modules
-with optimization level -xO4.  Try using only "-fast" optimization
-for just those modules.  (Or use gcc).
+If you're unlucky, your code will simply execute incorrectly.
 
 
-** On Digital UNIX, the DEC C compiler might have a problem compiling
-some files.
+*** Don't use -O2 with gcc 2.7.2 under Intel architectures without also
+using `-fno-caller-saves'.
 
 
-In particular, src/extents.c and src/faces.c might cause the DEC C
-compiler to abort.  When this happens: cd src, compile the files by
-hand, cd .., and redo the "make" command.  When recompiling the files by
-hand, use the old C compiler for the following versions of Digital UNIX:
-  - V3.n: Remove "-migrate" from the compile command.
-  - V4.n: Add "-oldc" to the compile command.
+gcc will generate incorrect code otherwise.  This bug is still
+present in gcc 2.7.2.3.  There have been no reports to indicate the
+bug is present in egcs 1.0 (or pgcc 1.0) or later.  This bug is O/S
+independent, but limited to x86 architectures.
 
 
-A related compiler bug has been fixed by the DEC compiler team.  The
-new versions of the compiler should run fine.
+This problem is known to be fixed in egcs (or pgcc) 1.0 or later.
 
 
-** On HPUX, the HP C compiler might have a problem compiling some files
-with optimization.
+*** `compress' and `uncompress' not found and XFree86
 
 
-Richard Cognot <cognot@ensg.u-nancy.fr> writes:
+XFree86 installs a very old version of libz.a by default ahead of where
+more modern version of libz might be installed.  This will cause problems
+when attempting to link against libMagick.  The fix is to remove the old
+libz.a in the X11 binary directory.
 
 
-  Had to drop once again to level 2 optimization, at least to
-  compile lstream.c. Otherwise, I get a "variable is void: \if"
-  problem while dumping (this is a problem I already reported
-  with vanilla hpux 10.01 and 9.07, which went away after
-  applying patches for the C compiler). Trouble is I still
-  haven't found the same patch for hpux 10.10, and I don't
-  remember the patch numbers. I think potential XEmacs builders
-  on HP should be warned about this.
 
 
-** I don't have `xmkmf' and `imake' on my HP.
+** Motif
+
+Motif is the X11 version of the Gnus torture test: if there's a way to
+crash, Motif will find it.  With the open source release of Motif, it
+seems like a good idea to collect all Motif-related issues in one
+place.
+
+You should also look in your OS's section, as it may not be Motif's
+fault.
+
+*** XEmacs visibly repaints itty-bitty rectangles very slowly.
+
+This should only be visible on a slow X connection (ISDN, maybe T1).
+
+At least some versions of Motif apparently do not implement
+XtExposeCompressMaximal properly, so it is disabled.  If you wish to
+experiment, you can remove the #ifdef LWLIB_NEEDS_MOTIF at line 238
+(or so) of src/EmacsFrame.c, leaving only the line
+
+    /* compress_exposure       */      XtExposeCompressMaximal | XtExposeNoRegion,
+
+and recompile.  This enables exposure compression, giving a 10:1 or
+better speedup for some users.  However, on some Motif platforms (Red
+Hat Linux 9.0 and Solaris 2.8, at least), this causes XEmacs to hang
+while displaying the progress bar (eg, in font-lock).  A workaround
+for that problem is to setq `progress-feedback-use-echo-area' to `t'.
+
+*** XEmacs crashes on exit (#1).
+
+The backtrace is something like:
+
+    (gdb) where
+    #0  0xfeb9a480 in _libc_kill () from /usr/lib/libc.so.1
+    #1  0x000b0388 in fatal_error_signal ()
+    #2  <signal handler called>
+    #3  YowIter (ht=0xb, id=0x0, v=0x74682074, client=0x47e3c0)
+        at ImageCache.c:1159
+    #4  0xff26cc5c in _LTHashTableForEachItem (ht=0x4725e8,
+        iter=0xff26dda0 <YowIter>, ClientData=0x47e3c0) at Hash.c:671
+    #5  0xff2a4664 in destroy (w=0x496550) at Screen.c:352
+    #6  0xfef92118 in Phase2Destroy () from /usr/openwin/lib/libXt.so.4
+    #7  0xfef91940 in Recursive () from /usr/openwin/lib/libXt.so.4
+    #8  0xfef91e44 in XtPhase2Destroy () from /usr/openwin/lib/libXt.so.4
+    #9  0xfef91ae8 in _XtDoPhase2Destroy () from /usr/openwin/lib/libXt.so.4
+    #10 0xfef918cc in XtDestroyWidget () from /usr/openwin/lib/libXt.so.4
+    #11 0xfef91438 in CloseDisplay () from /usr/openwin/lib/libXt.so.4
+    #12 0xfef91394 in XtCloseDisplay () from /usr/openwin/lib/libXt.so.4
+    #13 0x0025b8b0 in x_delete_device ()
+    #14 0x000940b0 in delete_device_internal ()
+    #15 0x000806a0 in delete_console_internal ()
+
+This is known to happen with Lesstif version 0.93.36.  Similar
+backtraces have also been observed on HP/UX and Solaris.  There is a
+patch for Lesstif.  (This is not a solution; it just stops the crash.
+It may or may not be harmless, but "it works for the author".)
+
+Note that this backtrace looks a lot like the one in the next item.
+However, this one is invulnerable to the Solaris patches mentioned there.
+
+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);
+ }
 
 
-  You can get these standard X tools by anonymous FTP to
-  hpcvaaz.cv.hp.com.  Essentially all X programs need these.
+*** XEmacs crashes on exit (#2)
 
 
-** On HP-UX, problems with make
+Especially frequent with multiple frames.  Crashes that produce C
+backtraces like this:
 
 
-Marcus Thiessel <marcus_thiessel@hp.com>
+#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)
 
 
-  Some releases of XEmacs (e.g. 20.4) require GNU make to build
-  successfully. You don't need GNU make when building 21.x.
+are caused by buggy Motif libraries.  Installing the following patches
+has been reported to solve the problem on Solaris 2.7:
 
 
-** On HP-UX 9.05 XEmacs won't compile or coredump during the build.
+107081-40 107656-07
 
 
-Marcus Thiessel <marcus_thiessel@hp.com>
+For information (although they have not been confirmed to work), the
+equivalent patches for Solaris 2.8 are:
 
 
-  This might be a sed problem. For your own safety make sure to use
-  GNU sed while dumping XEmacs.
+108940-33 108652-25
 
 
-** 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_thiessel@hp.com>
+Marcus Thiessel <marcus@xemacs.org>
 
 
-  Unfortunately, XEmacs releases don't work with Motif2.1. It
-  will compile but you will get excessive X11 errors like
+  Unfortunately, XEmacs releases prior to 21.0 don't work with
+  Motif2.1. It will compile but you will get excessive X11 errors like
 
   xemacs: X Error of failed request:  BadGC (invalid GC parameter)
 
 
   xemacs: X Error of failed request:  BadGC (invalid GC parameter)
 
@@ -214,125 +284,72 @@ Marcus Thiessel <marcus_thiessel@hp.com>
   configure:
 
      --x-libraries="/usr/lib/Motif1.2_R6 -L/usr/lib/X11R6"
   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.
 
   Make sure /usr/lib/Motif1.2_R6/libXm.sl is a link to
   /usr/lib/Motif1.2_R6/libXm.3.
 
-** Solaris 2.3 /bin/sh coredumps during configuration.
-
-This only occurs if you have LANG != C.  This is a known bug with
-/bin/sh fixed by installing Patch-ID# 101613-01.  Or, you can use
-bash, as a workaround.
-
-** On Irix 6.0, make tries (and fails) to build a program named unexelfsgi
-
-A compiler bug inserts spaces into the string "unexelfsgi . o"
-in src/Makefile.  Edit src/Makefile, after configure is run,
-find that string, and take out the spaces.
-
-Compiler fixes in Irix 6.0.1 should eliminate this problem.
-
-** Coredumping in Irix 6.2
-
-Pete Forman <gsez020@compo.bedford.waii.com> writes:
-A problem noted by myself and others (I've lost the references) was
-that XEmacs coredumped when the cut or copy toolbar buttons were
-pressed.  This has been fixed by loading the SGI patchset (Feb 98)
-without having to recompile XEmacs.
-
-My versions are XEmacs 20.3 (problem first noted in 19.15) and IRIX
-6.2, compiled using -n32.  I'd guess that the relevant individual
-patch was "SG0002580: multiple fixes for X libraries".  SGI recommends
-that the complete patch set be installed rather than parts of it.
+*** On HP-UX 11.0: Object "" does not have windowed ancestor
 
 
-** 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:
+Marcus Thiessel <marcus@xemacs.org>
 
 
-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:
+  XEmacs dies without core file and reports:
 
 
-       /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
+    Error: Object "" does not have windowed ancestor.
 
 
-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:
+  This is a bug. Please apply the patch PHSS_19964 (check if
+  superseded). The other alternative is to link with Motif1.2_R6 (see
+  previous item).
 
 
-       /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
+*** Motif dialog boxes lose on Irix.
 
 
-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
-have to 'cd src ; make  LD=icc' to avoid linker errors.
+Larry Auton <lda@control.att.com> writes:
+Beware of not specifying
 
 
-The way I handle the build procedure is:
+       --with-dialogs=athena
 
 
-       /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 --compiler="icc"
+if it builds with the motif dialogs [boom!] you're a dead man.
 
 
-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 
-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:
+** AIX
+*** IBM compiler fails: "The character # is not a valid C source character."
 
 
-       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
+Most recently observed in 21.5.9, due to USE_KKCC ifdefs (they just
+happen to tickle the implementation).
 
 
-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.
+Valdis Kletnieks says:
 
 
-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).
+  The problem is that IBM defines a *MACRO* called 'memcpy', and we
+  have stuck a #ifdef/#endif inside the macro call.  As a workaround,
+  try adding '-U__STR__' to your CFLAGS - this will cause string.h to
+  not do a #define for strcpy() to __strcpy() - it uses this for
+  automatic inlining support.
 
 
-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 
-fixed in XEmacs.
+  (For the record, the same issue affects a number of other functions
+  defined in string.h - basically anything the compiler knows how to
+  inline.)
 
 
-In etc/ there are two files of note. emacskeys.sco and emacsstrs.sco.
-The comments at the top of emacskeys.sco describe its function, and
-the emacstrs.sco is a suitable candidate for /usr/lib/keyboard/strings
-to take advantage of the keyboard map in emacskeys.sco.
+*** On AIX 4.3, you must specify --with-dialogs=athena with configure
 
 
-Note: Much of the above entry is probably not valid for XEmacs 21.2
-and later.
+*** The libXt shipped with AIX 4.3 up to 4.3.2 is broken.  This causes
+    xemacs -nw to fail in various ways.  The official APAR is this:
 
 
-** Under some versions of OSF XEmacs runs fine if built without
-optimization but will crash randomly if built with optimization.
+APAR NUMBER: <IX89470>            RESOLVED AS: PROGRAM ERROR
 
 
-Using 'cc -g' is not sufficient to eliminate all optimization.  Try
-'cc -g -O0' instead.
+ABSTRACT:
+<IX89470>: LIBXT.A INCORRECT HANDLING OF EXCEPTIONS IN XTAPPADDINPUT
 
 
-** On SunOS, you get linker errors
-    ld: Undefined symbol 
-       _get_wmShellWidgetClass
-       _get_applicationShellWidgetClass
+    The solution is to install X11.base.lib at version >=4.3.2.5.
 
 
-The fix to this is to install patch 100573 for OpenWindows 3.0
-or link libXmu statically.
+*** On AIX, you get this compiler error message:
 
 
-** On Sunos 4, you get the error ld: Undefined symbol __lib_version.
+    Processing include file ./XMenuInt.h
+        1501-106: (S) Include file X11/Xlib.h not found.
 
 
-This is the result of using cc or gcc with the shared library meant
-for acc (the Sunpro compiler).  Check your LD_LIBRARY_PATH and delete
-/usr/lang/SC2.0.1 or some similar directory.
+This means your system was installed with only the X11 runtime i.d
+libraries.  You have to find your sipo (bootable tape) and install
+X11Dev... with smit.
 
 
-** On AIX 4.1.2, linker error messages such as
+*** On 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.
 
    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.
 
@@ -347,112 +364,162 @@ you build Emacs:
 Then change -lIM to ./libIM.a in the command to link temacs (in
 Makefile).
 
 Then change -lIM to ./libIM.a in the command to link temacs (in
 Makefile).
 
-** On Irix 5.2, unexelfsgi.c can't find cmplrs/stsupport.h.
+*** Excessive optimization on AIX 4.2 can lead to compiler failure.
 
 
-The file cmplrs/stsupport.h was included in the wrong file set in the
-Irix 5.2 distribution.  You can find it in the optional fileset
-compiler_dev, or copy it from some other Irix 5.2 system.  A kludgy
-workaround is to change unexelfsgi.c to include sym.h instead of
-syms.h.
+Valdis.Kletnieks@vt.edu writes:
+  At least at the b34 level, and the latest-and-greatest IBM xlc
+  (3.1.4.4), there are problems with -O3.  I haven't investigated
+  further.
 
 
-** Link failure when using acc on a Sun.
 
 
-To use acc, you need additional options just before the libraries, such as
+** SunOS/Solaris
+*** Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures
+without also using `-fno-schedule-insns'.
 
 
-   /usr/lang/SC2.0.1/values-Xt.o -L/usr/lang/SC2.0.1/cg87 -L/usr/lang/SC2.0.1
+gcc will generate incorrect code otherwise, typically resulting in
+crashes in the function skip-syntax-backward.
 
 
-and you need to add -lansi just before -lc.
+*** Don't use gcc-2.95.2 with -mcpu=ultrasparc on Solaris 2.6.
 
 
-The precise file names depend on the compiler version, so we
-cannot easily arrange to supply them.
+gcc will assume a 64-bit operating system, even though you've
+merely told it to assume a 64-bit instruction set.
 
 
-** Link failure on IBM AIX 1.3 ptf 0013.
+*** Dumping error when using GNU binutils / GNU ld on a Sun.
 
 
-There is a real duplicate definition of the function `_slibc_free' in
-the library /lib/libc_s.a (just do nm on it to verify).  The
-workaround/fix is:
+Errors similar to the following:
 
 
-    cd /lib
-    ar xv libc_s.a NLtmtime.o
-    ar dv libc_s.a NLtmtime.o
+   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
 
 
-** Undefined symbols when linking on Sunos 4.1.
+are caused by using GNU ld.  There are several workarounds available:
 
 
-If you get the undefined symbols _atowc _wcslen, _iswprint, _iswspace,
-_iswcntrl, _wcscpy, and _wcsncpy, then you need to add -lXwchar after
--lXaw in the command that links temacs.
+In XEmacs 21.2 or later, configure using the new portable dumper
+(--pdump).
 
 
-This problem seems to arise only when the international language
-extensions to X11R5 are installed.
+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:
 
 
-** src/Makefile and lib-src/Makefile are truncated--most of the file missing.
+- building gcc with these configure flags:
+  configure --with-ld=/usr/ccs/bin/ld --with-as=/usr/ccs/bin/as
 
 
-This can happen if configure uses GNU sed version 2.03.  That version
-had a bug.  GNU sed version 2.05 works properly.
+- adding -B/usr/ccs/bin/ to CFLAGS used to configure XEmacs
+  (Note: The trailing '/' there is significant.)
 
 
-** On AIX, you get this compiler error message:
+- uninstalling GNU ld.
 
 
-    Processing include file ./XMenuInt.h
-        1501-106: (S) Include file X11/Xlib.h not found.
+The Solaris2 FAQ claims:
 
 
-This means your system was installed with only the X11 runtime i.d
-libraries.  You have to find your sipo (bootable tape) and install
-X11Dev... with smit.
+    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.
 
 
-** C-z just refreshes the screen instead of suspending Emacs.
+*** Link failure when using acc on a Sun.
 
 
-You are probably using a shell that doesn't support job control, even
-though the system itself is capable of it.  Try using a different
-shell.
+To use acc, you need additional options just before the libraries, such as
 
 
-** On a Sun running SunOS 4.1.1, you get this error message from GNU ld:
+   /usr/lang/SC2.0.1/values-Xt.o -L/usr/lang/SC2.0.1/cg87 -L/usr/lang/SC2.0.1
 
 
-    /lib/libc.a(_Q_sub.o): Undefined symbol __Q_get_rp_rd referenced from text segment 
+and you need to add -lansi just before -lc.
 
 
-The problem is in the Sun shared C library, not in GNU ld.
+The precise file names depend on the compiler version, so we
+cannot easily arrange to supply them.
 
 
-The solution is to install Patch-ID# 100267-03 from Sun.
+*** Problems finding X11 libraries on Solaris with Openwindows
 
 
-** SunOS 4.1.2: undefined symbol _get_wmShellWidgetClass
+Some users have reported problems in this area.  The reported solution
+is to define the environment variable OPENWINHOME, even if you must set
+it to `/usr/openwin'.
 
 
-  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 
-  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:
-    100512-02       4.1.x OpenWindows 3.0 libXt Jumbo patch
-    100573-03       4.1.x OpenWindows 3.0 undefined symbols with shared libXmu
+*** Sed problems on Solaris 2.5
 
 
-** Random other SunOS 4.1.[12] link errors.
+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
+patch. :-)
 
 
-  The X headers and libraries that Sun ships in /usr/{include,lib}/X11 are
-  broken.  Use the ones in /usr/openwin/{include,lib} instead.
+*** On Solaris 2 I get undefined symbols from libcurses.a.
 
 
-** When using gcc, you get the error message "undefined symbol __fixunsdfsi".
-When using gcc, you get the error message "undefined symbol __main".
+You probably have /usr/ucblib/ on your LD_LIBRARY_PATH.  Do the link with
+LD_LIBRARY_PATH unset.  Generally, avoid using any ucb* stuff when
+building XEmacs.
 
 
-This means that you need to link with the gcc library.  It may be called
-"gcc-gnulib" or "libgcc.a"; figure out where it is, and define LIB_GCC in
-config.h to point to it.
+*** On Solaris 2 I cannot make alloc.o, glyphs.o or process.o.
 
 
-It may also work to use the GCC version of `ld' instead of the standard one.
+The SparcWorks C compiler may have difficulty building those modules
+with optimization level -xO4.  Try using only "-fast" optimization
+for just those modules.  (Or use gcc).
 
 
-** When compiling with X11, you get "undefined symbol _XtStrings".
+*** Solaris 2.3 /bin/sh coredumps during configuration.
 
 
-This means that you are trying to link emacs against the X11r4 version of
-libXt.a, but you have compiled either Emacs or the code in the lwlib
-subdirectory with the X11r5 header files.  That doesn't work.
+This only occurs if you have LANG != C.  This is a known bug with
+/bin/sh fixed by installing Patch-ID# 101613-01.  Or, you can use
+bash by setting the environment variable CONFIG_SHELL to /bin/bash
 
 
-Remember, you can't compile lwlib for r4 and emacs for r5, or vice versa.
-They must be in sync.
+*** Solaris 2.x configure fails: ./config.status: test: argument expected
 
 
-** Problems finding X11 libraries on Solaris with Openwindows
+This is a known bug with /bin/sh and /bin/test, i.e. they do not
+support the XPG4 standard.  You can use bash as a workaround or an
+XPG4-compliant Bourne shell such as the Sun-supplied /usr/xpg4/bin/sh
+by setting the environment variable CONFIG_SHELL to /usr/xpg4/bin/sh
 
 
-Some users have reported problems in this area.  The reported solution
-is to define the environment variable OPENWINHOME, even if you must set
-it to `/usr/openwin'.
+*** On SunOS, you get linker errors
+    ld: Undefined symbol
+       _get_wmShellWidgetClass
+       _get_applicationShellWidgetClass
+
+The fix to this is to install patch 100573 for OpenWindows 3.0
+or link libXmu statically.
+
+*** On Sunos 4, you get the error ld: Undefined symbol __lib_version.
+
+This is the result of using cc or gcc with the shared library meant
+for acc (the Sunpro compiler).  Check your LD_LIBRARY_PATH and delete
+/usr/lang/SC2.0.1 or some similar directory.
+
+*** Undefined symbols when linking on Sunos 4.1.
+
+If you get the undefined symbols _atowc _wcslen, _iswprint, _iswspace,
+_iswcntrl, _wcscpy, and _wcsncpy, then you need to add -lXwchar after
+-lXaw in the command that links temacs.
+
+This problem seems to arise only when the international language
+extensions to X11R5 are installed.
 
 
-** Under Linux, you get "too many arguments to function `getpgrp'".
+*** 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
+
+The problem is in the Sun shared C library, not in GNU ld.
+
+The solution is to install Patch-ID# 100267-03 from Sun.
+
+*** 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
+  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:
+    100512-02       4.1.x OpenWindows 3.0 libXt Jumbo patch
+    100573-03       4.1.x OpenWindows 3.0 undefined symbols with shared libXmu
+
+*** Random other SunOS 4.1.[12] link errors.
+
+  The X headers and libraries that Sun ships in /usr/{include,lib}/X11 are
+  broken.  Use the ones in /usr/openwin/{include,lib} instead.
+
+** Linux
+
+See also Intel Architecture General, above.
+
+*** egcs-1.1 on Alpha Linux
+
+There have been reports of egcs-1.1 not compiling XEmacs correctly on
+Alpha Linux.  There have also been reports that egcs-1.0.3a is O.K.
+
+*** Under Linux, you get "too many arguments to function `getpgrp'".
 
 You have probably installed LessTiff under `/usr/local' and `libXm.so'
 could not be found when linking `getpgrp()' test program, making XEmacs
 
 You have probably installed LessTiff under `/usr/local' and `libXm.so'
 could not be found when linking `getpgrp()' test program, making XEmacs
@@ -462,208 +529,533 @@ again.  As with all problems of this type, reading the config.log file
 generated from configure and seeing the log of how the test failed can
 prove enlightening.
 
 generated from configure and seeing the log of how the test failed can
 prove enlightening.
 
+*** `Error: No ExtNode to pop!' on Linux systems with Lesstif.
 
 
-* Problems with running XEmacs
-==============================
-** On Solaris 2.6, XEmacs dumps core when exiting.
+This error message has been observed with lesstif-0.75a.  It does not
+appear to cause any harm.
 
 
-This happens if you're XEmacs is running on the same machine as the X
-server, and the optimized memory transport has been turned on by
-setting the environment variable XSUNTRANSPORT.  The crash occurs
-during the call to XCloseDisplay.
+*** xemacs: can't resolve symbol '__malloc_hook'
 
 
-If this describes your situation, you need to undefine the
-XSUNTRANSPORT environment variable.
+This is a Linux problem where you've compiled the XEmacs binary on a libc
+5.4 with version higher than 5.4.19 and attempted to run the binary against
+an earlier version.  The solution is to upgrade your old library.
 
 
-** `C-z', or `M-x suspend-emacs' hangs instead of suspending.
+** IRIX
 
 
-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.
+*** More coredumping in Irix (6.5 known to be vulnerable)
 
 
-** You type Control-H (Backspace) expecting to delete characters.
+No fix is known yet.  Here's the best information we have:
 
 
-Emacs has traditionally used Control-H for help; unfortunately this
-interferes with its use as Backspace on TTY's.  One way to solve this
-problem is to put this in your .emacs:
+Valdis Kletnieks <Valdis.Kletnieks@vt.edu> writes:
 
 
-  (when (eq tty-erase-char ?\C-h)
-    (keyboard-translate ?\C-h ?\C-?)
-    (global-set-key "\M-?" 'help-command))
+  Were xemacs and [any 3rd party, locally-compiled] libraries [you use]
+  all compiled with the same ABI ( -o32, -n32, -64) and
+  mips2/mips3/mips4 flags, and are they appropriate for the machine in
+  question?  I know the IP30 implies an Octane, so it should be an R10K
+  chipset and above such nonsense, but I've seen the most astoundingly
+  bizzare crashes when somebody managed to compile with -mips4 and get
+  it to run on an R4400 or R5K system. ;)
 
 
-This checks whether the TTY erase char is C-h, and if it is, makes
-Control-H (Backspace) work sensibly, and moves help to Meta-? (ESC ?).
+  Also, since you're using gcc, try re-running fixincludes and *then*
+  rebuilding xemacs and [any] libraries - mismatched headers can do that
+  sort of thing to you with little or no clue what's wrong (often you
+  get screwed when one routine does an malloc(sizeof(foo_struct)) and
+  passes the result to something that things foo_struct is a bit bigger,
+  trashing memory....
 
 
-Note that you can probably also access help using F1.
+Here's typical crash backtrace.  With --pdump, this occurs usually at
+startup under X windows and xemacs -nw at least starts, while without
+--pdump a similar crash is observed during build.
 
 
-** Mail agents (VM, Gnus, rmail) cannot get new mail
+#0  0x0fa460b8 in kill () at regcomp.c:637
+637     regcomp.c: No such file or directory.
+        in regcomp.c
+(gdb) where
+#0  0x0fa460b8 in kill () at regcomp.c:637
+#1  0x10087f34 in fatal_error_signal ()
+(gdb) quit
 
 
-rmail and VM get new mail from /usr/spool/mail/$USER using a program
-called `movemail'.  This program interlocks with /bin/mail using the
-protocol defined by /bin/mail.
+This is confusing because there is no such file in the XEmacs
+distribution.  This is seen on (at least) the following configurations:
 
 
-There are two different protocols in general use.  One of them uses
-the `flock' system call.  The other involves creating a lock file;
-`movemail' must be able to write in /usr/spool/mail in order to do
-this.  You control which one is used by defining, or not defining, the
-macro MAIL_USE_FLOCK in config.h or the m- or s- file it includes.  IF
-YOU DON'T USE THE FORM OF INTERLOCKING THAT IS NORMAL ON YOUR SYSTEM,
-YOU CAN LOSE MAIL!
+uname -a: IRIX64 oct202 6.5 01091821 IP30
+XEmacs 21.4.9 "Informed Management" configured for `mips-sgi-irix6.5'.
+XEmacs 21.5-b9 "brussels sprouts"  configured for `mips-sgi-irix6.5'.
 
 
-If your system uses the lock file protocol, and fascist restrictions
-prevent ordinary users from writing the lock files in /usr/spool/mail,
-you may need to make `movemail' setgid to a suitable group such as
-`mail'.  To do this, use the following commands (as root) after doing
-the make install.
+*** On Irix 6.5, the MIPSpro compiler gets an internal compiler error
 
 
-       chgrp mail movemail
-       chmod 2755 movemail
+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).
 
 
-Installation normally copies movemail from the build directory to an
-installation directory which is usually under /usr/local/lib.  The
-installed copy of movemail is usually in the directory
-/usr/local/lib/emacs/VERSION/TARGET.  You must change the group and
-mode of the installed copy; changing the group and mode of the build
-directory copy is ineffective.
+*** Linking with -rpath on IRIX.
 
 
-** XEmacs crashes on Digital Unix within font-lock, or when dealing
-with large compilation buffers.
+Darrell Kindred <dkindred@cmu.edu> writes:
+There are a couple of problems [with use of -rpath with Irix ld], though:
 
 
-The default stack size under Digital Unix is rather small (2M as
-opposed to Solaris 8M), hosing the regexp code, which uses alloca()
-extensively, overflowing the stack when complex regexps are used.
-Workarounds:
+  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
+     entries for the --site-runtime-libraries.  This bug was
+     fixed sometime between 5.3 and 6.2.
 
 
-1) Increase your stack size, using `ulimit -s 8192' or a (t)csh
-   equivalent;
+  2. IRIX gcc 2.7.2 doesn't accept -rpath directly, so
+     it would have to be prefixed by -Xlinker or "-Wl,".
+     This would be fine, except that configure compiles with
+        ${CC-cc} $CFLAGS $LDFLAGS ...
+     rather than quoting $LDFLAGS with prefix-args, like
+     src/Makefile does.  So if you specify --x-libraries
+     or --site-runtime-libraries, you must use --use-gcc=no,
+     or configure will fail.
 
 
-2) Recompile regex.c with REGEX_MALLOC defined.
+*** On Irix 6.3, the SGI ld quits with segmentation fault when linking temacs
 
 
-** On Solaris, C-x doesn't get through to Emacs when you use the console.
+This occurs if you use the SGI linker version 7.1.  Installing the
+patch SG0001872 fixes this problem.
 
 
-This is a Solaris feature (at least on Intel x86 cpus).  Type C-r
-C-r C-t, to toggle whether C-x gets through to Emacs.
+*** On Irix 6.0, make tries (and fails) to build a program named unexelfsgi
 
 
-** VM appears to hang in large folders.
+A compiler bug inserts spaces into the string "unexelfsgi . o"
+in src/Makefile.  Edit src/Makefile, after configure is run,
+find that string, and take out the spaces.
 
 
-This is normal (trust us) when upgrading to VM-6.22 from earlier
-versions.  Let VM finish what it is doing and all will be well.
+Compiler fixes in Irix 6.0.1 should eliminate this problem.
 
 
-** Changes made to .el files do not take effect.
+*** On Irix 5.2, unexelfsgi.c can't find cmplrs/stsupport.h.
 
 
-You may have forgotten to recompile them into .elc files.  Then the
-old .elc files will be loaded, and your changes will not be seen.  To
-fix this, do `M-x byte-recompile-directory' and specify the directory
-that contains the Lisp files.
+The file cmplrs/stsupport.h was included in the wrong file set in the
+Irix 5.2 distribution.  You can find it in the optional fileset
+compiler_dev, or copy it from some other Irix 5.2 system.  A kludgy
+workaround is to change unexelfsgi.c to include sym.h instead of
+syms.h.
 
 
-Note that you will get a warning when loading a .elc file that is
-older than the corresponding .el file.
+*** Coredumping in Irix 6.2
 
 
-** Things which should be bold or italic (such as the initial
-copyright notice) are not.
+Pete Forman <gsez020@compo.bedford.waii.com> writes:
+A problem noted by myself and others (I've lost the references) was
+that XEmacs coredumped when the cut or copy toolbar buttons were
+pressed.  This has been fixed by loading the SGI patchset (Feb 98)
+without having to recompile XEmacs.
 
 
-The fonts of the "bold" and "italic" faces are generated from the font
-of the "default" face; in this way, your bold and italic fonts will
-have the appropriate size and family.  However, emacs can only be
-clever in this way if you have specified the default font using the
-XLFD (X Logical Font Description) format, which looks like
+My versions are XEmacs 20.3 (problem first noted in 19.15) and IRIX
+6.2, compiled using -n32.  I'd guess that the relevant individual
+patch was "SG0002580: multiple fixes for X libraries".  SGI recommends
+that the complete patch set be installed rather than parts of it.
 
 
-       *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
+** Digital UNIX/OSF/VMS
+*** On Digital UNIX, the DEC C compiler might have a problem compiling
+some files.
 
 
-if you use any of the other, less strict font name formats, some of
-which look like:
+In particular, src/extents.c and src/faces.c might cause the DEC C
+compiler to abort.  When this happens: cd src, compile the files by
+hand, cd .., and redo the "make" command.  When recompiling the files by
+hand, use the old C compiler for the following versions of Digital UNIX:
+  - V3.n: Remove "-migrate" from the compile command.
+  - V4.n: Add "-oldc" to the compile command.
 
 
-               lucidasanstypewriter-12
-and            fixed
-and            9x13
+A related compiler bug has been fixed by the DEC compiler team.  The
+new versions of the compiler should run fine.
 
 
-then emacs won't be able to guess the names of the "bold" and "italic"
-versions.  All X fonts can be referred to via XLFD-style names, so you
-should use those forms.  See the man pages for X(1), xlsfonts(1), and
-xfontsel(1).
+*** Under some versions of OSF XEmacs runs fine if built without
+optimization but will crash randomly if built with optimization.
 
 
-** The dumped Emacs crashes when run, trying to write pure data.
+Using 'cc -g' is not sufficient to eliminate all optimization.  Try
+'cc -g -O0' instead.
 
 
-Two causes have been seen for such problems.
+*** Compilation errors on VMS.
 
 
-1) On a system where getpagesize is not a system call, it is defined
-as a macro.  If the definition (in both unexec.c and malloc.c) is wrong,
-it can cause problems like this.  You might be able to find the correct
-value in the man page for a.out (5).
+Sorry, XEmacs does not work under VMS.  You might consider working on
+the port if you really want to have XEmacs work under VMS.
 
 
-2) Some systems allocate variables declared static among the
-initialized variables.  Emacs makes all initialized variables in most
-of its files pure after dumping, but the variables declared static and
-not initialized are not supposed to be pure.  On these systems you
-may need to add "#define static" to the m- or the s- file.
+** HP-UX
+*** On HPUX, the HP C compiler might have a problem compiling some files
+with optimization.
 
 
-** Reading and writing files is very very slow.
+Richard Cognot <cognot@ensg.u-nancy.fr> writes:
 
 
-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.
+  Had to drop once again to level 2 optimization, at least to
+  compile lstream.c. Otherwise, I get a "variable is void: \if"
+  problem while dumping (this is a problem I already reported
+  with vanilla hpux 10.01 and 9.07, which went away after
+  applying patches for the C compiler). Trouble is I still
+  haven't found the same patch for hpux 10.10, and I don't
+  remember the patch numbers. I think potential XEmacs builders
+  on HP should be warned about this.
 
 
-** The Emacs window disappears when you type M-q.
+*** I don't have `xmkmf' and `imake' on my HP.
 
 
-Some versions of the Open Look window manager interpret M-q as a quit
-command for whatever window you are typing at.  If you want to use
-Emacs with that window manager, you should try to configure the window
-manager to use some other command.   You can disable the
-shortcut keys entirely by adding this line to ~/.OWdefaults:
+  You can get these standard X tools by anonymous FTP to
+  hpcvaaz.cv.hp.com.  Essentially all X programs need these.
 
 
-    OpenWindows.WindowMenuAccelerators: False
+*** On HP-UX, problems with make
 
 
-** The `Alt' key doesn't behave as `Meta' when running DECwindows.
+Marcus Thiessel <marcus@xemacs.org>
 
 
-The default DEC keyboard mapping has the Alt keys set up to generate the
-keysym `Multi_key', which has a meaning to xemacs which is distinct from that
-of the `Meta_L' and `Meta-R' keysyms.  A second problem is that certain keys
-have the Mod2 modifier attached to them for no adequately explored reason.
-The correct fix is to pass this file to xmodmap upon starting X:
+  Some releases of XEmacs (e.g. 20.4) require GNU make to build
+  successfully. You don't need GNU make when building 21.x.
 
 
-       clear mod2
-       keysym Multi_key = Alt_L
-       add mod1 = Alt_L
-       add mod1 = Alt_R
+*** On HP-UX 9.05 XEmacs won't compile or coredump during the build.
 
 
-** The Compose key on a DEC keyboard does not work as Meta key.
+Marcus Thiessel <marcus@xemacs.org>
 
 
-This shell command should fix it:
+  This might be a sed problem. For your own safety make sure to use
+  GNU sed while dumping XEmacs.
 
 
-  xmodmap -e 'keycode 0xb1 = Meta_L'
 
 
-** When emacs starts up, I get lots of warnings about unknown keysyms.
+** SCO OpenServer
+*** 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:
 
 
-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 
-too old.  There is a copy of the MIT X11R5 XKeysymDB file in the emacs `etc'
-directory.  Try using that one.
+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:
 
 
-** My X resources used to work, and now some of them are being ignored.
+       /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
 
 
-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 
-emacs are now overriding your existing resources.  Copy and edit the
-resources in Emacs.ad as necessary.
+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:
 
 
-** I get complaints about the mapping of my HP keyboard at startup,
-but I haven't changed anything.
+       /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 default HP keymap is set up to have Mod1 assigned to two different keys:
-Meta_L and Mode_switch (even though there is not actually a Mode_switch key on
-the keyboard -- it uses an "imaginary" keycode.)  There actually is a reason
-for this, but it's not a good one.  The correct fix is to execute this command
-upon starting X:
+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
+have to 'cd src ; make  LD=icc' to avoid linker errors.
 
 
-       xmodmap -e 'remove mod1 = Mode_switch'
+The way I handle the build procedure is:
 
 
-** I have focus problems when I use `M-o' to switch to another screen
-without using the mouse.
+       /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 --compiler="icc"
+
+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
+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 ]
+       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
+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
+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
+fixed in XEmacs.
+
+In etc/ there are two files of note. emacskeys.sco and emacsstrs.sco.
+The comments at the top of emacskeys.sco describe its function, and
+the emacstrs.sco is a suitable candidate for /usr/lib/keyboard/strings
+to take advantage of the keyboard map in emacskeys.sco.
+
+Note: Much of the above entry is probably not valid for XEmacs 21.0
+and later.
+
+** Windows
+
+*** XEmacs complains "No such file or directory, diff"
+
+or "ispell" or other commands that seem related to whatever you just
+tried to do.
+
+There are a large number of common (in the sense that "everyone has
+these, really") Unix utilities that are not provided with XEmacs.  The
+GNU Project's implementations are available for Windows in the the
+Cygwin distribution (http://www.cygwin.com/), which also provides a
+complete Unix emulation environment (and thus makes ports of Unix
+utilities nearly trivial).  Another implementation is that from MinGW
+(http://www.mingw.org/msys.shtml).
+
+*** Weird crashes in pdump load or shortly after pdump load.
+
+This can happen with incremental linking.  Check if you have set
+SUPPORT_EDIT_AND_CONTINUE to non-zero in config.inc, which must allow
+incremental linking to be enabled (otherwise it's disabled).  Either turn
+this off, execute `nmake -f xemacs.mak clean', or manually remove
+`temacs.exe' and `xemacs.exe'.
+
+** Cygwin
+
+See also Intel Architecture General, above.
+
+*** Signal 11 when building or running a dumped XEmacs.
+
+This appears to happen when using the traditional dumping mechanism and
+the system malloc.  Andy Piper writes:
+
+  Traditional dumping on Cygwin relies on using gmalloc (there are specific
+  hacks in our version of gmalloc to support this), I suspect using sysmalloc
+  is the problem.
+
+Try configuring with pdump or without system malloc.
+
+*** 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
+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, under old
+versions of Cygwin.  The default Cygwin shell (/bin/sh.exe) is ash, which
+appears to work in most circumstances but has some weird failure modes.
+You may need to replace the symlink with bash.exe. ]] This doesn't appear
+to affect Cygwin any longer, and /bin/sh.exe is no longer a symlink in
+any case.
+
+*** 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).
+
+*** The info files will not build.
+
+makeinfo that ships with old versions of Cygwin doesn't work.
+Upgrade to the latest Cygwin version.
+
+*** XEmacs hangs while attempting to rebuild the .elc files.
+
+Check to make sure you're not configuring with rel-alloc.  The relocating
+allocator does not currently work under Cygwin due to bugs in Cygwin's
+mmap().
+
+*** Trying to build with X, but X11 not detected.
+
+This is usually because xmkmf is not in your path or because you are
+using the default Cygwin shell. (See above.)
+
+
+* Problems with running XEmacs
+==============================
+** General
+
+*** XEmacs consistently crashes in a particular strange place.
+
+One known case is on Red Hat Linux, compiled with GCC, attempting to
+render PNG images.  The problem is that XEmacs code is not compliant
+with ANSI rules about aliasing.  Adding -fno-strict-aliasing to CFLAGS
+may help (or the equivalent for your compiler).  (Some versions of
+XEmacs may already do this automatically, but if you specify CFLAGS or
+--cflags yourself, you will have to add this flag by hand.)
+
+If you diagnose this bug for some other symptoms or systems, please
+let us know (if you can send mail from the affected system, use M-x
+report-xemacs-bug) so we can update this entry.
+
+*** Changes made to .el files do not take effect.
+
+You may have forgotten to recompile them into .elc files.  Then the
+old .elc files will be loaded, and your changes will not be seen.  To
+fix this, do `M-x byte-recompile-directory' and specify the directory
+that contains the Lisp files.
+
+Note that you will get a warning when loading a .elc file that is
+older than the corresponding .el file.
+
+*** VM appears to hang in large folders.
+
+This is normal (trust us) when upgrading to VM-6.22 from earlier
+versions.  Let VM finish what it is doing and all will be well.
+
+*** Starting with 21.4.x, killing text is absurdly slow.
+
+See FAQ Q3.10.6.  Should be available on the web near
+http://www.xemacs.org/faq/xemacs-faq.html#SEC160.
+
+*** 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.
+
+** General Unix
+
+*** You type Control-H (Backspace) expecting to delete characters.
+
+Emacs has traditionally used Control-H for help; unfortunately this
+interferes with its use as Backspace on TTY's.  As of XEmacs 21,
+XEmacs looks at the "erase" setting of TTY structures and maps C-h to
+backspace when erase is set to C-h.  This is sort of a special hack,
+but it makes it possible for you to use the standard:
+
+    stty erase ^H
+
+to get your backspace key to erase characters.  The erase setting is
+recorded in the Lisp variable `tty-erase-char', which you can use to
+tune the settings in your .emacs.
+
+A major drawback of this is that when C-h becomes backspace, it no
+longer invokes help.  In that case, you need to use f1 for help, or
+bind another key.  An example of the latter is the following code,
+which moves help to Meta-? (ESC ?):
+
+    (global-set-key "\M-?" 'help-command)
+
+*** 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.)
+
+*** Mail agents (VM, Gnus, rmail) cannot get new mail
+
+rmail and VM get new mail from /usr/spool/mail/$USER using a program
+called `movemail'.  This program interlocks with /bin/mail using the
+protocol defined by /bin/mail.
+
+There are two different protocols in general use.  One of them uses
+the `flock' system call.  The other involves creating a lock file;
+`movemail' must be able to write in /usr/spool/mail in order to do
+this.  You control which one is used by defining, or not defining, the
+macro MAIL_USE_FLOCK in config.h or the m- or s- file it includes.  IF
+YOU DON'T USE THE FORM OF INTERLOCKING THAT IS NORMAL ON YOUR SYSTEM,
+YOU CAN LOSE MAIL!
+
+If your system uses the lock file protocol, and fascist restrictions
+prevent ordinary users from writing the lock files in /usr/spool/mail,
+you may need to make `movemail' setgid to a suitable group such as
+`mail'.  To do this, use the following commands (as root) after doing
+the make install.
+
+       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
+installed copy of movemail is usually in the directory
+/usr/local/lib/emacs/VERSION/TARGET.  You must change the group and
+mode of the installed copy; changing the group and mode of the build
+directory copy is ineffective.
+
+*** Things which should be bold or italic (such as the initial
+copyright notice) are not.
+
+The fonts of the "bold" and "italic" faces are generated from the font
+of the "default" face; in this way, your bold and italic fonts will
+have the appropriate size and family.  However, emacs can only be
+clever in this way if you have specified the default font using the
+XLFD (X Logical Font Description) format, which looks like
+
+       *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
+
+if you use any of the other, less strict font name formats, some of
+which look like:
+
+               lucidasanstypewriter-12
+and            fixed
+and            9x13
+
+then emacs won't be able to guess the names of the "bold" and "italic"
+versions.  All X fonts can be referred to via XLFD-style names, so you
+should use those forms.  See the man pages for X(1), xlsfonts(1), and
+xfontsel(1).
+
+*** The dumped Emacs crashes when run, trying to write pure data.
+
+Two causes have been seen for such problems.
+
+1) On a system where getpagesize is not a system call, it is defined
+as a macro.  If the definition (in both unexec.c and malloc.c) is wrong,
+it can cause problems like this.  You might be able to find the correct
+value in the man page for a.out (5).
+
+2) Some systems allocate variables declared static among the
+initialized variables.  Emacs makes all initialized variables in most
+of its files pure after dumping, but the variables declared static and
+not initialized are not supposed to be pure.  On these systems you
+may need to add "#define static" to the m- or the s- file.
+
+*** Reading and writing files is very very slow.
+
+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.
+
+*** 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
+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.Xresources).  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.
+
+*** I have focus problems when I use `M-o' to switch to another screen
+without using the mouse.
 
 The focus issues with a program like XEmacs, which has multiple
 homogeneous top-level windows, are very complicated, and as a result,
 
 The focus issues with a program like XEmacs, which has multiple
 homogeneous top-level windows, are very complicated, and as a result,
@@ -687,7 +1079,7 @@ on another screen in point-to-type mode.  This is not ICCCM-compliant
 behavior.  Implementing such policy is the responsibility of the
 window manager itself, it is not legal for a client to do this.)
 
 behavior.  Implementing such policy is the responsibility of the
 window manager itself, it is not legal for a client to do this.)
 
-** Emacs spontaneously displays "I-search: " at the bottom of the screen.
+*** Emacs spontaneously displays "I-search: " at the bottom of the screen.
 
 This means that Control-S/Control-Q (XON/XOFF) "flow control" is being
 used.  C-s/C-q flow control is bad for Emacs editors because it takes
 
 This means that Control-S/Control-Q (XON/XOFF) "flow control" is being
 used.  C-s/C-q flow control is bad for Emacs editors because it takes
@@ -758,604 +1150,1050 @@ automatically.  Here is an example:
 
 (enable-flow-control-on "vt200" "vt300" "vt101" "vt131")
 
 
 (enable-flow-control-on "vt200" "vt300" "vt101" "vt131")
 
-If this isn't quite correct (e.g. you have a mixture of flow-control hobbled
-and good vt200 terminals), you can still run enable-flow-control
-manually.
+If this isn't quite correct (e.g. you have a mixture of flow-control hobbled
+and good vt200 terminals), you can still run enable-flow-control
+manually.
+
+I have no intention of ever redesigning the Emacs command set for the
+assumption that terminals use C-s/C-q flow control.  XON/XOFF flow
+control technique is a bad design, and terminals that need it are bad
+merchandise and should not be purchased.  Now that X is becoming
+widespread, XON/XOFF seems to be on the way out.  If you can get some
+use out of GNU Emacs on inferior terminals, more power to you, but I
+will not make Emacs worse for properly designed systems for the sake
+of inferior systems.
+
+*** Control-S and Control-Q commands are ignored completely.
+
+For some reason, your system is using brain-damaged C-s/C-q flow
+control despite Emacs's attempts to turn it off.  Perhaps your
+terminal is connected to the computer through a concentrator
+that wants to use flow control.
+
+You should first try to tell the concentrator not to use flow control.
+If you succeed in this, try making the terminal work without
+flow control, as described in the preceding section.
+
+If that line of approach is not successful, map some other characters
+into C-s and C-q using keyboard-translate-table.  The example above
+shows how to do this with C-^ and C-\.
+
+*** Control-S and Control-Q commands are ignored completely on a net
+connection.
+
+Some versions of rlogin (and possibly telnet) do not pass flow
+control characters to the remote system to which they connect.
+On such systems, emacs on the remote system cannot disable flow
+control on the local system.
+
+One way to cure this is to disable flow control on the local host
+(the one running rlogin, not the one running rlogind) using the
+stty command, before starting the rlogin process.  On many systems,
+`stty start u stop u' will do this.
+
+Some versions of tcsh will prevent even this from working.  One way
+around this is to start another shell before starting rlogin, and
+issue the stty command to disable flow control from that shell.
+
+If none of these methods work, the best solution is to type
+`M-x enable-flow-control' at the beginning of your emacs session, or
+if you expect the problem to continue, add a line such as the
+following to your .emacs (on the host running rlogind):
+
+(enable-flow-control-on "vt200" "vt300" "vt101" "vt131")
+
+See the entry about spontaneous display of I-search (above) for more
+info.
+
+*** TTY redisplay is slow.
+
+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
+slow.
+
+If you are interested in fixing this, please let us know at
+<xemacs-beta@xemacs.org>.
+
+*** Screen is updated wrong, but only on one kind of terminal.
+
+This could mean that the termcap entry you are using for that terminal
+is wrong, or it could mean that Emacs has a bug handing the
+combination of features specified for that terminal.
+
+The first step in tracking this down is to record what characters
+Emacs is sending to the terminal.  Execute the Lisp expression
+(open-termscript "./emacs-script") to make Emacs write all terminal
+output into the file ~/emacs-script as well; then do what makes the
+screen update wrong, and look at the file and decode the characters
+using the manual for the terminal.  There are several possibilities:
+
+1) The characters sent are correct, according to the terminal manual.
+
+In this case, there is no obvious bug in Emacs, and most likely you
+need more padding, or possibly the terminal manual is wrong.
+
+2) The characters sent are incorrect, due to an obscure aspect of the
+   terminal behavior not described in an obvious way by termcap.
+
+This case is hard.  It will be necessary to think of a way for Emacs
+to distinguish between terminals with this kind of behavior and other
+terminals that behave subtly differently but are classified the same
+by termcap; or else find an algorithm for Emacs to use that avoids the
+difference.  Such changes must be tested on many kinds of terminals.
+
+3) The termcap entry is wrong.
+
+See the file etc/TERMS for information on changes that are known to be
+needed in commonly used termcap entries for certain terminals.
+
+4) The characters sent are incorrect, and clearly cannot be right for
+   any terminal with the termcap entry you were using.
+
+This is unambiguously an Emacs bug, and can probably be fixed in
+termcap.c, terminfo.c, tparam.c, cm.c, redisplay-tty.c,
+redisplay-output.c, or redisplay.c.
+
+*** My buffers are full of \000 characters or otherwise corrupt.
+
+Some compilers have trouble with gmalloc.c and ralloc.c; try recompiling
+without optimization.  If that doesn't work, try recompiling with
+SYSTEM_MALLOC defined, and/or with REL_ALLOC undefined.
+
+*** A position you specified in .Xresources is ignored, using twm.
+
+twm normally ignores "program-specified" positions.
+You can tell it to obey them with this command in your `.twmrc' file:
+
+  UsePPosition "on"            #allow clents to request a position
+
+*** With M-x enable-flow-control, you need to type C-\ twice to do
+incremental search--a single C-\ gets no response.
+
+This has been traced to communicating with your machine via kermit,
+with C-\ as the kermit escape character.  One solution is to use
+another escape character in kermit.  One user did
+
+   set escape-character 17
+
+in his .kermrc file, to make C-q the kermit escape character.
+
+*** The Motif version of Emacs paints the screen a solid color.
+
+This has been observed to result from the following X resource:
+
+   Emacs*default.attributeFont:        -*-courier-medium-r-*-*-*-140-*-*-*-*-iso8859-*
+
+That the resource has this effect indicates a bug in something, but we
+do not yet know what.  If it is an Emacs bug, we hope someone can
+explain what the bug is so we can fix it.  In the mean time, removing
+the resource prevents the problem.
+
+*** After running emacs once, subsequent invocations crash.
+
+Some versions of SVR4 have a serious bug in the implementation of the
+mmap () system call in the kernel; this causes emacs to run correctly
+the first time, and then crash when run a second time.
+
+Contact your vendor and ask for the mmap bug fix; in the mean time,
+you may be able to work around the problem by adding a line to your
+operating system description file (whose name is reported by the
+configure script) that reads:
+#define SYSTEM_MALLOC
+This makes Emacs use memory less efficiently, but seems to work around
+the kernel bug.
+
+*** Inability to send an Alt-modified key, when Emacs is communicating
+directly with an X server.
+
+If you have tried to bind an Alt-modified key as a command, and it
+does not work to type the command, the first thing you should check is
+whether the key is getting through to Emacs.  To do this, type C-h c
+followed by the Alt-modified key.  C-h c should say what kind of event
+it read.  If it says it read an Alt-modified key, then make sure you
+have made the key binding correctly.
+
+If C-h c reports an event that doesn't have the Alt modifier, it may
+be because your X server has no key for the Alt modifier.  The X
+server that comes from MIT does not set up the Alt modifier by
+default.
+
+If your keyboard has keys named Alt, you can enable them as follows:
+
+    xmodmap -e 'add mod2 = Alt_L'
+    xmodmap -e 'add mod2 = Alt_R'
+
+If the keyboard has just one key named Alt, then only one of those
+commands is needed.  The modifier `mod2' is a reasonable choice if you
+are using an unmodified MIT version of X.  Otherwise, choose any
+modifier bit not otherwise used.
+
+If your keyboard does not have keys named Alt, you can use some other
+keys.  Use the keysym command in xmodmap to turn a function key (or
+some other 'spare' key) into Alt_L or into Alt_R, and then use the
+commands show above to make them modifier keys.
+
+Note that if you have Alt keys but no Meta keys, Emacs translates Alt
+into Meta.  This is because of the great importance of Meta in Emacs.
+
+*** In Shell mode, you get a ^M at the end of every line.
+
+This happens to people who use tcsh, because it is trying to be too
+smart.  It sees that the Shell uses terminal type `unknown' and turns
+on the flag to output ^M at the end of each line.  You can fix the
+problem by adding this to your .cshrc file:
+
+    if ($?EMACS) then
+        if ($EMACS == "t") then
+            unset edit
+            stty  -icrnl -onlcr -echo susp ^Z
+        endif
+    endif
+
+*** An error message such as `X protocol error: BadMatch (invalid
+parameter attributes) on protocol request 93'.
+
+This comes from having an invalid X resource, such as
+   emacs*Cursor:   black
+(which is invalid because it specifies a color name for something
+that isn't a color.)
+
+The fix is to correct your X resources.
+
+*** Once you pull down a menu from the menubar, it won't go away.
+
+It has been claimed that this is caused by a bug in certain very old
+(1990?)  versions of the twm window manager.  It doesn't happen with
+recent vintages, or with other window managers.
+
+*** Emacs ignores the "help" key when running OLWM.
+
+OLWM grabs the help key, and retransmits it to the appropriate client
+using XSendEvent.  Allowing emacs to react to synthetic events is a
+security hole, so this is turned off by default.  You can enable it by
+setting the variable x-allow-sendevents to t.  You can also cause fix
+this by telling OLWM to not grab the help key, with the null binding
+"OpenWindows.KeyboardCommand.Help:".
+
+*** Programs running under terminal emulator do not recognize `emacs'
+terminal type.
+
+The cause of this is a shell startup file that sets the TERMCAP
+environment variable.  The terminal emulator uses that variable to
+provide the information on the special terminal type that Emacs
+emulates.
+
+Rewrite your shell startup file so that it does not change TERMCAP
+in such a case.  You could use the following conditional which sets
+it only if it is undefined.
+
+    if ( ! ${?TERMCAP} ) setenv TERMCAP ~/my-termcap-file
+
+Or you could set TERMCAP only when you set TERM--which should not
+happen in a non-login shell.
+
+*** The popup menu appears at the bottom/right of my screen.
+
+You probably have something like the following in your ~/.Xresources
+
+       Emacs.geometry:         81x56--9--1
+
+Use the following instead
+
+       Emacs*EmacsFrame.geometry:              81x56--9--1
+
+*** When I try to use the PostgreSQL functions, I get a message about
+undefined symbols.
+
+The only known case in which this happens is if you are using gcc, you
+configured with --error-checking=all and --with-modules, and you
+compiled with no optimization.  If you encounter this problem in any
+other situation, please inform xemacs-beta@xemacs.org.
+
+This problem stems from a gcc bug.  With no optimization, functions
+declared `extern inline' sometimes are not completely compiled away.  An
+undefined symbol with the function's name is put into the resulting
+object file.  In this case, when the postgresql module is loaded, the
+linker is unable to resolve that symbol, so the module load fails.  The
+workaround is to recompile the module with optimization turned on.  Any
+optimization level, including -Os, appears to work.
+
+*** C-z just refreshes the screen instead of suspending Emacs.
+
+You are probably using a shell that doesn't support job control, even
+though the system itself is capable of it.  Try using a different
+shell.
+
+** 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.
+
+The solution is to include in your .Xresources the lines:
+
+   *aixterm.Translations: #override <Key>BackSpace: string(0x7f)
+   aixterm*ttyModes: erase ^?
+
+This makes your Backspace key send DEL (ASCII 127).
+
+*** On AIX 4, some programs fail when run in a Shell buffer
+with an error message like No terminfo entry for "unknown".
+
+On AIX, many terminal type definitions are not installed by default.
+`unknown' is one of them.  Install the "Special Generic Terminal
+Definitions" to make them defined.
+
+*** On AIX, you get this message when running Emacs:
+
+    Could not load program emacs
+    Symbol smtcheckinit in csh is undefined
+    Error was: Exec format error
+
+or this one:
+
+    Could not load program .emacs
+    Symbol _system_con in csh is undefined
+    Symbol _fp_trapsta in csh is undefined
+    Error was: Exec format error
+
+These can happen when you try to run on AIX 3.2.5 a program that was
+compiled with 3.2.4.  The fix is to recompile.
+
+*** Trouble using ptys on AIX.
+
+People often install the pty devices on AIX incorrectly.
+Use `smit pty' to reinstall them properly.
+
+
+** SunOS/Solaris
+*** The Emacs window disappears when you type M-q.
+
+Some versions of the Open Look window manager interpret M-q as a quit
+command for whatever window you are typing at.  If you want to use
+Emacs with that window manager, you should try to configure the window
+manager to use some other command.   You can disable the
+shortcut keys entirely by adding this line to ~/.OWdefaults:
+
+    OpenWindows.WindowMenuAccelerators: False
+
+*** When Emacs tries to ring the bell, you get an error like
+
+       audio: sst_open: SETQSIZE" Invalid argument
+       audio: sst_close: SETREG MMR2, Invalid argument
+
+you have probably compiled using an ANSI C compiler, but with non-ANSI
+include files.  In particular, on Suns, the file
+/usr/include/sun/audioio.h uses the _IOW macro to define the constant
+AUDIOSETQSIZE.  _IOW in turn uses a K&R preprocessor feature that is
+now explicitly forbidden in ANSI preprocessors, namely substitution
+inside character constants.  All ANSI C compilers must provide a
+workaround for this problem.  Lucid's C compiler is shipped with a new
+set of system include files.  If you are using GCC, there is a script
+called fixincludes that creates new versions of some system include
+files that use this obsolete feature.
+
+*** On Solaris 2.6, XEmacs dumps core when exiting.
+
+This happens if you're XEmacs is running on the same machine as the X
+server, and the optimized memory transport has been turned on by
+setting the environment variable XSUNTRANSPORT.  The crash occurs
+during the call to XCloseDisplay.
+
+If this describes your situation, you need to undefine the
+XSUNTRANSPORT environment variable.
+
+*** On Solaris, C-x doesn't get through to Emacs when you use the console.
+
+This is a Solaris feature (at least on Intel x86 cpus).  Type C-r
+C-r C-t, to toggle whether C-x gets through to Emacs.
+
+*** On Solaris 2.4, Dired hangs and C-g does not work.  Or Emacs hangs
+forever waiting for termination of a subprocess that is a zombie.
+
+casper@fwi.uva.nl says the problem is in X11R6.  Rebuild libX11.so
+after changing the file xc/config/cf/sunLib.tmpl.  Change the lines
+
+    #if ThreadedX
+    #define SharedX11Reqs -lthread
+    #endif
+
+to:
+
+    #if OSMinorVersion < 4
+    #if ThreadedX
+    #define SharedX11Reqs -lthread
+    #endif
+    #endif
+
+Be sure also to edit x/config/cf/sun.cf so that OSMinorVersion is 4
+(as it should be for Solaris 2.4).  The file has three definitions for
+OSMinorVersion: the first is for x86, the second for SPARC under
+Solaris, and the third for SunOS 4.  Make sure to update the
+definition for your type of machine and system.
+
+Then do `make Everything' in the top directory of X11R6, to rebuild
+the makefiles and rebuild X.  The X built this way work only on
+Solaris 2.4, not on 2.3.
+
+For multithreaded X to work it necessary to install patch
+101925-02 to fix problems in header files [2.4].  You need
+to reinstall gcc or re-run just-fixinc after installing that
+patch.
+
+However, Frank Rust <frust@iti.cs.tu-bs.de> used a simpler solution:
+he changed
+    #define ThreadedX          YES
+to
+    #define ThreadedX          NO
+in sun.cf and did `make World' to rebuild X11R6.  Removing all
+`-DXTHREAD*' flags and `-lthread' entries from lib/X11/Makefile and
+typing 'make install' in that directory also seemed to work.
+
+*** On SunOS 4.1.3, Emacs unpredictably crashes in _yp_dobind_soft.
+
+This happens if you configure Emacs specifying just `sparc-sun-sunos4'
+on a system that is version 4.1.3.  You must specify the precise
+version number (or let configure figure out the configuration, which
+it can do perfectly well for SunOS).
+
+*** Mail is lost when sent to local aliases.
+
+Many emacs mail user agents (VM and rmail, for instance) use the
+sendmail.el library.  This library can arrange for mail to be
+delivered by passing messages to the /usr/lib/sendmail (usually)
+program .  In doing so, it passes the '-t' flag to sendmail, which
+means that the name of the recipient of the message is not on the
+command line and, therefore, that sendmail must parse the message to
+obtain the destination address.
+
+There is a bug in the SunOS4.1.1 and SunOS4.1.3 versions of sendmail.
+In short, when given the -t flag, the SunOS sendmail won't recognize
+non-local (i.e. NIS) aliases.  It has been reported that the Solaris
+2.x versions of sendmail do not have this bug.  For those using SunOS
+4.1, the best fix is to install sendmail V8 or IDA sendmail (which
+have other advantages over the regular sendmail as well).  At the time
+of this writing, these official versions are available:
+
+ Sendmail V8 on ftp.cs.berkeley.edu in /ucb/sendmail:
+   sendmail.8.6.9.base.tar.Z (the base system source & documentation)
+   sendmail.8.6.9.cf.tar.Z   (configuration files)
+   sendmail.8.6.9.misc.tar.Z (miscellaneous support programs)
+   sendmail.8.6.9.xdoc.tar.Z (extended documentation, with postscript)
+
+ IDA sendmail on vixen.cso.uiuc.edu in /pub:
+   sendmail-5.67b+IDA-1.5.tar.gz
+
+*** Emacs fails to understand most Internet host names, even though
+the names work properly with other programs on the same system.
+  Emacs won't work with X-windows if the value of DISPLAY is HOSTNAME:0.
+  Gnus can't make contact with the specified host for nntp.
+
+This typically happens on Suns and other systems that use shared
+libraries.  The cause is that the site has installed a version of the
+shared library which uses a name server--but has not installed a
+similar version of the unshared library which Emacs uses.
+
+The result is that most programs, using the shared library, work with
+the nameserver, but Emacs does not.
 
 
-I have no intention of ever redesigning the Emacs command set for the
-assumption that terminals use C-s/C-q flow control.  XON/XOFF flow
-control technique is a bad design, and terminals that need it are bad
-merchandise and should not be purchased.  Now that X is becoming
-widespread, XON/XOFF seems to be on the way out.  If you can get some
-use out of GNU Emacs on inferior terminals, more power to you, but I
-will not make Emacs worse for properly designed systems for the sake
-of inferior systems.
+The fix is to install an unshared library that corresponds to what you
+installed in the shared library, and then relink Emacs.
 
 
-** Control-S and Control-Q commands are ignored completely.
+On SunOS 4.1, simply define HAVE_RES_INIT.
 
 
-For some reason, your system is using brain-damaged C-s/C-q flow
-control despite Emacs's attempts to turn it off.  Perhaps your
-terminal is connected to the computer through a concentrator
-that wants to use flow control.
+If you have already installed the name resolver in the file libresolv.a,
+then you need to compile Emacs to use that library.  The easiest way to
+do this is to add to config.h a definition of LIBS_SYSTEM, LIBS_MACHINE
+or LIB_STANDARD which uses -lresolv.  Watch out!  If you redefine a macro
+that is already in use in your configuration to supply some other libraries,
+be careful not to lose the others.
 
 
-You should first try to tell the concentrator not to use flow control.
-If you succeed in this, try making the terminal work without
-flow control, as described in the preceding section.
+Thus, you could start by adding this to config.h:
 
 
-If that line of approach is not successful, map some other characters
-into C-s and C-q using keyboard-translate-table.  The example above
-shows how to do this with C-^ and C-\.
+#define LIBS_SYSTEM -lresolv
 
 
-** Control-S and Control-Q commands are ignored completely on a net
-connection.
+Then if this gives you an error for redefining a macro, and you see that
+the s- file defines LIBS_SYSTEM as -lfoo -lbar, you could change config.h
+again to say this:
 
 
-Some versions of rlogin (and possibly telnet) do not pass flow
-control characters to the remote system to which they connect.
-On such systems, emacs on the remote system cannot disable flow
-control on the local system.
+#define LIBS_SYSTEM -lresolv -lfoo -lbar
 
 
-One way to cure this is to disable flow control on the local host
-(the one running rlogin, not the one running rlogind) using the
-stty command, before starting the rlogin process.  On many systems,
-`stty start u stop u' will do this.
+*** With process-connection-type set to t, each line of subprocess
+output is terminated with a ^M, making ange-ftp and GNUS not work.
 
 
-Some versions of tcsh will prevent even this from working.  One way
-around this is to start another shell before starting rlogin, and
-issue the stty command to disable flow control from that shell.
+On SunOS systems, this problem has been seen to be a result of an
+incomplete installation of gcc 2.2 which allowed some non-ANSI
+compatible include files into the compilation.  In particular this
+affected virtually all ioctl() calls.
 
 
-If none of these methods work, the best solution is to type
-`M-x enable-flow-control' at the beginning of your emacs session, or
-if you expect the problem to continue, add a line such as the
-following to your .emacs (on the host running rlogind):
 
 
-(enable-flow-control-on "vt200" "vt300" "vt101" "vt131")
+** Linux
+*** XEmacs crashes on startup, in make-frame.
 
 
-See the entry about spontaneous display of I-search (above) for more
-info.
+Typically the Lisp backtrace includes
 
 
-** TTY redisplay is slow.
+   make-frame(nil #<x-device on ":0.0" 0x2558>)
 
 
-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 
-slow.
+somewhere near the top.  The 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 the --pdump or --ldflags='-z nocombreloc' options
+to configure.  Recent 21.4 and 12.5 autodetect this in configure.
 
 
-If you are interested in fixing this, please let us know at
-<xemacs@xemacs.org>.
+Red Hat and SuSE (at least) distributed a prerelease version of ld
+(versions around 2.11.90.x.y) where autodetection is impossible.  The
+recommended procedure is to upgrade to binutils >= 2.12 and rerun
+configure.  Otherwise you must apply the flags by hand.  --pdump is
+recommended.
 
 
-** Screen is updated wrong, but only on one kind of terminal.
+*** I want XEmacs to use the Alt key, not the XXX key, for Meta commands
 
 
-This could mean that the termcap entry you are using for that terminal
-is wrong, or it could mean that Emacs has a bug handing the
-combination of features specified for that terminal.
+For historical reasons, XEmacs looks for a Meta key, then an Alt key.
+It binds Meta commands to the X11 modifier bit attached to the first
+of these it finds.  On PCs, the Windows key is often assigned the Meta
+bit, but many desktop environments go to great lengths to get all apps
+to use the Alt key, and reserve the Windows key to (sensibly enough)
+the window manager.
 
 
-The first step in tracking this down is to record what characters
-Emacs is sending to the terminal.  Execute the Lisp expression
-(open-termscript "./emacs-script") to make Emacs write all terminal
-output into the file ~/emacs-script as well; then do what makes the
-screen update wrong, and look at the file and decode the characters
-using the manual for the terminal.  There are several possibilities:
+One correct way to implement this was suggested on comp.emacs.xemacs
+(by Kilian Foth and in more detail by Michael Piotrowski): unmap the
+Meta modifier using xmodmap or xkb, and then map the Meta/Windows key
+to the Super or Hyper keysym and an appropriate mod bit.  XEmacs will
+not find the Meta keysym, and default to using the Alt key for Meta
+keybindings.  Typically few applications use the (X11) Meta modifier;
+it is tedious but not too much so to teach the ones you need to use
+Super instead of Meta.  There may be further useful hints in the
+discussion of keymapping on non-Linux platforms.
 
 
-1) The characters sent are correct, according to the terminal manual.
+*** The color-gcc wrapper
 
 
-In this case, there is no obvious bug in Emacs, and most likely you
-need more padding, or possibly the terminal manual is wrong.
+This wrapper colorizes the error messages from gcc.  By default XEmacs
+does not interpret the escape sequences used to generate colors,
+resulting in a cluttered, hard-to-read buffer.  You can remove the
+wrapper, or defeat the wrapper colorization in Emacs process buffers
+by editing the "nocolor" attribute in /etc/colorgccrc:
 
 
-2) The characters sent are incorrect, due to an obscure aspect of the
-   terminal behavior not described in an obvious way by termcap.
+$ diff -u /etc/colorgccrc.old /etc/colorgccrc
+--- /etc/colorgccrc.old Tue Dec 26 02:17:46 2000
++++ /etc/colorgccrc     Tue Dec 26 02:15:48 2000
+@@ -34,1 +34,1 @@
+-nocolor: dumb
++nocolor: dumb emacs
 
 
-This case is hard.  It will be necessary to think of a way for Emacs
-to distinguish between terminals with this kind of behavior and other
-terminals that behave subtly differently but are classified the same
-by termcap; or else find an algorithm for Emacs to use that avoids the
-difference.  Such changes must be tested on many kinds of terminals.
+If you want colorization in your Emacs buffers, you may get good
+results from the ansi-color.el library:
 
 
-3) The termcap entry is wrong.
+http://www.geocities.com/kensanata/color-emacs.html#ansicolors
 
 
-See the file etc/TERMS for information on changes that are known to be
-needed in commonly used termcap entries for certain terminals.
+This is written for the mainline GNU Emacs but the author has made
+efforts to adapt it to XEmacs.  YMMV.
 
 
-4) The characters sent are incorrect, and clearly cannot be right for
-   any terminal with the termcap entry you were using.
+*** Slow startup on Linux.
 
 
-This is unambiguously an Emacs bug, and can probably be fixed in
-termcap.c, terminfo.c, tparam.c, cm.c, redisplay-tty.c,
-redisplay-output.c, or redisplay.c.
+People using systems based on the Linux kernel sometimes report that
+startup takes 10 to 15 seconds longer than `usual'.  There are two
+problems, one older, one newer.
 
 
-** Your Delete key sends a Backspace to the terminal, using an AIXterm.
+**** Old problem: IPv4 host lookup
 
 
-The solution is to include in your .Xdefaults the lines:
+On older systems, this is because Emacs looks up the host name when it
+starts.  Normally, this takes negligible time; the extra delay is due
+to improper system configuration.  (Recent Linux distros usually have
+this configuration correct "out of the box".)  This problem can occur
+for both networked and non-networked machines.
 
 
-   *aixterm.Translations: #override <Key>BackSpace: string(0x7f)
-   aixterm*ttyModes: erase ^?
+Here is how to fix the configuration.  It requires being root.
 
 
-This makes your Backspace key send DEL (ASCII 127).
+***** Networked Case
 
 
-** With certain fonts, when the cursor appears on a character, the
-character doesn't appear--you get a solid box instead.
+First, make sure the files `/etc/hosts' and `/etc/host.conf' both
+exist.  The first line in the `/etc/hosts' file should look like this
+(replace HOSTNAME with your host name):
 
 
-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.
+    127.0.0.1      localhost HOSTNAME
 
 
-** On SunOS 4.1.3, Emacs unpredictably crashes in _yp_dobind_soft.
+Also make sure that the `/etc/host.conf' files contains the following
+lines:
 
 
-This happens if you configure Emacs specifying just `sparc-sun-sunos4'
-on a system that is version 4.1.3.  You must specify the precise
-version number (or let configure figure out the configuration, which
-it can do perfectly well for SunOS).
+    order hosts, bind
+    multi on
 
 
-** On Irix, I don't see the toolbar icons and I'm getting lots of
-entries in the warnings buffer.
+Any changes, permanent and temporary, to the host name should be
+indicated in the `/etc/hosts' file, since it acts a limited local
+database of addresses and names (e.g., some SLIP connections
+dynamically allocate ip addresses).
 
 
-SGI ships a really old Xpm library in /usr/lib which does not work at
-all well with XEmacs.  The solution is to install your own copy of the
-latest version of Xpm somewhere and then use the --site-includes and
---site-libraries flags to tell configure where to find it.
+***** Non-Networked Case
 
 
-** On HPUX, you get "poll: Interrupted system call" message in the
-window where XEmacs was launched.
+The solution described in the networked case applies here as well.
+However, if you never intend to network your machine, you can use a
+simpler solution: create an empty `/etc/host.conf' file.  The command
+`touch /etc/host.conf' suffices to create the file.  The `/etc/hosts'
+file is not necessary with this approach.
 
 
-Richard Cognot <cognot@ensg.u-nancy.fr> writes:
+**** New problem: IPv6 CNAME lookup
 
 
-  I get a very strange problem when linking libc.a dynamically: every
-  event (mouse, keyboard, expose...) results in a "poll: Interrupted
-  system call" message in the window where XEmacs was
-  launched. Forcing a static link of libc.a alone by adding
-  /usr/lib/libc.a at the end of the link line solves this. Note that
-  my 9.07 build of 19.14b17 and my (old) build of 19.13 both exhibit
-  the same behaviour. I've tried various hpux patches to no avail. If
-  this problem cannot be solved before the release date, binary kits
-  for HP *must* be linked statically against libc, otherwise this
-  problem will show up. (This is directed at whoever will volunteer
-  for this kit, as I won't be available to do it, unless 19.14 gets
-  delayed until mid-june ;-). I think this problem will be an FAQ soon
-  after the release otherwise.
+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] according the people at
+WIDE who know about IPv6.
 
 
-Note: The above entry is probably not valid for XEmacs 21.2 and
-later.
+***** Robust network case
 
 
-** When Emacs tries to ring the bell, you get an error like
+Configure your network so that there are no nameservers configured
+until the network is actually running.  getaddrinfo() will not try to
+access a nameserver that isn't configured.
 
 
-       audio: sst_open: SETQSIZE" Invalid argument
-       audio: sst_close: SETREG MMR2, Invalid argument
+***** Flaky network case
 
 
-you have probably compiled using an ANSI C compiler, but with non-ANSI
-include files.  In particular, on Suns, the file
-/usr/include/sun/audioio.h uses the _IOW macro to define the constant
-AUDIOSETQSIZE.  _IOW in turn uses a K&R preprocessor feature that is
-now explicitly forbidden in ANSI preprocessors, namely substitution
-inside character constants.  All ANSI C compilers must provide a
-workaround for this problem.  Lucid's C compiler is shipped with a new
-set of system include files.  If you are using GCC, there is a script
-called fixincludes that creates new versions of some system include
-files that use this obsolete feature.
+If you have a flaky modem or DSL connection that can be relied on only
+to go down whenever you want to bring XEmacs up, you need to force
+IPv4 behavior.  Explicitly setting DISPLAY=127.0.0.1:0.0 (or whatever
+is appropriate) works in most cases.
 
 
-** My buffers are full of \000 characters or otherwise corrupt.
+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.  Use the configure option `--with-ipv6-cname=no'.
 
 
-Some compilers have trouble with gmalloc.c and ralloc.c; try recompiling
-without optimization.  If that doesn't work, try recompiling with
-SYSTEM_MALLOC defined, and/or with REL_ALLOC undefined.
+*** Mandrake
 
 
-** On AIX 4, some programs fail when run in a Shell buffer
-with an error message like No terminfo entry for "unknown".
+The Mandrake Linux distribution is attempting to comprehensively
+update the user interface, and make it consistent across
+applications.  This is very difficult, and will occasionally cause
+conflicts with applications like Emacs with their own long-established
+interfaces.  Known issues specific to Mandrake or especially common:
 
 
-On AIX, many terminal type definitions are not installed by default.
-`unknown' is one of them.  Install the "Special Generic Terminal
-Definitions" to make them defined.
+Some versions of XEmacs (21.1.9 is known) distributed with Mandrake
+were patched to make the Meta and Alt keysyms synonymous.  These
+normally work as expected in the Mandrake environment.  However,
+custom-built XEmacsen (including all 21.2 betas) will "inexplicably"
+not respect the "Alt-invokes-Meta-commands" convention.  See "I want
+XEmacs to use the Alt key" below.
 
 
-** Emacs exits with "X protocol error" when run with an X server for
-Windows.
+The color-gcc wrapper (see below) is in common use on the Mandrake
+platform.
 
 
-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.
+*** You get crashes in a non-C locale with Linux GNU Libc 2.0.
 
 
-** A position you specified in .Xdefaults is ignored, using twm.
+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.
 
 
-twm normally ignores "program-specified" positions.
-You can tell it to obey them with this command in your `.twmrc' file:
+*** `C-z', or `M-x suspend-emacs' hangs instead of suspending.
 
 
-  UsePPosition "on"            #allow clents to request a position
+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.
 
 
-** The right Alt key works wrong on German HP keyboards (and perhaps
-   other non-English HP keyboards too).
+*** With certain fonts, when the cursor appears on a character, the
+character doesn't appear--you get a solid box instead.
 
 
-This is because HPUX defines the modifiers wrong in X.  Here is a
-shell script to fix the problem; be sure that it is run after VUE
-configures the X server.
+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.
 
 
-    xmodmap 2> /dev/null - << EOF
-    keysym Alt_L = Meta_L
-    keysym Alt_R = Meta_R
-    EOF
+** IRIX
+*** On Irix, I don't see the toolbar icons and I'm getting lots of
+entries in the warnings buffer.
 
 
-    xmodmap - << EOF
-    clear mod1
-    keysym Mode_switch = NoSymbol
-    add mod1 = Meta_L
-    keysym Meta_R = Mode_switch
-    add mod2 = Mode_switch
-    EOF
+SGI ships a really old Xpm library in /usr/lib which does not work at
+all well with XEmacs.  The solution is to install your own copy of the
+latest version of Xpm somewhere and then use the --site-includes and
+--site-libraries flags to tell configure where to find it.
 
 
-** Trouble using ptys on IRIX, or running out of ptys.
+*** Trouble using ptys on IRIX, or running out of ptys.
 
 The program mkpts (which may be in `/usr/adm' or `/usr/sbin') needs to
 be set-UID to root, or non-root programs like Emacs will not be able
 to allocate ptys reliably.
 
 
 The program mkpts (which may be in `/usr/adm' or `/usr/sbin') needs to
 be set-UID to root, or non-root programs like Emacs will not be able
 to allocate ptys reliably.
 
-** Motif dialog boxes lose on Irix.
-
-Larry Auton <lda@control.att.com> writes:
-Beware of not specifying
-
-       --with-dialogs=athena
-
-if it builds with the motif dialogs [boom!] you're a dead man.
-
-** Beware of the default image & graphics library on Irix
+*** Beware of the default image & graphics library on Irix
 
 Richard Cognot <cognot@ensg.u-nancy.fr> writes:
 
 Richard Cognot <cognot@ensg.u-nancy.fr> writes:
+
 You *have* to compile your own jpeg lib. The one delivered with SGI
 systems is a C++ lib, which apparently XEmacs cannot cope with.
 
 You *have* to compile your own jpeg lib. The one delivered with SGI
 systems is a C++ lib, which apparently XEmacs cannot cope with.
 
-** Slow startup on Linux.
 
 
-People using systems based on the Linux kernel sometimes report that
-startup takes 10 to 15 seconds longer than `usual'.
+** 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.
 
 
-This is because Emacs looks up the host name when it starts.
-Normally, this takes negligible time; the extra delay is due to
-improper system configuration.  This problem can occur for both
-networked and non-networked machines.
+The default stack size under Digital Unix is rather small (2M as
+opposed to Solaris 8M), hosing the regexp code, which uses alloca()
+extensively, overflowing the stack when complex regexps are used.
+Workarounds:
 
 
-Here is how to fix the configuration.  It requires being root.
+1) Increase your stack size, using `ulimit -s 8192' or a (t)csh
+   equivalent;
 
 
-*** Networked Case
+2) Recompile regex.c with REGEX_MALLOC defined.
 
 
-First, make sure the files `/etc/hosts' and `/etc/host.conf' both
-exist.  The first line in the `/etc/hosts' file should look like this
-(replace HOSTNAME with your host name):
+*** The `Alt' key doesn't behave as `Meta' when running DECwindows.
 
 
-    127.0.0.1      localhost HOSTNAME
+The default DEC keyboard mapping has the Alt keys set up to generate the
+keysym `Multi_key', which has a meaning to xemacs which is distinct from that
+of the `Meta_L' and `Meta-R' keysyms.  A second problem is that certain keys
+have the Mod2 modifier attached to them for no adequately explored reason.
+The correct fix is to pass this file to xmodmap upon starting X:
 
 
-Also make sure that the `/etc/host.conf' files contains the following
-lines:
+       clear mod2
+       keysym Multi_key = Alt_L
+       add mod1 = Alt_L
+       add mod1 = Alt_R
 
 
-    order hosts, bind 
-    multi on
+*** The Compose key on a DEC keyboard does not work as Meta key.
 
 
-Any changes, permanent and temporary, to the host name should be
-indicated in the `/etc/hosts' file, since it acts a limited local
-database of addresses and names (e.g., some SLIP connections
-dynamically allocate ip addresses).
+This shell command should fix it:
 
 
-*** Non-Networked Case
+  xmodmap -e 'keycode 0xb1 = Meta_L'
 
 
-The solution described in the networked case applies here as well.
-However, if you never intend to network your machine, you can use a
-simpler solution: create an empty `/etc/host.conf' file.  The command
-`touch /etc/host.conf' suffices to create the file.  The `/etc/hosts'
-file is not necessary with this approach.
+*** `expand-file-name' fails to work on any but the machine you dumped
+Emacs on.
 
 
-** On Solaris 2.4, Dired hangs and C-g does not work.  Or Emacs hangs
-forever waiting for termination of a subprocess that is a zombie.
+On Ultrix, if you use any of the functions which look up information
+in the passwd database before dumping Emacs (say, by using
+expand-file-name in site-init.el), then those functions will not work
+in the dumped Emacs on any host but the one Emacs was dumped on.
 
 
-casper@fwi.uva.nl says the problem is in X11R6.  Rebuild libX11.so
-after changing the file xc/config/cf/sunLib.tmpl.  Change the lines
+The solution?  Don't use expand-file-name in site-init.el, or in
+anything it loads.  Yuck - some solution.
+
+I'm not sure why this happens; if you can find out exactly what is
+going on, and perhaps find a fix or a workaround, please let us know.
+Perhaps the YP functions cache some information, the cache is included
+in the dumped Emacs, and is then inaccurate on any other host.
 
 
-    #if ThreadedX
-    #define SharedX11Reqs -lthread
-    #endif
 
 
-to:
+** HP-UX
+*** I get complaints about the mapping of my HP keyboard at startup,
+but I haven't changed anything.
 
 
-    #if OSMinorVersion < 4
-    #if ThreadedX
-    #define SharedX11Reqs -lthread
-    #endif
-    #endif
+The default HP keymap is set up to have Mod1 assigned to two different keys:
+Meta_L and Mode_switch (even though there is not actually a Mode_switch key on
+the keyboard -- it uses an "imaginary" keycode.)  There actually is a reason
+for this, but it's not a good one.  The correct fix is to execute this command
+upon starting X:
 
 
-Be sure also to edit x/config/cf/sun.cf so that OSMinorVersion is 4
-(as it should be for Solaris 2.4).  The file has three definitions for
-OSMinorVersion: the first is for x86, the second for SPARC under
-Solaris, and the third for SunOS 4.  Make sure to update the
-definition for your type of machine and system.
+       xmodmap -e 'remove mod1 = Mode_switch'
 
 
-Then do `make Everything' in the top directory of X11R6, to rebuild
-the makefiles and rebuild X.  The X built this way work only on
-Solaris 2.4, not on 2.3.
+*** On HP-UX, you get "poll: Interrupted system call" message in the
+window where XEmacs was launched.
 
 
-For multithreaded X to work it necessary to install patch
-101925-02 to fix problems in header files [2.4].  You need
-to reinstall gcc or re-run just-fixinc after installing that
-patch.
+Richard Cognot <cognot@ensg.u-nancy.fr> writes:
 
 
-However, Frank Rust <frust@iti.cs.tu-bs.de> used a simpler solution:
-he changed
-    #define ThreadedX          YES
-to
-    #define ThreadedX          NO
-in sun.cf and did `make World' to rebuild X11R6.  Removing all
-`-DXTHREAD*' flags and `-lthread' entries from lib/X11/Makefile and
-typing 'make install' in that directory also seemed to work.
+  I get a very strange problem when linking libc.a dynamically: every
+  event (mouse, keyboard, expose...) results in a "poll: Interrupted
+  system call" message in the window where XEmacs was
+  launched. Forcing a static link of libc.a alone by adding
+  /usr/lib/libc.a at the end of the link line solves this. Note that
+  my 9.07 build of 19.14b17 and my (old) build of 19.13 both exhibit
+  the same behavior. I've tried various hpux patches to no avail. If
+  this problem cannot be solved before the release date, binary kits
+  for HP *must* be linked statically against libc, otherwise this
+  problem will show up. (This is directed at whoever will volunteer
+  for this kit, as I won't be available to do it, unless 19.14 gets
+  delayed until mid-june ;-). I think this problem will be an FAQ soon
+  after the release otherwise.
 
 
-** With M-x enable-flow-control, you need to type C-\ twice to do
-incremental search--a single C-\ gets no response.
+Note: The above entry is probably not valid for XEmacs 21.0 and
+later.
 
 
-This has been traced to communicating with your machine via kermit,
-with C-\ as the kermit escape character.  One solution is to use
-another escape character in kermit.  One user did
+*** The right Alt key works wrong on German HP keyboards (and perhaps
+   other non-English HP keyboards too).
 
 
-   set escape-character 17
+This is because HP-UX defines the modifiers wrong in X.  Here is a
+shell script to fix the problem; be sure that it is run after VUE
+configures the X server.
 
 
-in his .kermrc file, to make C-q the kermit escape character.
+    xmodmap 2> /dev/null - << EOF
+    keysym Alt_L = Meta_L
+    keysym Alt_R = Meta_R
+    EOF
 
 
-** The Motif version of Emacs paints the screen a solid color.
+    xmodmap - << EOF
+    clear mod1
+    keysym Mode_switch = NoSymbol
+    add mod1 = Meta_L
+    keysym Meta_R = Mode_switch
+    add mod2 = Mode_switch
+    EOF
 
 
-This has been observed to result from the following X resource:
 
 
-   Emacs*default.attributeFont:        -*-courier-medium-r-*-*-*-140-*-*-*-*-iso8859-*
+*** XEmacs dumps core at startup when native audio is used.  Native
+audio does not work with recent versions of HP-UX.
 
 
-That the resource has this effect indicates a bug in something, but we
-do not yet know what.  If it is an Emacs bug, we hope someone can
-explain what the bug is so we can fix it.  In the mean time, removing
-the resource prevents the problem.
+Under HP-UX 10.20 and later (e.g., HP-UX 11.XX), with native audio
+enabled, the dumped XEmacs binary ("xemacs") core dumps at startup if
+recent versions of the libAlib.sl audio shared library is used.  Note
+that "temacs" will run, but "xemacs" will dump core.  This, of course,
+causes the XEmacs build to fail.  If GNU malloc is enabled, a stack
+trace will show XEmacs to have crashed in the "first" call to malloc().
 
 
-** Regular expressions matching bugs on SCO systems.
+This bug currently exists in all versions of XEmacs, when the undump
+mechanism is used.  It is not known if using the experimental portable
+dumper will allow native audio to work.
 
 
-On SCO, there are problems in regexp matching when Emacs is compiled
-with the system compiler.  The compiler version is "Microsoft C
-version 6", SCO 4.2.0h Dev Sys Maintenance Supplement 01/06/93; Quick
-C Compiler Version 1.00.46 (Beta).  The solution is to compile with
-GCC.
+**** Cause:
 
 
-** In Shell mode, you get a ^M at the end of every line.
+Recent versions of the HP-UX 10.20 (and later) audio shared library (in
+/opt/audio/lib), pulls in the libdce shared library, which pulls in a
+thread (libcma) library.  This prevents the HP-UX undump() routine (in
+unexhp9k800.c) from properly working.  What's happening is that some
+initialization routines are being called in the libcma library, *BEFORE*
+main() is called, and these initialization routines are calling
+malloc().  Unfortunately, in order for the undumper to work, XEmacs must
+adjust (move upwards) the sbrk() value *BEFORE* the first call to
+malloc(); if malloc() is called before XEmacs has properly adjusted sbrk
+(which is what is happening), dumped memory that is being used by
+XEmacs, is improperly re-allocated for use by malloc() and the dumped
+memory is corrupted.  This causes XEmacs to die an horrible death.
 
 
-This happens to people who use tcsh, because it is trying to be too
-smart.  It sees that the Shell uses terminal type `unknown' and turns
-on the flag to output ^M at the end of each line.  You can fix the
-problem by adding this to your .cshrc file:
+It is believed that versions of the audio library past December 1998
+will trigger this problem.  Under HP-UX 10.20, you probably have to
+install audio library patches to encounter this.  It's probable that
+recent "fresh, out-of-the-box" HP-UX 11.XX workstations also have this
+problem.  For HP-UX 10.20, it's believed that audio patch PHSS_17121 (or
+a superceeding one, like PHSS_17554, PHSS_17971, PHSS_18777, PHSS_21481,
+or PHSS_21662, etc.) will trigger this.
 
 
-    if ($?EMACS) then
-        if ($EMACS == "t") then
-            unset edit 
-            stty  -icrnl -onlcr -echo susp ^Z
-        endif
-    endif
+To check if your audio library will cause problems for XEmacs, run
+"chatr /opt/audio/lib/libAlib.sl".  If "libdce" appears in the displayed
+shared library list, XEmacs will probably encounter problems if audio is
+enabled.
 
 
-** An error message such as `X protocol error: BadMatch (invalid
-parameter attributes) on protocol request 93'.
+**** Workaround:
 
 
-This comes from having an invalid X resource, such as
-   emacs*Cursor:   black
-(which is invalid because it specifies a color name for something
-that isn't a color.)
+Don't enable native audio.  Re-run configure without native audio
+support.
 
 
-The fix is to correct your X resources.
+If your site supports it, try using NAS (Network Audio Support).
 
 
-** Mail is lost when sent to local aliases.
+Try using the experimental portable dumper.  It may work, or it may
+not.
 
 
-Many emacs mail user agents (VM and rmail, for instance) use the
-sendmail.el library.  This library can arrange for mail to be
-delivered by passing messages to the /usr/lib/sendmail (usually)
-program .  In doing so, it passes the '-t' flag to sendmail, which
-means that the name of the recipient of the message is not on the
-command line and, therefore, that sendmail must parse the message to
-obtain the destination address.
 
 
-There is a bug in the SunOS4.1.1 and SunOS4.1.3 versions of sendmail.
-In short, when given the -t flag, the SunOS sendmail won't recognize
-non-local (i.e. NIS) aliases.  It has been reported that the Solaris
-2.x versions of sendmail do not have this bug.  For those using SunOS
-4.1, the best fix is to install sendmail V8 or IDA sendmail (which
-have other advantages over the regular sendmail as well).  At the time
-of this writing, these official versions are available:
+*** `Pid xxx killed due to text modification or page I/O error'
 
 
- Sendmail V8 on ftp.cs.berkeley.edu in /ucb/sendmail:
-   sendmail.8.6.9.base.tar.Z (the base system source & documentation)
-   sendmail.8.6.9.cf.tar.Z   (configuration files)
-   sendmail.8.6.9.misc.tar.Z (miscellaneous support programs)
-   sendmail.8.6.9.xdoc.tar.Z (extended documentation, with postscript)
+On HP-UX, you can get that error when the Emacs executable is on an NFS
+file system.  HP-UX responds this way if it tries to swap in a page and
+does not get a response from the server within a timeout whose default
+value is just ten seconds.
 
 
- IDA sendmail on vixen.cso.uiuc.edu in /pub:
-   sendmail-5.67b+IDA-1.5.tar.gz
+If this happens to you, extend the timeout period.
 
 
-** On AIX, you get this message when running Emacs:
+*** Shell mode on HP-UX gives the message, "`tty`: Ambiguous".
 
 
-    Could not load program emacs
-    Symbol smtcheckinit in csh is undefined
-    Error was: Exec format error
+christos@theory.tn.cornell.edu says:
 
 
-or this one:
+The problem is that in your .cshrc you have something that tries to
+execute `tty`. If you are not running the shell on a real tty then tty
+will print "not a tty". Csh expects one word in some places, but tty
+is giving it back 3.
 
 
-    Could not load program .emacs
-    Symbol _system_con in csh is undefined
-    Symbol _fp_trapsta in csh is undefined
-    Error was: Exec format error
+The solution is to add a pair of quotes around `tty` to make it a
+single word:
 
 
-These can happen when you try to run on AIX 3.2.5 a program that was
-compiled with 3.2.4.  The fix is to recompile.
+if (`tty` == "/dev/console")
 
 
-** After running emacs once, subsequent invocations crash.
+should be changed to:
 
 
-Some versions of SVR4 have a serious bug in the implementation of the
-mmap () system call in the kernel; this causes emacs to run correctly
-the first time, and then crash when run a second time.
+if ("`tty`" == "/dev/console")
 
 
-Contact your vendor and ask for the mmap bug fix; in the mean time,
-you may be able to work around the problem by adding a line to your
-operating system description file (whose name is reported by the
-configure script) that reads:
-#define SYSTEM_MALLOC
-This makes Emacs use memory less efficiently, but seems to work around
-the kernel bug.
+Even better, move things that set up terminal sections out of .cshrc
+and into .login.
 
 
-** Inability to send an Alt-modified key, when Emacs is communicating
-directly with an X server.
 
 
-If you have tried to bind an Alt-modified key as a command, and it
-does not work to type the command, the first thing you should check is
-whether the key is getting through to Emacs.  To do this, type C-h c
-followed by the Alt-modified key.  C-h c should say what kind of event
-it read.  If it says it read an Alt-modified key, then make sure you
-have made the key binding correctly.
+** SCO
+*** Regular expressions matching bugs on SCO systems.
 
 
-If C-h c reports an event that doesn't have the Alt modifier, it may
-be because your X server has no key for the Alt modifier.  The X
-server that comes from MIT does not set up the Alt modifier by
-default.
+On SCO, there are problems in regexp matching when Emacs is compiled
+with the system compiler.  The compiler version is "Microsoft C
+version 6", SCO 4.2.0h Dev Sys Maintenance Supplement 01/06/93; Quick
+C Compiler Version 1.00.46 (Beta).  The solution is to compile with
+GCC.
 
 
-If your keyboard has keys named Alt, you can enable them as follows:
 
 
-    xmodmap -e 'add mod2 = Alt_L'
-    xmodmap -e 'add mod2 = Alt_R'
+** Windows
+*** Conflicts with FSF NTEmacs
 
 
-If the keyboard has just one key named Alt, then only one of those
-commands is needed.  The modifier `mod2' is a reasonable choice if you
-are using an unmodified MIT version of X.  Otherwise, choose any
-modifier bit not otherwise used.
+Depending on how it is installed, FSF NTEmacs may setup various EMACS*
+variables in your environment.  The presence of these variables may
+cause XEmacs to fail at startup, cause you to see corrupted
+doc-strings, or cause other random problems.
 
 
-If your keyboard does not have keys named Alt, you can use some other
-keys.  Use the keysym command in xmodmap to turn a function key (or
-some other 'spare' key) into Alt_L or into Alt_R, and then use the
-commands show above to make them modifier keys.
+You should remove these variables from your environment.  These
+variables are not required to run FSF NTEmacs if you start it by
+running emacs.bat.
 
 
-Note that if you have Alt keys but no Meta keys, Emacs translates Alt
-into Meta.  This is because of the great importance of Meta in Emacs.
+*** XEmacs can't find my init file
 
 
-** `Pid xxx killed due to text modification or page I/O error'
+XEmacs looks for your init in your "home" directory -- either in
+`~/.xemacs/init.el' or `~/.emacs'.  XEmacs decides that your "home"
+directory is, in order of preference:
+       
+- The value of the HOME environment variable, if the variable exists.
+- The value of the registry entry SOFTWARE\XEmacs\XEmacs\HOME,
+  if it exists.
+- The value of the HOMEDRIVE and HOMEPATH environment variables, if
+  these variables both exist.
+- C:\.
 
 
-On HP/UX, you can get that error when the Emacs executable is on an NFS
-file system.  HP/UX responds this way if it tries to swap in a page and
-does not get a response from the server within a timeout whose default
-value is just ten seconds.
+To determine what XEmacs thinks your home directory is, try opening
+a file in the `~' directory, and you should see its expansion in the
+modeline.  If this doesn't work, type ESC : (user-home-directory).
 
 
-If this happens to you, extend the timeout period.
+*** XEmacs can't find any packages
 
 
-** `expand-file-name' fails to work on any but the machine you dumped
-Emacs on.
+XEmacs looks for your packages in subdirectories of a directory which
+is set at compile-time (see `config.inc'), and whose default is
+`C:\Program Files\XEmacs'.  XEmacs also looks in `~/.xemacs', where
+`~' refers to your home directory (see previous entry).  The variable
+`configure-package-path' holds the actual path that was compiled into
+your copy of XEmacs.
 
 
-On Ultrix, if you use any of the functions which look up information
-in the passwd database before dumping Emacs (say, by using
-expand-file-name in site-init.el), then those functions will not work
-in the dumped Emacs on any host but the one Emacs was dumped on.
+The compile-time default location can be overridden by the EMACSPACKAGEPATH
+environment variable or by the SOFTWARE\XEmacs\XEmacs\EMACSPACKAGEPATH
+registry entry.  You should check that these variables, if they exist,
+point to the actual location of your package tree.
 
 
-The solution?  Don't use expand-file-name in site-init.el, or in
-anything it loads.  Yuck - some solution.
+*** XEmacs doesn't die when shutting down Windows 95 or 98
 
 
-I'm not sure why this happens; if you can find out exactly what is
-going on, and perhaps find a fix or a workaround, please let us know.
-Perhaps the YP functions cache some information, the cache is included
-in the dumped Emacs, and is then inaccurate on any other host.
+When shutting down Windows 95 or 98 you may see a dialog that says
+  "xemacs / You must quit this program before you quit Windows".
+It is safe to
+  "Click OK to quit the program and Windows",
+but you won't be offered a chance to save any modified XEmacs buffers.
 
 
-** Emacs fails to understand most Internet host names, even though
-the names work properly with other programs on the same system.
-  Emacs won't work with X-windows if the value of DISPLAY is HOSTNAME:0.
-  Gnus can't make contact with the specified host for nntp.
+*** Key bindings
 
 
-This typically happens on Suns and other systems that use shared
-libraries.  The cause is that the site has installed a version of the
-shared library which uses a name server--but has not installed a
-similar version of the unshared library which Emacs uses.
+The C-z, C-x, C-c, and C-v keystrokes have traditional uses in both
+emacs and Windows programs. XEmacs binds these keys to their
+traditional emacs uses, and provides Windows 3.x style bindings for
+the Cut, Copy and Paste functions.
 
 
-The result is that most programs, using the shared library, work with
-the nameserver, but Emacs does not.
+       Function        XEmacs binding
+       --------        --------------
+       Undo            C-_
+       Cut             Sh-Del
+       Copy            C-Insert
+       Paste           Sh-Insert
 
 
-The fix is to install an unshared library that corresponds to what you
-installed in the shared library, and then relink Emacs.
+You can rebind keys to make XEmacs more Windows-compatible; for
+example, to bind C-z to undo:
 
 
-On SunOS 4.1, simply define HAVE_RES_INIT.
+       (global-set-key [(control z)] 'undo)
 
 
-If you have already installed the name resolver in the file libresolv.a,
-then you need to compile Emacs to use that library.  The easiest way to
-do this is to add to config.h a definition of LIBS_SYSTEM, LIBS_MACHINE
-or LIB_STANDARD which uses -lresolv.  Watch out!  If you redefine a macro
-that is already in use in your configuration to supply some other libraries,
-be careful not to lose the others.
+Rebindind C-x and C-c is trickier because by default these are prefix
+keys in XEmacs. See the "Key Bindings" node in the XEmacs manual.
 
 
-Thus, you could start by adding this to config.h:
+*** Behavior of selected regions
 
 
-#define LIBS_SYSTEM -lresolv
+Use the pending-del package to enable the standard Windows behavior of
+self-inserting deletes region.
 
 
-Then if this gives you an error for redefining a macro, and you see that
-the s- file defines LIBS_SYSTEM as -lfoo -lbar, you could change config.h
-again to say this:
+*** Limitations on the use of the AltGr key.
 
 
-#define LIBS_SYSTEM -lresolv -lfoo -lbar
+In some locale and OS combinations you can't generate M-AltGr-key or
+C-M-AltGr-key sequences at all.
 
 
-** Trouble using ptys on AIX.
+To generate C-AltGr-key or C-M-AltGr-key sequences you must use the
+right-hand Control key and you must press it *after* AltGr.
 
 
-People often install the pty devices on AIX incorrectly.
-Use `smit pty' to reinstall them properly.
+These limitations arise from fundamental problems in the way that the
+win32 API reports AltGr key events. There isn't anything that XEmacs
+can do to work round these problems that it isn't already doing.
 
 
-** Shell mode on HP/UX gives the message, "`tty`: Ambiguous".
+You may want to create alternative bindings if any of the standard
+XEmacs bindings require you to use some combination of Control or Meta
+and AltGr.
 
 
-christos@theory.tn.cornell.edu says:
+*** Limited support for subprocesses under Windows 9x
 
 
-The problem is that in your .cshrc you have something that tries to
-execute `tty`. If you are not running the shell on a real tty then tty
-will print "not a tty". Csh expects one word in some places, but tty
-is giving it back 3.
+Attempting to use call-process to run a 16bit program gives a
+"Spawning child process: Exec format error". For example shell-command
+fails under Windows 95 and 98 if you use command.com or any other
+16bit program as your shell.
 
 
-The solution is to add a pair of quotes around `tty` to make it a
-single word:
+XEmacs may incorrectly quote your call-process command if it contains
+double quotes, backslashes or spaces.
 
 
-if (`tty` == "/dev/console") 
+start-process and functions that rely on it are supported under Windows 95,
+98 and NT. However, starting a 16bit program that requires keyboard input
+may cause XEmacs to hang or crash under Windows 95 and 98, and will leave
+the orphaned 16bit program consuming all available CPU time.
 
 
-should be changed to:
+Sending signals to subprocesses started by call-process or by
+start-process fails with a "Cannot send signal to process" error under
+Windows 95 and 98. As a side effect of this, quitting XEmacs while it
+is still running subprocesses causes it to crash under Windows 95 and
+98.
 
 
-if ("`tty`" == "/dev/console") 
 
 
-Even better, move things that set up terminal sections out of .cshrc
-and into .login.
+** Cygwin
+*** Signal 11 when building or running a dumped XEmacs.
 
 
-** With process-connection-type set to t, each line of subprocess
-output is terminated with a ^M, making ange-ftp and GNUS not work.
+See the section on Cygwin above, under building.
 
 
-On SunOS systems, this problem has been seen to be a result of an
-incomplete installation of gcc 2.2 which allowed some non-ANSI
-compatible include files into the compilation.  In particular this
-affected virtually all ioctl() calls.
+*** XEmacs fails to start because cygXpm-noX4.dll was not found.
 
 
-** Once you pull down a menu from the menubar, it won't go away.
+Andy Piper <andy@xemacs.org> sez:
 
 
-It has been claimed that this is caused by a bug in certain very old
-(1990?)  versions of the twm window manager.  It doesn't happen with
-recent vintages, or with other window managers.
+    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.
 
 
-** Emacs ignores the "help" key when running OLWM.
+*** Subprocesses do not work.
 
 
-OLWM grabs the help key, and retransmits it to the appropriate client
-using XSendEvent.  Allowing emacs to react to synthetic events is a
-security hole, so this is turned off by default.  You can enable it by
-setting the variable x-allow-sendevents to t.  You can also cause fix
-this by telling OLWM to not grab the help key, with the null binding
-"OpenWindows.KeyboardCommand.Help:".
+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.
 
 
-** Programs running under terminal emulator do not recognize `emacs'
-terminal type.
+*** ^G does not work on hung subprocesses.
 
 
-The cause of this is a shell startup file that sets the TERMCAP
-environment variable.  The terminal emulator uses that variable to
-provide the information on the special terminal type that Emacs
-emulates.
+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?)
 
 
-Rewrite your shell startup file so that it does not change TERMCAP
-in such a case.  You could use the following conditional which sets
-it only if it is undefined.
+*** Errors from make like `/c:not found' when running `M-x compile'.
 
 
-    if ( ! ${?TERMCAP} ) setenv TERMCAP ~/my-termcap-file
+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).
 
 
-Or you could set TERMCAP only when you set TERM--which should not
-happen in a non-login shell.
+*** 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)
 ==============================================================================
 
 
 
 * Compatibility problems (with Emacs 18, GNU Emacs, or previous XEmacs/lemacs)
 ==============================================================================
 
-** "Symbol's value as variable is void: unread-command-char".
+*** "Symbol's value as variable is void: unread-command-char".
  "Wrong type argument: arrayp, #<keymap 143 entries>"
  "Wrong type argument: stringp, [#<keypress-event return>]"
 
  "Wrong type argument: arrayp, #<keymap 143 entries>"
  "Wrong type argument: stringp, [#<keypress-event return>]"
 
@@ -1464,7 +2302,7 @@ nobody is using and testing.
 and testers.  It probably doesn't work.
 
 ** There are no `native XEmacs' TUTORIALs for any Asian languages,
 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.
 
 so it should be sufficient to skim through the differences and apply
 them to the Japanese version.