Regenerated.

This commit is contained in:
Andreas Jaeger 2000-03-10 09:36:06 +00:00
parent b4e54243c4
commit c0389ee432
4 changed files with 89 additions and 46 deletions

2
FAQ
View File

@ -1078,7 +1078,7 @@ Note that I have at this point no information about any other platform.
{AJ} This is at first a kernel issue. The kernel defines limits with {AJ} This is at first a kernel issue. The kernel defines limits with
OPEN_MAX the number of simultaneous open files and with FD_SETSIZE the OPEN_MAX the number of simultaneous open files and with FD_SETSIZE the
number of used file descriptors. You need to change these values in your number of used file descriptors. You need to change these values in your
kernel and recompile the kernel so that the kernel allows to use more open kernel and recompile the kernel so that the kernel allows more open
files. You don't necessarily need to recompile the GNU C library since the files. You don't necessarily need to recompile the GNU C library since the
only place where OPEN_MAX and FD_SETSIZE is really needed in the library only place where OPEN_MAX and FD_SETSIZE is really needed in the library
itself is the size of fd_set which is used by select. itself is the size of fd_set which is used by select.

73
INSTALL
View File

@ -36,8 +36,8 @@ Configuring and compiling GNU Libc
advise to build it in a separate build directory. For example, if you advise to build it in a separate build directory. For example, if you
have unpacked the glibc sources in `/src/gnu/glibc-2.1.0', create a have unpacked the glibc sources in `/src/gnu/glibc-2.1.0', create a
directory `/src/gnu/glibc-build' to put the object files in. This directory `/src/gnu/glibc-build' to put the object files in. This
allows to remove the whole build directory in case an error occurs allows removing the whole build directory in case an error occurs,
which is the safest way to get a clean way and should always be done. which is the safest way to get a fresh start and should always be done.
From your object directory, run the shell script `configure' found From your object directory, run the shell script `configure' found
at the top level of the source tree. In the scenario above, you'd type at the top level of the source tree. In the scenario above, you'd type
@ -193,6 +193,23 @@ distribution already includes the on-line formatted version of the
manual, as Info files. You can regenerate those with `make info', but manual, as Info files. You can regenerate those with `make info', but
it shouldn't be necessary. it shouldn't be necessary.
The library has a number of special-purpose configuration parameters
which you can find in `Makeconfig'. These can be overwritten with the
file `configparms'. To change them, create a `configparms' in your
build directory and add values as appropriate for your system. The
file is included and parsed by `make' and has to follow the conventions
for makefiles.
It is easy to configure the GNU C library for cross-compilation by
setting a few variables in `configparms'. Set `CC' to the
cross-compiler for the target you configured the library for; it is
important to use this same `CC' value when running `configure', like
this: `CC=TARGET-gcc configure TARGET'. Set `BUILD_CC' to the compiler
to use for for programs run on the build system as part of compiling
the library. You may need to set `AR' and `RANLIB' to cross-compiling
versions of `ar' and `ranlib' if the native tools are not configured to
work with object files for the target you configured for.
Installing the C Library Installing the C Library
======================== ========================
@ -204,24 +221,37 @@ recommend that you shut the system down to single-user mode first, and
reboot afterward. This minimizes the risk of breaking things when the reboot afterward. This minimizes the risk of breaking things when the
library changes out from underneath. library changes out from underneath.
If you're upgrading from Linux libc5 or some other C library, you
need to replace the `/usr/include' with a fresh directory before
installing it. The new `/usr/include' should contain the Linux
headers, but nothing else.
You must first build the library (`make'), optionally check it
(`make check'), switch the include directories and then install (`make
install'). The steps must be done in this order. Not moving the
directory before install will result in an unusable mixture of header
files from both libraries, but configuring, building, and checking the
library requires the ability to compile and run programs against the old
library.
If you are upgrading from a previous installation of glibc 2.0 or If you are upgrading from a previous installation of glibc 2.0 or
2.1, `make install' will do the entire job. If you're upgrading from 2.1, `make install' will do the entire job. You do not need to remove
Linux libc5 or some other C library, you need to rename the old the old includes - if you want to do so anyway you must then follow the
`/usr/include' directory before running `make install', or you will end order given above.
up with a mixture of header files from both libraries, and you won't be
able to compile anything. You may also need to reconfigure GCC to work You may also need to reconfigure GCC to work with the new library.
with the new library. The easiest way to do that is to figure out the The easiest way to do that is to figure out the compiler switches to
compiler switches to make it work again make it work again (`-Wl,--dynamic-linker=/lib/ld-linux.so.2' should
(`-Wl,--dynamic-linker=/lib/ld-linux.so.2' should work on Linux work on Linux systems) and use them to recompile gcc. You can also
systems) and use them to recompile gcc. You can also edit the specs edit the specs file (`/usr/lib/gcc-lib/TARGET/VERSION/specs'), but that
file (`/usr/lib/gcc-lib/TARGET/VERSION/specs'), but that is a bit of a is a bit of a black art.
black art.
You can install glibc somewhere other than where you configured it You can install glibc somewhere other than where you configured it
to go by setting the `install_root' variable on the command line for to go by setting the `install_root' variable on the command line for
`make install'. The value of this variable is prepended to all the `make install'. The value of this variable is prepended to all the
paths for installation. This is useful when setting up a chroot paths for installation. This is useful when setting up a chroot
environment or preparing a binary distribution. environment or preparing a binary distribution. The directory should be
specified with an absolute file name.
Glibc 2.1 includes two daemons, `nscd' and `utmpd', which you may or Glibc 2.1 includes two daemons, `nscd' and `utmpd', which you may or
may not want to run. `nscd' caches name service lookups; it can may not want to run. `nscd' caches name service lookups; it can
@ -273,13 +303,13 @@ build the GNU C library:
to have bugs which only show up in big projects like GNU `libc'. to have bugs which only show up in big projects like GNU `libc'.
Version 3.76.1 seems OK but some people have reported problems. Version 3.76.1 seems OK but some people have reported problems.
* EGCS 1.1.1, 1.1 or 1.0.3, or GCC 2.8.1, 2.95, 2.95.1 * EGCS 1.1.1, 1.1 or 1.0.3, or GCC 2.8.1, 2.95 or newer
The GNU C library can only be compiled with the GNU C compiler The GNU C library can only be compiled with the GNU C compiler
family. As of the 2.1 release, EGCS 1.0.3 or higher is required. family. As of the 2.1 release, EGCS 1.0.3 or higher is required.
GCC 2.8.1 can also be used (but see the FAQ for reasons why you GCC 2.8.1 can also be used (but see the FAQ for reasons why you
might not want to). Earlier versions simply are too buggy. As of might not want to). Earlier versions simply are too buggy. As of
this writing, GCC 2.95.1 is the compiler we advise to use. this writing, GCC 2.95.2 is the compiler we advise to use.
You can use whatever compiler you like to compile programs that You can use whatever compiler you like to compile programs that
use GNU libc, but be aware that both GCC 2.7 and 2.8 have bugs in use GNU libc, but be aware that both GCC 2.7 and 2.8 have bugs in
@ -327,6 +357,15 @@ build the GNU C library:
Perl is not required, but it is used if present to test the Perl is not required, but it is used if present to test the
installation. We may decide to use it elsewhere in the future. installation. We may decide to use it elsewhere in the future.
* GNU `sed' 3.02 or newer
Sed is used in several places to generate files. Most scripts
work with any version of `sed'. The known exception is the script
`po2test.sed' in the `intl' subdirectory which is used to generate
`msgs.h' for the testsuite. This script works correctly only with
GNU `sed' 3.02. If you like to run the testsuite, you should
definitly upgrade `sed'.
If you change any of the `configure.in' files you will also need If you change any of the `configure.in' files you will also need
@ -467,7 +506,7 @@ twice.
If you think you have found some way in which the GNU C library does If you think you have found some way in which the GNU C library does
not conform to the ISO and POSIX standards (*note Standards and not conform to the ISO and POSIX standards (*note Standards and
Portability::.), that is definitely a bug. Report it! Portability::), that is definitely a bug. Report it!
Once you're sure you've found a bug, try to narrow it down to the Once you're sure you've found a bug, try to narrow it down to the
smallest test case that reproduces the problem. In the case of a C smallest test case that reproduces the problem. In the case of a C

56
NOTES
View File

@ -12,7 +12,7 @@ options.
You should define these macros by using `#define' preprocessor You should define these macros by using `#define' preprocessor
directives at the top of your source code files. These directives directives at the top of your source code files. These directives
*must* come before any `#include' of a system header file. It is best _must_ come before any `#include' of a system header file. It is best
to make them the very first thing in the file, preceded only by to make them the very first thing in the file, preceded only by
comments. You could also use the `-D' option to GCC, but it's better comments. You could also use the `-D' option to GCC, but it's better
if you make the source files indicate their own meaning in a if you make the source files indicate their own meaning in a
@ -25,10 +25,10 @@ standards require functions with names that smaller ones reserve to the
user program. This is not mere pedantry -- it has been a problem in user program. This is not mere pedantry -- it has been a problem in
practice. For instance, some non-GNU programs define functions named practice. For instance, some non-GNU programs define functions named
`getline' that have nothing to do with this library's `getline'. They `getline' that have nothing to do with this library's `getline'. They
would not be compilable if all features were enabled indescriminantly. would not be compilable if all features were enabled indiscriminately.
This should not be used to verify that a program conforms to a This should not be used to verify that a program conforms to a
limited standard. It is insufficent for this purpose, as it will not limited standard. It is insufficient for this purpose, as it will not
protect you from including header files outside the standard, or protect you from including header files outside the standard, or
relying on semantics undefined within the standard. relying on semantics undefined within the standard.
@ -125,17 +125,16 @@ relying on semantics undefined within the standard.
extension (LFS). extension (LFS).
- Macro: _LARGEFILE64_SOURCE - Macro: _LARGEFILE64_SOURCE
If you define this macro an additional set of function gets If you define this macro an additional set of function is made
available which enables to use on 32 bit systems to use files of available which enables 32 bit systems to use files of sizes beyond
sizes beyond the usual limit of 2GB. This interface is not the usual limit of 2GB. This interface is not available if the
available if the system does not support files that large. On system does not support files that large. On systems where the
systems where the natural file size limit is greater than 2GB natural file size limit is greater than 2GB (i.e., on 64 bit
(i.e., on 64 bit systems) the new functions are identical to the systems) the new functions are identical to the replaced functions.
replaced functions.
The new functionality is made available by a new set of types and The new functionality is made available by a new set of types and
functions which replace existing. The names of these new objects functions which replace the existing ones. The names of these new
contain `64' to indicate the intention, e.g., `off_t' vs. objects contain `64' to indicate the intention, e.g., `off_t' vs.
`off64_t' and `fseeko' vs. `fseeko64'. `off64_t' and `fseeko' vs. `fseeko64'.
This macro was introduced as part of the Large File Support This macro was introduced as part of the Large File Support
@ -143,17 +142,17 @@ relying on semantics undefined within the standard.
offsets are not generally used (see `_FILE_OFFSET_BITS'. offsets are not generally used (see `_FILE_OFFSET_BITS'.
- Macro: _FILE_OFFSET_BITS - Macro: _FILE_OFFSET_BITS
This macro lets decide which file system interface shall be used, This macro determines which file system interface shall be used,
one replacing the other. While `_LARGEFILE64_SOURCE' makes the one replacing the other. While `_LARGEFILE64_SOURCE' makes the
64 bit interface available as an additional interface 64 bit interface available as an additional interface
`_FILE_OFFSET_BITS' allows to use the 64 bit interface to replace `_FILE_OFFSET_BITS' allows the 64 bit interface to replace the old
the old interface. interface.
If `_FILE_OFFSET_BITS' is undefined or if it is defined to the If `_FILE_OFFSET_BITS' is undefined, or if it is defined to the
value `32' nothing changes. The 32 bit interface is used and value `32', nothing changes. The 32 bit interface is used and
types like `off_t' have a size of 32 bits on 32 bit systems. types like `off_t' have a size of 32 bits on 32 bit systems.
If the macro is defined to the value `64' the large file interface If the macro is defined to the value `64', the large file interface
replaces the old interface. I.e., the functions are not made replaces the old interface. I.e., the functions are not made
available under different names as `_LARGEFILE64_SOURCE' does. available under different names as `_LARGEFILE64_SOURCE' does.
Instead the old function names now reference the new functions, Instead the old function names now reference the new functions,
@ -167,11 +166,17 @@ relying on semantics undefined within the standard.
This macro was introduced as part of the Large File Support This macro was introduced as part of the Large File Support
extension (LFS). extension (LFS).
- Macro: _ISOC99_SOURCE
Until the revised ISO C standard is widely adopted the new features
are not automatically enabled. The GNU libc nevertheless has a
complete implementation of the new standard and to enable the new
features the macro `_ISOC99_SOURCE' should be defined.
- Macro: _GNU_SOURCE - Macro: _GNU_SOURCE
If you define this macro, everything is included: ISO C, POSIX.1, If you define this macro, everything is included: ISO C89,
POSIX.2, BSD, SVID, X/Open, LFS, and GNU extensions. In the cases ISO C99, POSIX.1, POSIX.2, BSD, SVID, X/Open, LFS, and GNU
where POSIX.1 conflicts with BSD, the POSIX definitions take extensions. In the cases where POSIX.1 conflicts with BSD, the
precedence. POSIX definitions take precedence.
If you want to get the full effect of `_GNU_SOURCE' but make the If you want to get the full effect of `_GNU_SOURCE' but make the
BSD definitions take precedence over the POSIX definitions, use BSD definitions take precedence over the POSIX definitions, use
@ -191,11 +196,10 @@ relying on semantics undefined within the standard.
If you define one of these macros, reentrant versions of several If you define one of these macros, reentrant versions of several
functions get declared. Some of the functions are specified in functions get declared. Some of the functions are specified in
POSIX.1c but many others are only available on a few other systems POSIX.1c but many others are only available on a few other systems
or are unique to GNU libc. The problem is that the or are unique to GNU libc. The problem is the delay in the
standardization of the thread safe C library interface still is standardization of the thread safe C library interface.
behind.
Unlike on some other systems no special version of the C library Unlike on some other systems, no special version of the C library
must be used for linking. There is only one version but while must be used for linking. There is only one version but while
compiling this it must have been specified to compile as thread compiling this it must have been specified to compile as thread
safe. safe.

4
README
View File

@ -57,10 +57,10 @@ for crypt; it is called `glibc-crypt-2.1.90.tar.gz'. You can just
unpack the crypt distribution along with the rest of the C library and unpack the crypt distribution along with the rest of the C library and
build; you can also build the library without getting crypt. Users build; you can also build the library without getting crypt. Users
outside the USA can get the crypt distribution via anonymous FTP from outside the USA can get the crypt distribution via anonymous FTP from
ftp.funet.fi [128.214.248.6] in the directory pub/gnu/funet, or ftp.gwdg.de [134.76.11.100] in the directory pub/linux/glibc, or
another archive site outside the USA. Archive maintainers are another archive site outside the USA. Archive maintainers are
encouraged to copy this distribution to their archives outside the encouraged to copy this distribution to their archives outside the
USA. Please get it from ftp.funet.fi; transferring this distribution USA. Please get it from ftp.gwdg.de; transferring this distribution
from ftp.gnu.org (or any other site in the USA) to a site outside the from ftp.gnu.org (or any other site in the USA) to a site outside the
USA is in violation of US export laws. USA is in violation of US export laws.