Undefine __USE_STRING_INLINES.
[kopensolaris-gnu/glibc.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 1476bd8..8897804 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -4,16 +4,13 @@ Library Maintenance
 How to Install the GNU C Library
 ================================
 
-   Installation of the GNU C library is relatively simple.
-
-   You need the latest version of GNU `make'.  Modifying the GNU C
-Library to work with other `make' programs would be so hard that we
-recommend you port GNU `make' instead.  *Really.*
+   Installation of the GNU C library is relatively simple, but usually
+requires several GNU tools to be installed already.
 
    To configure the GNU C library for your system, run the shell script
 `configure' with `sh'.  Use an argument which is the conventional GNU
 name for your system configuration--for example, `sparc-sun-sunos4.1',
-for a Sun 4 running Sunos 4.1.  *Note Installation:
+for a Sun 4 running SunOS 4.1.  *Note Installation:
 (gcc.info)Installation, for a full description of standard GNU
 configuration names.  If you omit the configuration name, `configure'
 will try to guess one for you by inspecting the system it is running
@@ -21,46 +18,6 @@ on.  It may or may not be able to come up with a guess, and the its
 guess might be wrong.  `configure' will tell you the canonical name of
 the chosen configuration before proceeding.
 
-   The GNU C Library currently supports configurations that match the
-following patterns:
-
-     alpha-dec-osf1
-     i386-ANYTHING-bsd4.3
-     i386-ANYTHING-gnu
-     i386-ANYTHING-isc2.2
-     i386-ANYTHING-isc3.N
-     i386-ANYTHING-sco3.2
-     i386-ANYTHING-sco3.2v4
-     i386-ANYTHING-sysv
-     i386-ANYTHING-sysv4
-     i386-force_cpu386-none
-     i386-sequent-bsd
-     i960-nindy960-none
-     m68k-hp-bsd4.3
-     m68k-mvme135-none
-     m68k-mvme136-none
-     m68k-sony-newsos3
-     m68k-sony-newsos4
-     m68k-sun-sunos4.N
-     mips-dec-ultrix4.N
-     mips-sgi-irix4.N
-     sparc-sun-solaris2.N
-     sparc-sun-sunos4.N
-
-   While no other configurations are supported, there are handy aliases
-for these few.  (These aliases work in other GNU software as well.)
-
-     decstation
-     hp320-bsd4.3 hp300bsd
-     i386-sco
-     i386-sco3.2v4
-     i386-sequent-dynix
-     i386-svr4
-     news
-     sun3-sunos4.N sun3
-     sun4-solaris2.N sun4-sunos5.N
-     sun4-sunos4.N sun4
-
    Here are some options that you should specify (if appropriate) when
 you run `configure':
 
@@ -76,8 +33,15 @@ you run `configure':
      building the GNU C Library.  On some systems, the library may not
      build properly if you do *not* use `gas'.
 
+`--with-gnu-binutils'
+     This option implies both `--with-gnu-ld' and `--with-gnu-as'.  On
+     systems where GNU tools are the system tools, there is no need to
+     specify this option.  These include GNU, GNU/Linux, and free BSD
+     systems.
+
+`--without-fp'
 `--nfp'
-     Use this option if your computer lacks hardware floating point
+     Use this option if your computer lacks hardware floating-point
      support.
 
 `--prefix=DIRECTORY'
@@ -89,6 +53,46 @@ you run `configure':
      subdirectories of `DIRECTORY'.  (You can also set this in
      `configparms'; see below.)
 
+`--enable-shared'
+`--disable-shared'
+     Enable or disable building of an ELF shared library on systems that
+     support it.  The default is to build the shared library on systems
+     using ELF when the GNU `binutils' are available.
+
+`--enable-profile'
+`--disable-profile'
+     Enable or disable building of the profiled C library, `-lc_p'.  The
+     default is to build the profiled library.  You may wish to disable
+     it if you don't plan to do profiling, because it doubles the build
+     time of compiling just the unprofiled static library.
+
+`--enable-omitfp'
+     Enable building a highly-optimized but possibly undebuggable
+     static C library.  This causes the normal static and shared (if
+     enabled) C libraries to be compiled with maximal optimization,
+     including the `-fomit-frame-pointer' switch that makes debugging
+     impossible on many machines, and without debugging information
+     (which makes the binaries substantially smaller).  An additional
+     static library is compiled with no optimization and full debugging
+     information, and installed as `-lc_g'.
+
+`--enable-bounded'
+`--disable-bounded'
+     Enable or disable building of the C library with support for bounded
+     pointers.  To do this one need the enhanced version of the GNU CC
+     with can generate code for bounded pointers.  This version of the
+     C library is necessary to run code which is also compiled using the
+     enhanced gcc for debugging purposes.
+
+There are two more options:
+
+`--with-gmp'
+`--with-gettext'
+     These options are not of much use for the normal installer of the
+     GNU libc.  Only maintainers need this to get automatic updates of
+     the files from these packages in the GNU C library source tree.
+
+
    The simplest way to run `configure' is to do it in the directory
 that contains the library sources.  This prepares to build the library
 in that very directory.
@@ -141,57 +145,110 @@ work with object files for the target you configured for.
 in the GNU C compiler, so you may need to compile the library with GCC.
 (In fact, all of the existing complete ports require GCC.)
 
-   The current release of the C library contains some header files that
-the compiler normally provides: `stddef.h', `stdarg.h', and several
-files with names of the form `va-MACHINE.h'.  The versions of these
-files that came with older releases of GCC do not work properly with
-the GNU C library.  The `stddef.h' file in release 2.2 and later of GCC
-is correct.  If you have release 2.2 or later of GCC, use its version
-of `stddef.h' instead of the C library's.  To do this, put the line
-`override stddef.h =' in `configparms'.  The other files are corrected
-in release 2.3 and later of GCC.  `configure' will automatically detect
-whether the installed `stdarg.h' and `va-MACHINE.h' files are
-compatible with the C library, and use its own if not.
-
-   There is a potential problem with the `size_t' type and versions of
-GCC prior to release 2.4.  ANSI C requires that `size_t' always be an
-unsigned type.  For compatibility with existing systems' header files,
-GCC defines `size_t' in `stddef.h' to be whatever type the system's
-`sys/types.h' defines it to be.  Most Unix systems that define `size_t'
-in `sys/types.h', define it to be a signed type.  Some code in the
-library depends on `size_t' being an unsigned type, and will not work
-correctly if it is signed.
-
-   The GNU C library code which expects `size_t' to be unsigned is
-correct.  The definition of `size_t' as a signed type is incorrect.
-Versions 2.4 and later of GCC always define `size_t' as an unsigned
-type, and GCC's `fixincludes' script massages the system's
-`sys/types.h' so as not to conflict with this.
-
-   In the meantime, we work around this problem by telling GCC
-explicitly to use an unsigned type for `size_t' when compiling the GNU C
-library.  `configure' will automatically detect what type GCC uses for
-`size_t' arrange to override it if necessary.
-
-   To build the library, type `make lib'.  This will produce a lot of
-output, some of which looks like errors from `make' (but isn't).  Look
-for error messages from `make' containing `***'.  Those indicate that
-something is really wrong.
+   To build the library and related programs, type `make'.  This will
+produce a lot of output, some of which may look like errors from `make'
+(but isn't).  Look for error messages from `make' containing `***'.
+Those indicate that something is really wrong.
 
    To build and run some test programs which exercise some of the
-library facilities, type `make tests'.  This will produce several files
+library facilities, type `make check'.  This will produce several files
 with names like `PROGRAM.out'.
 
    To format the `GNU C Library Reference Manual' for printing, type
-`make dvi'.  To format the Info version of the manual for on line
-reading with `C-h i' in Emacs or with the `info' program, type
-`make info'.
+`make dvi'.
 
    To install the library and its header files, and the Info files of
-the manual, type `make install', after setting the installation
-directories in `configparms'.  This will build things if necessary,
+the manual, type `make install'.  This will build things if necessary,
 before installing them.
 
+Recommended Tools to Install the GNU C Library
+----------------------------------------------
+
+   We recommend installing the following GNU tools before attempting to
+build the GNU C library:
+
+   * `make' 3.75
+
+     You need the latest version of GNU `make'.  Modifying the GNU C
+     Library to work with other `make' programs would be so hard that we
+     recommend you port GNU `make' instead.  *Really.* We recommend
+     version GNU `make' version 3.75 or later.
+
+   * GCC 2.7.2.1
+
+     On most platforms, the GNU C library can only be compiled with the
+     GNU C compiler.  We recommend GCC version 2.7.2 or later; earlier
+     versions may have problems.
+
+   * `binutils' 2.7
+
+     Using the GNU `binutils' (assembler, linker, and related tools) is
+     preferable when possible, and they are required to build an ELF
+     shared C library.  We recommend `binutils' version 2.7 or later;
+     earlier versions are known to have problems or to not support all
+     architectures.
+
+Supported Configurations
+------------------------
+
+   The GNU C Library currently supports configurations that match the
+following patterns:
+
+     alpha-ANYTHING-linux
+     alpha-ANYTHING-linuxecoff
+     iX86-ANYTHING-gnu
+     iX86-ANYTHING-linux
+     m68k-ANYTHING-linux
+     mips-ANYTHING-linux
+     sparc-ANYTHING-linux
+     powerpc-ANYTHING-linux
+
+   Former versions of this library used to support the following
+configurations but the current status is unknown:
+
+     alpha-dec-osf1
+     iX86-ANYTHING-bsd4.3
+     iX86-ANYTHING-isc2.2
+     iX86-ANYTHING-isc3.N
+     iX86-ANYTHING-sco3.2
+     iX86-ANYTHING-sco3.2v4
+     iX86-ANYTHING-sysv
+     iX86-ANYTHING-sysv4
+     iX86-force_cpu386-none
+     iX86-sequent-bsd
+     i960-nindy960-none
+     m68k-hp-bsd4.3
+     m68k-mvme135-none
+     m68k-mvme136-none
+     m68k-sony-newsos3
+     m68k-sony-newsos4
+     m68k-sun-sunos4.N
+     mips-dec-ultrix4.N
+     mips-sgi-irix4.N
+     sparc-sun-solaris2.N
+     sparc-sun-sunos4.N
+
+   Each case of `iX86' can be `i386', `i486', `i586', or `i686'.  All
+of those configurations produce a library that can run on any of these
+processors.  The library will be optimized for the specified processor,
+but will not use instructions not available on all of them.
+
+   While no other configurations are supported, there are handy aliases
+for these few.  (These aliases work in other GNU software as well.)
+
+     decstation
+     hp320-bsd4.3 hp300bsd
+     i486-gnu
+     i586-linux
+     i386-sco
+     i386-sco3.2v4
+     i386-sequent-dynix
+     i386-svr4
+     news
+     sun3-sunos4.N sun3
+     sun4-solaris2.N sun4-sunos5.N
+     sun4-sunos4.N sun4
+
 Reporting Bugs
 ==============
 
@@ -246,8 +303,10 @@ But what they do is fairly straightforward, and only requires that you
 define a few variables in the right places.
 
    The library sources are divided into subdirectories, grouped by
-topic.  The `string' subdirectory has all the string-manipulation
-functions, `stdio' has all the standard I/O functions, etc.
+topic.
+
+   The `string' subdirectory has all the string-manipulation functions,
+`math' has all the mathematical functions, etc.
 
    Each subdirectory contains a simple makefile, called `Makefile',
 which defines a few `make' variables and then includes the global
@@ -283,7 +342,9 @@ The basic variables that a subdirectory makefile defines are:
      data in a file called `TEST-PROGRAM.input'; it will be given to
      the test program on its standard input.  If a test program wants
      to be run with arguments, put the arguments (all on a single line)
-     in a file called `TEST-PROGRAM.args'.
+     in a file called `TEST-PROGRAM.args'.  Test programs should exit
+     with zero status when the test passes, and nonzero status when the
+     test indicates a bug in the library or error in building.
 
 `others'
      The names of "other" programs associated with this section of the
@@ -362,18 +423,24 @@ So the final list is `unix/bsd/vax unix/bsd unix/inet unix posix'.
    `sysdeps' has two "special" subdirectories, called `generic' and
 `stub'.  These two are always implicitly appended to the list of
 subdirectories (in that order), so you needn't put them in an `Implies'
-file, and you should not create any subdirectories under them.
-`generic' is for things that can be implemented in machine-independent
-C, using only other machine-independent functions in the C library.
-`stub' is for "stub" versions of functions which cannot be implemented
-on a particular machine or operating system.  The stub functions always
-return an error, and set `errno' to `ENOSYS' (Function not
-implemented).  *Note Error Reporting::.
+file, and you should not create any subdirectories under them intended
+to be new specific categories.  `generic' is for things that can be
+implemented in machine-independent C, using only other
+machine-independent functions in the C library.  `stub' is for "stub"
+versions of functions which cannot be implemented on a particular
+machine or operating system.  The stub functions always return an
+error, and set `errno' to `ENOSYS' (Function not implemented).  *Note
+Error Reporting::.
 
    A source file is known to be system-dependent by its having a
-version in `generic' or `stub'; every system-dependent function should
-have either a generic or stub implementation (there is no point in
-having both).
+version in `generic' or `stub'; every generally-available function whose
+implementation is system-dependent in should have either a generic or
+stub implementation (there is no point in having both).  Some rare
+functions are only useful on specific systems and aren't defined at all
+on others; these do not appear anywhere in the system-independent
+source code or makefiles (including the `generic' and `stub'
+directories), only in the system-dependent `Makefile' in the specific
+system's subdirectory.
 
    If you come across a file that is in one of the main source
 directories (`string', `stdio', etc.), and you want to write a machine-
@@ -605,10 +672,10 @@ level of the `sysdeps' hierarchy.  This directory contains
 subdirectories (and subdirectory trees) for various Unix variants.
 
    The functions which are system calls in most Unix systems are
-implemented in assembly code in files in `sysdeps/unix'.  These files
-are named with a suffix of `.S'; for example, `__open.S'.  Files ending
-in `.S' are run through the C preprocessor before being fed to the
-assembler.
+automatically generated from the `syscalls.list' files for the appropriate
+archirecture.  The format of the syscalls.list files is quite easy: only
+a few informations are necessary line the system call name, the number of
+arguments and such.  The files are run through the C preprocessor.
 
    These files all use a set of macros that should be defined in
 `sysdep.h'.  The `sysdep.h' file in `sysdeps/unix' partially defines
@@ -629,18 +696,111 @@ generated are `ioctls.h', `errnos.h', `sys/param.h', and `errlist.c'
 Contributors to the GNU C Library
 =================================
 
-   The GNU C library was written almost entirely by Roland McGrath, who
-now maintains it.  Some parts of the library were contributed or worked
-on by other people.
+   The GNU C library was written originally by Roland McGrath.  Some
+parts of the library were contributed or worked on by other people.
 
    * The `getopt' function and related code were written by Richard
      Stallman, David J. MacKenzie, and Roland McGrath.
 
-   * Most of the math functions are taken from 4.4 BSD; they have been
-     modified only slightly to work with the GNU C library.  The
-     Internet-related code (most of the `inet' subdirectory) and several
-     other miscellaneous functions and header files have been included
-     with little or no modification.
+   * The merge sort function `qsort' was written by Michael J. Haertel.
+
+   * The quick sort function used as a fallback by `qsort' was written
+     by Douglas C. Schmidt.
+
+   * The memory allocation functions `malloc', `realloc' and `free' and
+     related code were written by Michael J. Haertel.
+
+   * Fast implementations of many of the string functions (`memcpy',
+     `strlen', etc.) were written by Torbjorn Granlund.
+
+   * The `tar.h' header file was written by David J. MacKenzie.
+
+   * The port to the MIPS DECStation running Ultrix 4
+     (`mips-dec-ultrix4') was contributed by Brendan Kehoe and Ian
+     Lance Taylor.
+
+   * The DES encryption function `crypt' and related functions were
+     contributed by Michael Glad.
+
+   * The `ftw' function was contributed by Ian Lance Taylor.
+
+   * The startup code to support SunOS shared libraries was contributed
+     by Tom Quinn.
+
+   * The `mktime' function was contributed by Paul Eggert.
+
+   * The port to the Sequent Symmetry running Dynix version 3
+     (`i386-sequent-bsd') was contributed by Jason Merrill.
+
+   * The timezone support code is derived from the public-domain
+     timezone package by Arthur David Olson and his many contributors.
+
+   * The port to the DEC Alpha running OSF/1 (`alpha-dec-osf1') was
+     contributed by Brendan Kehoe, using some code written by Roland
+     McGrath.
+
+   * The port to SGI machines running Irix 4 (`mips-sgi-irix4') was
+     contributed by Tom Quinn.
+
+   * The port of the Mach and Hurd code to the MIPS architecture
+     (`mips-ANYTHING-gnu') was contributed by Kazumoto Kojima.
+
+   * The floating-point printing function used by `printf' and friends
+     and the floating-point reading function used by `scanf', `strtod'
+     and friends were written by Ulrich Drepper.  The multi-precision
+     integer functions used in those functions are taken from GNU MP,
+     which was contributed by Torbjorn Granlund.
+
+   * The internationalization support in the library, and the support
+     programs `locale' and `localedef', were written by Ulrich Drepper.
+     Ulrich Drepper adapted the support code for message catalogs
+     (`libintl.h', etc.) from the GNU `gettext' package, which he also
+     wrote.  He also contributed the `catgets' support and the entire
+     suite of multi-byte and wide-character support functions
+     (`wctype.h', `wchar.h', etc.).
+
+   * The implementations of the `nsswitch.conf' mechanism and the files
+     and DNS backends for it were designed and written by Ulrich
+     Drepper and Roland McGrath, based on a backend interface defined
+     by Peter Eriksson.
+
+   * The port to Linux i386/ELF (`i386-ANYTHING-linux') was contributed
+     by Ulrich Drepper, based in large part on work done in Hongjiu
+     Lu's Linux version of the GNU C Library.
+
+   * The port to Linux/m68k (`m68k-ANYTHING-linux') was contributed by
+     Andreas Schwab.
+
+   * The ports to Linux/ARM (`arm-ANYTHING-linuxaout') and ARM standalone
+     (`arm-ANYTHING-none'), as well as parts of the IPv6 support code, were
+     contributed by Philip Blundell.
+
+   * Richard Henderson contributed the ELF dynamic linking code and
+     other support for the Alpha processor.
+
+   * David Mosberger-Tang contributed the port to Linux/Alpha
+     (`alpha-ANYTHING-linux').
+
+   * Stephen R. van den Berg contributed a highly-optimized `strstr'
+     function.
+
+   * Ulrich Drepper contributed the `hsearch' and `drand48' families of
+     functions; reentrant `...`_r'' versions of the `random' family;
+     System V shared memory and IPC support code; and several
+     highly-optimized string functions for iX86 processors.
+
+   * The math functions are taken from `fdlibm-5.1' by Sun
+     Microsystems, as modified by J.T. Conklin, Ian Lance Taylor,
+     Ulrich Drepper, Andreas Schwab, and Roland McGrath.
+
+   * The `libio' library used to implement `stdio' functions on some
+     platforms was written by Per Bothner and modified by Ulrich
+     Drepper.
+
+   * Some of the Internet-related code (most of the `inet'
+     subdirectory) and several other miscellaneous functions and
+     header files have been included from 4.4 BSD with little or no
+     modification.
 
      All code incorporated from 4.4 BSD is under the following
      copyright:
@@ -694,70 +854,7 @@ on by other people.
      changes to fit into the GNU C library and to fit the ANSI C
      standard, but the functional code is Berkeley's.
 
-   * The merge sort function `qsort' was written by Michael J. Haertel.
-
-   * The quick sort function used as a fallback by `qsort' was written
-     by Douglas C. Schmidt.
-
-   * The memory allocation functions `malloc', `realloc' and `free' and
-     related code were written by Michael J. Haertel.
-
-   * Fast implementations of many of the string functions (`memcpy',
-     `strlen', etc.) were written by Torbjorn Granlund.
-
-   * Some of the support code for Mach is taken from Mach 3.0 by CMU,
-     and is under the following copyright terms:
-
-               Mach Operating System
-               Copyright (C) 1991,1990,1989 Carnegie Mellon University
-               All Rights Reserved.
-
-          Permission to use, copy, modify and distribute this software
-          and its documentation is hereby granted, provided that both
-          the copyright notice and this permission notice appear in all
-          copies of the software, derivative works or modified
-          versions, and any portions thereof, and that both notices
-          appear in supporting documentation.
-
-          CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS
-          IS" CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF
-          ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF
-          THIS SOFTWARE.
-
-          Carnegie Mellon requests users of this software to return to
-
-                Software Distribution Coordinator
-                School of Computer Science
-                Carnegie Mellon University
-                Pittsburgh PA 15213-3890
-
-          or `Software.Distribution@CS.CMU.EDU' any improvements or
-          extensions that they make and grant Carnegie Mellon the
-          rights to redistribute these changes.
-
-   * The `tar.h' header file was written by David J. MacKenzie.
-
-   * The port to the MIPS DECStation running Ultrix 4
-     (`mips-dec-ultrix4') was contributed by Brendan Kehoe and Ian
-     Lance Taylor.
-
-   * The DES encryption function `crypt' and related functions were
-     contributed by Michael Glad.
-
-   * The `ftw' function was contributed by Ian Lance Taylor.
-
-   * The code to support SunOS shared libraries was contributed by Tom
-     Quinn.
-
-   * The `mktime' function was contributed by Noel Cragg.
-
-   * The port to the Sequent Symmetry running Dynix version 3
-     (`i386-sequent-bsd') was contributed by Jason Merrill.
-
-   * The timezone support code is derived from the public-domain
-     timezone package by Arthur David Olson.
-
-   * The Internet resolver code is taken directly from BIND 4.9.1,
+   * The Internet resolver code is taken directly from BIND 4.9.5,
      which is under both the Berkeley copyright above and also:
 
           Portions Copyright (C) 1993 by Digital Equipment Corporation.
@@ -780,15 +877,6 @@ on by other people.
           OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
           WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
-   * The port to the DEC Alpha running OSF/1 (`alpha-dec-osf1') was
-     contributed by Brendan Kehoe, using some code written by Roland
-     McGrath.
-
-   * The floating-point printing function used by `printf' and friends
-     was written by Roland McGrath and Torbjorn Granlund.  The
-     multi-precision integer functions used in that function are taken
-     from GNU MP, which was contributed by Torbjorn Granlund.
-
    * The code to support Sun RPC is taken verbatim from Sun's
      RPCSRC-4.0 distribution, and is covered by this copyright:
 
@@ -824,9 +912,213 @@ on by other people.
                2550 Garcia Avenue
                Mountain View, California  94043
 
-   * The port to SGI machines running Irix 4 (`mips-sgi-irix4') was
-     contributed by Tom Quinn.
+   * Some of the support code for Mach is taken from Mach 3.0 by CMU,
+     and is under the following copyright terms:
 
-   * The port of the Mach and Hurd code to the MIPS architecture
-     (`mips-ANYTHING-gnu') was contribued by Kazumoto Kojima.
+               Mach Operating System
+               Copyright (C) 1991,1990,1989 Carnegie Mellon University
+               All Rights Reserved.
+
+          Permission to use, copy, modify and distribute this software
+          and its documentation is hereby granted, provided that both
+          the copyright notice and this permission notice appear in all
+          copies of the software, derivative works or modified
+          versions, and any portions thereof, and that both notices
+          appear in supporting documentation.
+
+          CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS
+          IS" CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF
+          ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF
+          THIS SOFTWARE.
+
+          Carnegie Mellon requests users of this software to return to
+
+                Software Distribution Coordinator
+                School of Computer Science
+                Carnegie Mellon University
+                Pittsburgh PA 15213-3890
+
+          or `Software.Distribution@CS.CMU.EDU' any improvements or
+          extensions that they make and grant Carnegie Mellon the
+          rights to redistribute these changes.
 
+   * The `getaddrinfo' function is written by Craig Metz and it has the
+     following copyright:
+
+       The Inner Net License, Version 2.00
+       ===================================
+
+       The author(s) grant permission for redistribution and use in source and
+       binary forms, with or without modification, of the software
+       and documentation provided that the following conditions are met:
+
+       0. If you receive a version of the software that is
+          specifically labelled as not being for redistribution
+          (check the version message and/or README), you are not
+          permitted to redistribute that version of the software in
+          any way or form.
+       1. All terms of the all other applicable copyrights and
+          licenses must be followed.
+       2. Redistributions of source code must retain the authors'
+          copyright notice(s), this list of conditions, and the
+          following disclaimer.
+       3. Redistributions in binary form must reproduce the authors'
+          copyright notice(s), this list of conditions, and the
+          following disclaimer in the documentation and/or other
+          materials provided with the distribution.
+       4. All advertising materials mentioning features or use of
+          this software must display the following acknowledgement
+          with the name(s) of the authors as specified in the
+          copyright notice(s) substituted where indicated:
+
+       This product includes software developed by <name(s)>, The Inner
+       Net, and other contributors.
+
+       5. Neither the name(s) of the author(s) nor the names of its
+          contributors may be used to endorse or promote products
+          derived from this software without specific prior written
+          permission.
+
+       THIS SOFTWARE IS PROVIDED BY ITS AUTHORS AND CONTRIBUTORS ``AS
+       IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+       LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+       FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+       SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+       INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+       DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+       SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+       OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+       LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+       (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+       THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+       OF SUCH DAMAGE.
+
+       If these license terms cause you a real problem, contact the author.
++
+   * The `db' library is taken from the db-2.3.4 distribution by Sleepycat
+     Software, and is covered by the following terms:
+
+       /*-
+        * @(#)LICENSE  10.4 (Sleepycat) 7/24/97
+        */
+
+       The following are the copyrights and redistribution conditions
+       that apply to this copy of the DB software.  For a license to use,
+       redistribute or sell DB software under conditions other than those
+       described here, or to purchase support for this software, please
+       contact Sleepycat Software at one of the following addresses:
+
+               Sleepycat Software              db@sleepycat.com
+               394 E. Riding Dr.               +1-508-287-4781
+               Carlisle, MA 01741
+               USA
+
+       =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+       /*
+        * Copyright (c) 1990, 1993, 1994, 1995, 1996, 1997
+        *      Sleepycat Software.  All rights reserved.
+        *
+        * Redistribution and use in source and binary forms, with or without
+        * modification, are permitted provided that the following conditions
+        * are met:
+        * 1. Redistributions of source code must retain the above copyright
+        *    notice, this list of conditions and the following disclaimer.
+        * 2. Redistributions in binary form must reproduce the above copyright
+        *    notice, this list of conditions and the following disclaimer in
+        *    the documentation and/or other materials provided with the
+        *    distribution.
+        * 3. Redistributions in any form must be accompanied by information on
+        *    how to obtain complete source code for the DB software and any
+        *    accompanying software that uses the DB software.  The source code
+        *    must either be included in the distribution or be available for
+        *    no more than the cost of distribution plus a nominal fee, and
+        *    must be freely redistributable under reasonable conditions.  For
+        *    an executable file, complete source code means the source code
+        *    for all modules it contains.  It does not mean source code for
+        *    modules or files that typically accompany the operating system
+        *    on which the executable file runs, e.g., standard library
+        *    modules or system header files.
+        *
+        * THIS SOFTWARE IS PROVIDED BY SLEEPYCAT SOFTWARE ``AS IS'' AND
+        * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+        * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+        * PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL SLEEPYCAT
+        * SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+        * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+        * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+        * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+        * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+        * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+        * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+        * SUCH DAMAGE.
+        */
+       /*
+        * Copyright (c) 1990, 1993, 1994, 1995
+        *      The Regents of the University of California.  All rights
+        *      reserved.
+        *
+        * Redistribution and use in source and binary forms, with or without
+        * modification, are permitted provided that the following conditions
+        * are met:
+        * 1. Redistributions of source code must retain the above copyright
+        *    notice, this list of conditions and the following disclaimer.
+        * 2. Redistributions in binary form must reproduce the above copyright
+        *    notice, this list of conditions and the following disclaimer in
+        *    the documentation and/or other materials provided with the
+        *    distribution.
+        * 3. All advertising materials mentioning features or use of this
+        *    software must display the following acknowledgement:
+        *      This product includes software developed by the University of
+        *      California, Berkeley and its contributors.
+        * 4. Neither the name of the University nor the names of its
+        *    contributors may be used to endorse or promote products derived
+        *    from this software without specific prior written permission.
+        *
+        * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS''
+        * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+        * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+        * PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS
+        * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+        * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+        * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+        * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+        * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+        * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+        * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+        * THE POSSIBILITY OF SUCH DAMAGE.
+        */
+       /*
+        * Copyright (c) 1995, 1996
+        *      The President and Fellows of Harvard University.  All rights
+        *      reserved.
+        *
+        * Redistribution and use in source and binary forms, with or without
+        * modification, are permitted provided that the following conditions
+        * are met:
+        * 1. Redistributions of source code must retain the above copyright
+        *    notice, this list of conditions and the following disclaimer.
+        * 2. Redistributions in binary form must reproduce the above copyright
+        *    notice, this list of conditions and the following disclaimer in
+        *    the documentation and/or other materials provided with the
+        *    distribution.
+        * 3. All advertising materials mentioning features or use of this
+        *    software must display the following acknowledgement:
+        *      This product includes software developed by Harvard University
+        *      and its contributors.
+        * 4. Neither the name of the University nor the names of its
+        *    contributors may be used to endorse or promote products derived
+        *    from this software without specific prior written permission.
+        *
+        * THIS SOFTWARE IS PROVIDED BY HARVARD AND ITS CONTRIBUTORS ``AS IS''
+        * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+        * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+        * PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL HARVARD OR
+        * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+        * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+        * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+        * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+        * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+        * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+        * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+        * POSSIBILITY OF SUCH DAMAGE.
+        */