X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=PROBLEMS;h=7abb978f82d7634b9ef0850cc897f6ebb8742966;hp=072fc72bfcf816e1f3bc087590b9290498a182f7;hb=414b512c0774e67ba8e160b605447d862d3be166;hpb=6883ee56ec887c2c48abe5b06b5e66aa74031910 diff --git a/PROBLEMS b/PROBLEMS index 072fc72..7abb978 100644 --- a/PROBLEMS +++ b/PROBLEMS @@ -2,7 +2,7 @@ This file describes various problems that have been encountered in compiling, installing and running XEmacs. It has been updated for -XEmacs 21.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 @@ -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'). -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 =============================== -** 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 @@ -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. -** `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 @@ -100,112 +124,158 @@ characters, you can fix them by running: 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 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 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 + #3 YowIter (ht=0xb, id=0x0, v=0x74682074, client=0x47e3c0) + at ImageCache.c:1159 + #4 0xff26cc5c in _LTHashTableForEachItem (ht=0x4725e8, + iter=0xff26dda0 , 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 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 +#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 +#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 +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 - 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) @@ -214,125 +284,72 @@ Marcus Thiessel 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. -** 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 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 says: +Marcus Thiessel -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 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 . -(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: RESOLVED AS: PROGRAM ERROR -Using 'cc -g' is not sufficient to eliminate all optimization. Try -'cc -g -O0' instead. +ABSTRACT: +: 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. @@ -347,112 +364,162 @@ you build Emacs: 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 @@ -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. +*** `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 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 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 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 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 -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 -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 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 . +(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 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, @@ -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.) -** 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 @@ -758,604 +1150,1050 @@ automatically. Here is an example: (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 +. + +*** 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 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 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 #) -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 -. +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 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 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. -** Motif dialog boxes lose on Irix. - -Larry Auton 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 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. -** 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 writes: -However, Frank Rust 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 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) ============================================================================== -** "Symbol's value as variable is void: unread-command-char". +*** "Symbol's value as variable is void: unread-command-char". "Wrong type argument: arrayp, #" "Wrong type argument: stringp, [#]" @@ -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, -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.