Use just DOC instead of DOC-nn.mm.
[bpt/emacs.git] / etc / PROBLEMS
index cc591d6..7556c23 100644 (file)
@@ -1,7 +1,7 @@
 Known Problems with GNU Emacs
 
-Copyright (C) 1987-1989, 1993-1999, 2001-2012
-  Free Software Foundation, Inc.
+Copyright (C) 1987-1989, 1993-1999, 2001-2013 Free Software Foundation,
+Inc.
 See the end of the file for license conditions.
 
 
@@ -206,6 +206,10 @@ added a line like this at the beginning of files of Lisp code:
 If your tar has this problem, install GNU tar--if you can manage to
 untar it :-).
 
+** Emacs can crash when displaying PNG images with transparency.
+This is due to a bug introduced in ImageMagick 6.8.2-3.  The bug
+should be fixed in ImageMagick 6.8.3-10.  Please see Bug#13867.
+
 ** Crashes when displaying GIF images in Emacs built with version
 libungif-4.1.0 are resolved by using version libungif-4.1.0b1.
 Configure checks for the correct version, but this problem could occur
@@ -255,6 +259,36 @@ result in an endless loop.
 If you need Emacs to be able to recover from closing displays, compile
 it with the Lucid toolkit instead of GTK.
 
+** Emacs crashes when you try to view a file with complex characters.
+For example, the etc/HELLO file (as shown by C-h h).
+The message "symbol lookup error: /usr/bin/emacs: undefined symbol: OTF_open"
+is shown in the terminal from which you launched Emacs.
+This problem only happens when you use a graphical display (ie not
+with -nw) and compiled Emacs with the "libotf" library for complex
+text handling.
+
+This problem occurs because unfortunately there are two libraries
+called "libotf".  One is the library for handling OpenType fonts,
+http://www.m17n.org/libotf/, which is the one that Emacs expects.
+The other is a library for Open Trace Format, and is used by some
+versions of the MPI message passing interface for parallel
+programming.
+
+For example, on RHEL6 GNU/Linux, the OpenMPI rpm provides a version
+of "libotf.so" in /usr/lib/openmpi/lib.  This directory is not
+normally in the ld search path, but if you want to use OpenMPI,
+you must issue the command "module load openmpi".  This adds
+/usr/lib/openmpi/lib to LD_LIBRARY_PATH.  If you then start Emacs from
+the same shell, you will encounter this crash.
+Ref: <URL:https://bugzilla.redhat.com/show_bug.cgi?id=806031>
+
+There is no good solution to this problem if you need to use both
+OpenMPI and Emacs with libotf support.  The best you can do is use a
+wrapper shell script (or function) "emacs" that removes the offending
+element from LD_LIBRARY_PATH before starting emacs proper.
+Or you could recompile Emacs with an -Wl,-rpath option that
+gives the location of the correct libotf.
+
 * General runtime problems
 
 ** Lisp problems
@@ -358,7 +392,7 @@ 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.
+the macro MAIL_USE_FLOCK in config.h.
 IF YOU DON'T USE THE FORM OF INTERLOCKING THAT IS NORMAL ON YOUR
 SYSTEM, YOU CAN LOSE MAIL!
 
@@ -402,21 +436,7 @@ The fix is to install an unshared library that corresponds to what you
 installed in the shared library, and then relink Emacs.
 
 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.
-
-Thus, you could start by adding this to config.h:
-
-#define LIBS_SYSTEM -lresolv
-
-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:
-
-#define LIBS_SYSTEM -lresolv -lfoo -lbar
+then you need to compile Emacs to use that library.
 
 *** Emacs does not know your host's fully-qualified domain name.
 
@@ -531,7 +551,7 @@ with CEDET 1.0pre4) or later.
 
 *** Self-documentation messages are garbled.
 
-This means that the file `etc/DOC-...' doesn't properly correspond
+This means that the file `etc/DOC' doesn't properly correspond
 with the Emacs executable.  Redumping Emacs and then installing the
 corresponding pair of files should fix the problem.
 
@@ -1385,6 +1405,23 @@ For example, in the Xfce 4.8 desktop environment, the clipboard
 manager in versions of xfce4-settings-helper before 4.8.2 is buggy;
 https://bugzilla.xfce.org/show_bug.cgi?id=7588 .
 
+*** Warning messages when running in Ubuntu
+
+When you start Emacs you may see something like this:
+
+(emacs:2286): LIBDBUSMENU-GTK-CRITICAL **: watch_submenu: assertion 
+`GTK_IS_MENU_SHELL(menu)' failed
+
+This happens if the Emacs binary has been renamed.  The cause is the Ubuntu
+appmenu concept.  It tries to track Emacs menus and show them in the top
+panel, instead of in each Emacs window.  This is not properly implemented,
+so it fails for Emacs.  The order of menus is wrong, and things like copy/paste
+that depend on what state Emacs is in are usually wrong (i.e. paste disabled
+even if you should be able to paste, and similar).
+
+You can get back menus on each frame by starting emacs like this:
+% env UBUNTU_MENUPROXY= emacs
+
 * Runtime problems on character terminals
 
 ** The meta key does not work on xterm.
@@ -1854,8 +1891,8 @@ Emacs uses symbolic links to implement file locks.  In a directory
 with +t bit, the directory owner becomes the owner of the symbolic
 link, so that it cannot be removed by anyone else.
 
-If you don't like those useless links, you can let Emacs not to using
-file lock by adding #undef CLASH_DETECTION to config.h.
+If you don't like those useless links, you can customize
+the option `create-lockfiles'.
 
 *** FreeBSD: Getting a Meta key on the console.
 
@@ -2778,19 +2815,11 @@ build Emacs in a directory on a local disk.
 
 *** 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
+On a system where getpagesize is not a system call, it is defined
 as a macro.  If the definition (in both unex*.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 config.h.
-
 * Runtime problems on legacy systems
 
 This section covers bugs reported on very old hardware or software.
@@ -2882,10 +2911,6 @@ should do.
 pen@lysator.liu.se says (Feb 1998) that the Compose key does work
 if you link with the MIT X11 libraries instead of the Solaris X11 libraries.
 
-*** HP/UX 10: Large file support is disabled.
-(HP/UX 10 was end-of-lifed in May 1999.)
-See the comments in src/s/hpux10-20.h.
-
 *** HP/UX: Emacs is slow using X11R5.
 
 This happens if you use the MIT versions of the X libraries--it
@@ -3161,102 +3186,6 @@ as a concentrator.
 
 This problem seems to be a matter of configuring the DECserver to use
 7 bit characters rather than 8 bit characters.
-
-* Build problems on legacy systems
-
-** SunOS: Emacs gets error message from linker on Sun.
-
-If the error message says that a symbol such as `f68881_used' or
-`ffpa_used' or `start_float' is undefined, this probably indicates
-that you have compiled some libraries, such as the X libraries,
-with a floating point option other than the default.
-
-It's not terribly hard to make this work with small changes in
-crt0.c together with linking with Fcrt1.o, Wcrt1.o or Mcrt1.o.
-However, the easiest approach is to build Xlib with the default
-floating point option: -fsoft.
-
-** HPUX 10.20: Emacs crashes during dumping on the HPPA machine.
-
-This seems to be due to a GCC bug; it is fixed in GCC 2.8.1.
-
-** Vax C compiler bugs affecting Emacs.
-
-You may get one of these problems compiling Emacs:
-
-   foo.c line nnn: compiler error: no table entry for op STASG
-   foo.c: fatal error in /lib/ccom
-
-These are due to bugs in the C compiler; the code is valid C.
-Unfortunately, the bugs are unpredictable: the same construct
-may compile properly or trigger one of these bugs, depending
-on what else is in the source file being compiled.  Even changes
-in header files that should not affect the file being compiled
-can affect whether the bug happens.  In addition, sometimes files
-that compile correctly on one machine get this bug on another machine.
-
-As a result, it is hard for me to make sure this bug will not affect
-you.  I have attempted to find and alter these constructs, but more
-can always appear.  However, I can tell you how to deal with it if it
-should happen.  The bug comes from having an indexed reference to an
-array of Lisp_Objects, as an argument in a function call:
-  Lisp_Object *args;
-  ...
-   ... foo (5, args[i], ...)...
-putting the argument into a temporary variable first, as in
-  Lisp_Object *args;
-  Lisp_Object tem;
-  ...
-   tem = args[i];
-   ... foo (r, tem, ...)...
-causes the problem to go away.
-The `contents' field of a Lisp vector is an array of Lisp_Objects,
-so you may see the problem happening with indexed references to that.
-
-** 68000 C compiler problems
-
-Various 68000 compilers have different problems.
-These are some that have been observed.
-
-*** Using value of assignment expression on union type loses.
-This means that  x = y = z;  or  foo (x = z);  does not work
-if x is of type Lisp_Object.
-
-*** "cannot reclaim" error.
-
-This means that an expression is too complicated.  You get the correct
-line number in the error message.  The code must be rewritten with
-simpler expressions.
-
-*** XCONS, XSTRING, etc macros produce incorrect code.
-
-If temacs fails to run at all, this may be the cause.
-Compile this test program and look at the assembler code:
-
-struct foo { char x; unsigned int y : 24; };
-
-lose (arg)
-     struct foo arg;
-{
-  test ((int *) arg.y);
-}
-
-If the code is incorrect, your compiler has this problem.
-In the XCONS, etc., macros in lisp.h you must replace (a).u.val with
-((a).u.val + coercedummy) where coercedummy is declared as int.
-
-This problem will only happen if USE_LISP_UNION_TYPE is manually
-defined in lisp.h.
-
-** C compilers lose on returning unions.
-
-I hear that some C compilers cannot handle returning a union type.
-Most of the functions in GNU Emacs return type Lisp_Object, which is
-defined as a union on some rare architectures.
-
-This problem will only happen if USE_LISP_UNION_TYPE is manually
-defined in lisp.h.
-
 \f
 This file is part of GNU Emacs.