comparison man/xemacs-faq.texi @ 3018:31e656a27dae

[xemacs-hg @ 2005-10-24 20:39:38 by malcolmp] Reflect changes in configure options in INSTALL and the FAQ.
author malcolmp
date Mon, 24 Oct 2005 20:39:47 +0000
parents 574c005d1f5c
children 15139dbf89f4
comparison
equal deleted inserted replaced
3017:1e7cc382eb16 3018:31e656a27dae
5 @setchapternewpage off 5 @setchapternewpage off
6 @c %**end of header 6 @c %**end of header
7 @finalout 7 @finalout
8 @titlepage 8 @titlepage
9 @title XEmacs FAQ 9 @title XEmacs FAQ
10 @subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2005/10/14 02:11:49 $ 10 @subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2005/10/24 20:39:47 $
11 @sp 1 11 @sp 1
12 @author Ben Wing <ben@@xemacs.org> 12 @author Ben Wing <ben@@xemacs.org>
13 @author Tony Rossini <rossini@@u.washington.edu> 13 @author Tony Rossini <rossini@@u.washington.edu>
14 @author Chuck Thompson <cthomp@@xemacs.org> 14 @author Chuck Thompson <cthomp@@xemacs.org>
15 @author Steve Baur <steve@@xemacs.org> 15 @author Steve Baur <steve@@xemacs.org>
1101 sparc-sun-solaris2.6 (both Sun's Forte C and gcc) 1101 sparc-sun-solaris2.6 (both Sun's Forte C and gcc)
1102 sparc-sun-solaris2.7 (both Sun's Forte C and gcc) 1102 sparc-sun-solaris2.7 (both Sun's Forte C and gcc)
1103 sparc-sun-sunos4.1.4 (gcc) 1103 sparc-sun-sunos4.1.4 (gcc)
1104 @end example 1104 @end example
1105 1105
1106 Some systems have a dual mode 32-bit/64-bit compiler. On most of 1106 Some systems have a dual mode 32-bit/64-bit compiler. On most of these,
1107 these, XEmacs requires the @samp{--pdump} configure option to build 1107 XEmacs requires the @samp{--pdump} (in XEmacs 21.5,
1108 correctly with the 64-bit version of the compiler. 1108 @samp{--enable-pdump}) configure option to build correctly with the
1109 64-bit version of the compiler.
1109 1110
1110 @example 1111 @example
1111 mips-sgi-irix6.5, CC="gcc -mabi=64" 1112 mips-sgi-irix6.5, CC="gcc -mabi=64"
1112 mips-sgi-irix6.5, CC="cc -64" 1113 mips-sgi-irix6.5, CC="cc -64"
1113 rs6000-ibm-aix4.3.0.0, CC="cc -q64" 1114 rs6000-ibm-aix4.3.0.0, CC="cc -q64"
3261 3262
3262 If you have GNU tar you can use: 3263 If you have GNU tar you can use:
3263 3264
3264 @code{cd $prefix/lib/xemacs ; tar zxvf <tarballname>} 3265 @code{cd $prefix/lib/xemacs ; tar zxvf <tarballname>}
3265 3266
3266 If you have the packages somewhere nonstandard and don't want to 3267 If you have the packages somewhere nonstandard and don't want to bother
3267 bother with @samp{$prefix} (for example, you're a developer and are 3268 with @samp{$prefix} (for example, you're a developer and are compiling
3268 compiling the packages yourself, and want your own private copy of 3269 the packages yourself, and want your own private copy of everything),
3269 everything), you can also directly specify this using @file{configure}. 3270 you can also directly specify this using @file{configure}. To do this
3270 To do this under 21.5 and above use the @samp{--package-prefix} parameter 3271 with 21.5 and above use the @samp{--with-package-prefix} parameter to
3271 to specify the directory under which you untarred the above tarballs. 3272 specify the directory under which you untarred the above tarballs.
3272 Under 21.4 and previous you need to use @samp{--package-path}, 3273 Under 21.4 and previous you need to use @samp{--package-path}. Using
3273 something like this: 3274 these options looks something like this:
3274 3275
3275 @example 3276 @example
3276 configure --package-path="~/.xemacs::/src/xemacs/site-packages:/src/xemacs/xemacs-packages:/src/xemacs/mule-packages" ... 3277 configure --package-path="~/.xemacs::/src/xemacs/site-packages:/src/xemacs/xemacs-packages:/src/xemacs/mule-packages" ...
3277 @end example 3278 @end example
3278 3279
3503 installed by default in @file{/usr/local/bin}; this explains why 3504 installed by default in @file{/usr/local/bin}; this explains why
3504 XEmacs in its default installation will find packages that you put 3505 XEmacs in its default installation will find packages that you put
3505 under @file{/usr/local/lib/xemacs}. 3506 under @file{/usr/local/lib/xemacs}.
3506 3507
3507 You can specify where exactly XEmacs looks for packages by using the 3508 You can specify where exactly XEmacs looks for packages by using the
3508 @samp{--package-prefix} or @samp{--package-path} parameters to 3509 @samp{--with-package-prefix} or @samp{--with-package-path} parameters to
3509 @file{configure} (or the equivalent settings in @file{config.inc}, 3510 @file{configure} (or the equivalent settings in @file{config.inc}, under
3510 under Windows), or setting the @samp{EMACSPACKAGEPATH} environment 3511 Windows), or setting the @samp{EMACSPACKAGEPATH} environment variable
3511 variable (which has the same format as @samp{--package-path}). 3512 (which has the same format as @samp{--with-package-path}). @xref{Q2.1.1}.
3512 @xref{Q2.1.1}.
3513 3513
3514 See @file{configure.usage} for more info about the format of these 3514 See @file{configure.usage} for more info about the format of these
3515 @file{configure} parameters. 3515 @file{configure} parameters.
3516 3516
3517 In addition to the system wide packages, each user can have his own 3517 In addition to the system wide packages, each user can have his own
3543 3543
3544 @node Q2.2.1, Q2.2.2, Q2.1.7, Installation 3544 @node Q2.2.1, Q2.2.2, Q2.1.7, Installation
3545 @unnumberedsubsec Q2.2.1: Libraries in non-standard locations 3545 @unnumberedsubsec Q2.2.1: Libraries in non-standard locations
3546 3546
3547 If your libraries are in a non-standard location, you can specify the location 3547 If your libraries are in a non-standard location, you can specify the location
3548 using the following flags to @file{configure}: 3548 using the following flags to @file{configure}. Under 21.4 or earlier:
3549 3549
3550 @example 3550 @example
3551 --site-libraries=WHATEVER 3551 --site-libraries=WHATEVER
3552 --site-includes=WHATEVER 3552 --site-includes=WHATEVER
3553 @end example 3553 @end example
3554 3554
3555 Under 21.5 or later:
3556
3557 @example
3558 --with-site-libraries=WHATEVER
3559 --with-site-includes=WHATEVER
3560 @end example
3561
3555 If you have multiple paths to specify, use the following syntax: 3562 If you have multiple paths to specify, use the following syntax:
3556 3563
3557 @example 3564 @example
3558 --site-libraries='/path/one /path/two /path/etc' 3565 --site-libraries='/path/one /path/two /path/etc'
3566 @end example
3567
3568 If the libraries and headers reside in the directories @samp{lib} and
3569 @samp{include} of a common root (say @samp{/sw}) then both can be
3570 specified with a single option:
3571
3572 @example
3573 --site-prefixes=WHATEVER
3574 @end example
3575
3576 or for 21.5:
3577
3578 @example
3579 --with-site-prefixes=WHATEVER
3559 @end example 3580 @end example
3560 3581
3561 @node Q2.2.2, Q2.3.1, Q2.2.1, Installation 3582 @node Q2.2.2, Q2.3.1, Q2.2.1, Installation
3562 @unnumberedsubsec Q2.2.2: Why can't I strip XEmacs? 3583 @unnumberedsubsec Q2.2.2: Why can't I strip XEmacs?
3563 3584
3749 Build @samp{gcc -mno-cygwin} versions of the extra libs, i.e. @file{libpng}, 3770 Build @samp{gcc -mno-cygwin} versions of the extra libs, i.e. @file{libpng},
3750 @file{compface}, etc. 3771 @file{compface}, etc.
3751 3772
3752 @item 3773 @item
3753 Specify the target location of the extra libs on the command line 3774 Specify the target location of the extra libs on the command line
3754 to @file{configure}, e.g. 3775 to @file{configure}, e.g.for 21.4 or earlier
3755 @samp{./configure --site-prefixes=/build/libs i586-pc-mingw32}. 3776 @samp{./configure --site-prefixes=/build/libs i586-pc-mingw32} and for
3777 21.5 or later
3778 @samp{./configure --with-site-prefixes=/build/libs i586-pc-mingw32}.
3756 @end itemize 3779 @end itemize
3757 3780
3758 @node Q2.3.7, Q2.3.8, Q2.3.6, Installation 3781 @node Q2.3.7, Q2.3.8, Q2.3.6, Installation
3759 @unnumberedsubsec Q2.3.7: How do I compile with X support? 3782 @unnumberedsubsec Q2.3.7: How do I compile with X support?
3760 3783
3963 3986
3964 Please see the @file{PROBLEMS} file that comes with XEmacs (it's in 3987 Please see the @file{PROBLEMS} file that comes with XEmacs (it's in
3965 the top-level source directory) to read what it says about your 3988 the top-level source directory) to read what it says about your
3966 platform. 3989 platform.
3967 3990
3968 If you compiled XEmacs using @samp{--use-union-type} (or the option 3991 If you compiled XEmacs 21.4 or ealier using @samp{--use-union-type}, or
3969 @samp{USE_UNION_TYPE} in @file{config.inc} under Windows), try 3992 21.5 or later using @samp{--enable-union-type} (or in either case used
3970 recompiling again without it. The union type has been known to trigger 3993 the option @samp{USE_UNION_TYPE} in @file{config.inc} under Windows),
3971 compiler errors in a number of cases. 3994 try recompiling again without it. The union type has been known to
3995 trigger compiler errors in a number of cases.
3972 3996
3973 @node Q2.4.4, Q2.4.5, Q2.4.3, Installation 3997 @node Q2.4.4, Q2.4.5, Q2.4.3, Installation
3974 @unnumberedsubsec Q2.4.4: How to debug an XEmacs problem with a debugger 3998 @unnumberedsubsec Q2.4.4: How to debug an XEmacs problem with a debugger
3975 3999
3976 If XEmacs does crash on you, one of the most productive things you can 4000 If XEmacs does crash on you, one of the most productive things you can
3981 @item 4005 @item
3982 First of all, if the crash is at all reproducible, consider very 4006 First of all, if the crash is at all reproducible, consider very
3983 strongly recompiling your XEmacs with debugging symbols and with no 4007 strongly recompiling your XEmacs with debugging symbols and with no
3984 optimization (e.g. with GCC use the compiler flags @samp{-g -O0} -- 4008 optimization (e.g. with GCC use the compiler flags @samp{-g -O0} --
3985 that's an "oh" followed by a zero), and with the configure options 4009 that's an "oh" followed by a zero), and with the configure options
3986 @samp{--debug=yes} and @samp{--error-checking=all}. This will make 4010 @samp{--debug=yes} and @samp{--error-checking=all}
3987 your XEmacs run somewhat slower, but you are a lot more likely to 4011 (@samp{--enable-debug=yes} and @samp{--enable-error-checking=all} on
3988 catch the problem earlier (closer to its source). It makes it a lot 4012 XEmacs 21.5 or later). This will make your XEmacs run somewhat slower,
3989 easier to determine what's going on with a debugger. The way to 4013 but you are a lot more likely to catch the problem earlier (closer to
3990 control the compiler flags is with the configuration option 4014 its source). It makes it a lot easier to determine what's going on with
3991 @samp{--cflags}. If you have a recent version of 21.5, you should use 4015 a debugger. The way to control the compiler flags is with the
4016 configuration option @samp{--cflags} (@samp{--with-cflags} in 21.5). If
4017 you have a recent version of 21.5, you should use
3992 @samp{--without-optimization} in preference to directly setting 4018 @samp{--without-optimization} in preference to directly setting
3993 @samp{--cflags}. 4019 @samp{--cflags}.
3994 4020
3995 @item 4021 @item
3996 If it's not a true crash (@emph{i.e.}, XEmacs is hung, or a zombie 4022 If it's not a true crash (@emph{i.e.}, XEmacs is hung, or a zombie
4144 4170
4145 @item 4171 @item
4146 If you're using a debugger to get a C stack backtrace and you're seeing 4172 If you're using a debugger to get a C stack backtrace and you're seeing
4147 stack traces with some of the innermost frames mangled, it may be due to 4173 stack traces with some of the innermost frames mangled, it may be due to
4148 dynamic linking. (This happens especially under Linux.) Consider 4174 dynamic linking. (This happens especially under Linux.) Consider
4149 reconfiguring with @samp{--dynamic=no}. Also, sometimes (again under 4175 reconfiguring with @samp{--dynamic=no} (@samp{--with-dynamic=no} in 21.5
4150 Linux), stack backtraces of core dumps will have the frame where the 4176 or later). Also, sometimes (again under Linux), stack backtraces of
4151 fatal signal occurred mangled; if you can obtain a stack trace while 4177 core dumps will have the frame where the fatal signal occurred mangled;
4152 running the XEmacs process under a debugger, the stack trace should be 4178 if you can obtain a stack trace while running the XEmacs process under a
4153 clean. 4179 debugger, the stack trace should be clean.
4154 4180
4155 @email{1CMC3466@@ibm.mtsac.edu, Curtiss} suggests upgrading to ld.so 4181 @email{1CMC3466@@ibm.mtsac.edu, Curtiss} suggests upgrading to ld.so
4156 version 1.8 if dynamic linking and debugging is a problem on Linux. 4182 version 1.8 if dynamic linking and debugging is a problem on Linux.
4157 4183
4158 @item 4184 @item
4291 probably want to set a breakpoint on @code{signal_1}. Since such 4317 probably want to set a breakpoint on @code{signal_1}. Since such
4292 errors often occur during compiling, which is often triggered by a 4318 errors often occur during compiling, which is often triggered by a
4293 complex command run from a make suite, it may be easier to attach to 4319 complex command run from a make suite, it may be easier to attach to
4294 the process once it's running. 4320 the process once it's running.
4295 4321
4296 Under Microsoft Windows (and perhaps other operating systems), there 4322 Under Microsoft Windows (and perhaps other operating systems), there is
4297 is another useful trick you can do if you have configured with 4323 another useful trick you can do if you have configured with debugging
4298 debugging support (configure option @samp{--debug} or setting 4324 support (configure option @samp{--debug} (@samp{--with-debug} in 21.5)
4299 @samp{DEBUG_XEMACS} in @file{nt/config.inc}). Set the environment 4325 or setting @samp{DEBUG_XEMACS} in @file{nt/config.inc}). Set the
4300 variable @samp{XEMACSDEBUG} (as described above) to @samp{(setq 4326 environment variable @samp{XEMACSDEBUG} (as described above) to
4301 debug-on-error t)}. Then, when an error occurs noninteractively, 4327 @samp{(setq debug-on-error t)}. Then, when an error occurs
4302 instead of trying to invoke the Lisp debugger (which obviously won't 4328 noninteractively, instead of trying to invoke the Lisp debugger (which
4303 work), XEmacs will break out to a C debugger using 4329 obviously won't work), XEmacs will break out to a C debugger using
4304 @code{(force-debugging-signal t)}. @emph{NOTE}: This runs 4330 @code{(force-debugging-signal t)}. @emph{NOTE}: This runs
4305 @code{abort()}!!! (As well as and after executing INT 3 under MS 4331 @code{abort()}!!! (As well as and after executing INT 3 under MS
4306 Windows, which should invoke a debugger if it's active.) This is 4332 Windows, which should invoke a debugger if it's active.) This is
4307 guaranteed to kill XEmacs! (But in this situation, XEmacs is about to 4333 guaranteed to kill XEmacs! (But in this situation, XEmacs is about to
4308 die anyway, and if no debugger is present, this will usefully dump 4334 die anyway, and if no debugger is present, this will usefully dump
6439 6465
6440 @dfn{Network Audio System} (NAS) is a client-server sound library for X. 6466 @dfn{Network Audio System} (NAS) is a client-server sound library for X.
6441 6467
6442 @uref{http://radscan.com/nas.html}. 6468 @uref{http://radscan.com/nas.html}.
6443 6469
6444 To build XEmacs with it, use the @file{configure} flag @samp{--with-sound=nas}. 6470 To build XEmacs with it, use the @file{configure} flag
6471 @samp{--with-sound=nas} (@samp{--enable-sound=nas} in 21.5 or later).
6445 6472
6446 @dfn{Enlightened Sound Daemon} (ESD or EsounD) is yet another sound system. 6473 @dfn{Enlightened Sound Daemon} (ESD or EsounD) is yet another sound system.
6447 6474
6448 @uref{http://www.tux.org/~ricdude/EsounD.html}. 6475 @uref{http://www.tux.org/~ricdude/EsounD.html}.
6449 6476
6450 To build XEmacs with it, use the @file{configure} flag @samp{--with-sound=esd}. 6477 To build XEmacs with it, use the @file{configure} flag
6451 6478 @samp{--with-sound=esd} (@samp{--enable-sound=esd} in 21.5 or later).
6452 You can specify support for both with a flag like @samp{--with-sound=nas,esd}. 6479
6480 You can specify support for both with a flag like
6481 @samp{--with-sound=nas,esd} (@samp{--enable-sound=nas,esd} in 21.5 or
6482 later).
6453 6483
6454 @node Q5.3.4, Q5.4.1, Q5.3.3, External Subsystems 6484 @node Q5.3.4, Q5.4.1, Q5.3.3, External Subsystems
6455 @unnumberedsubsec Q5.3.4: Sunsite sounds don't play. 6485 @unnumberedsubsec Q5.3.4: Sunsite sounds don't play.
6456 6486
6457 I'm having some trouble with sounds I've downloaded from sunsite. They 6487 I'm having some trouble with sounds I've downloaded from sunsite. They
6871 or something similar) using a program called @code{movemail}. 6901 or something similar) using a program called @code{movemail}.
6872 This program interlocks with @code{/bin/mail} using the protocol 6902 This program interlocks with @code{/bin/mail} using the protocol
6873 defined by @code{/bin/mail}. 6903 defined by @code{/bin/mail}.
6874 6904
6875 There are various different protocols in general use, which you need to 6905 There are various different protocols in general use, which you need to
6876 specify using the @samp{--mail-locking} option to @file{configure}: 6906 specify using the @samp{--mail-locking} option
6907 (@samp{--with-mail-locking} in 21.5 or later) to @file{configure}:
6877 6908
6878 @table @samp 6909 @table @samp
6879 @item lockf 6910 @item lockf
6880 POSIX file locking with @code{lockf()} 6911 POSIX file locking with @code{lockf()}
6881 @item flock 6912 @item flock
7792 can't be ruled out. ``Arbitrary'' precision means precisely what it 7823 can't be ruled out. ``Arbitrary'' precision means precisely what it
7793 says. If you work with extremely large numbers, your machine may 7824 says. If you work with extremely large numbers, your machine may
7794 arbitrarily decide to hand you an unpleasant surprise rather than a 7825 arbitrarily decide to hand you an unpleasant surprise rather than a
7795 bignum @ref{Q7.2.2, XEmacs segfaults when I use very big numbers!}. 7826 bignum @ref{Q7.2.2, XEmacs segfaults when I use very big numbers!}.
7796 7827
7797 To configure with GNU MP, add 7828 To configure with GNU MP, add @samp{--use-number-lib=gmp}
7798 @samp{--use-number-lib=gmp} 7829 (@samp{--enable-bignum=gmp} in 21.5 or later) to your invocation of
7799 to your invocation of @file{configure}. For BSD MP, use 7830 @file{configure}. For BSD MP, use @samp{--use-number-lib=mp}
7800 @samp{--use-number-lib=mp}. 7831 (@samp{--enable-bignum=mp} for 21.5).
7801 7832
7802 If you would like to help with bignum support, especially on BSD MP, 7833 If you would like to help with bignum support, especially on BSD MP,
7803 please subscribe to the @uref{http://www.xemacs.org/Lists/#xemacs-beta, 7834 please subscribe to the @uref{http://www.xemacs.org/Lists/#xemacs-beta,
7804 XEmacs Beta mailing list}, and book up on @file{number-gmp.h} and 7835 XEmacs Beta mailing list}, and book up on @file{number-gmp.h} and
7805 @file{number-mp.h}. Jerry has promised to write internals documentation 7836 @file{number-mp.h}. Jerry has promised to write internals documentation