mirror of git://sourceware.org/git/glibc.git
* version.h (VERSION): 2.4
* README.template: Update for 2.4. * README: Regenerated. * manual/install.texi (Configuring and compiling): Separate build directory is mandatory. Use glibc-2.4 in example. Update --enable-add-ons description. (Supported Configurations): Remove section. * INSTALL: Regenerated.
This commit is contained in:
parent
6f92000389
commit
3858bf28a6
|
@ -1,5 +1,14 @@
|
||||||
2006-03-06 Roland McGrath <roland@redhat.com>
|
2006-03-06 Roland McGrath <roland@redhat.com>
|
||||||
|
|
||||||
|
* version.h (VERSION): 2.4
|
||||||
|
* README.template: Update for 2.4.
|
||||||
|
* README: Regenerated.
|
||||||
|
* manual/install.texi (Configuring and compiling): Separate build
|
||||||
|
directory is mandatory. Use glibc-2.4 in example.
|
||||||
|
Update --enable-add-ons description.
|
||||||
|
(Supported Configurations): Remove section.
|
||||||
|
* INSTALL: Regenerated.
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/x86_64/sysconf.c
|
* sysdeps/unix/sysv/linux/x86_64/sysconf.c
|
||||||
(handle_intel, handle_amd): Add __attribute__ ((noinline)).
|
(handle_intel, handle_amd): Add __attribute__ ((noinline)).
|
||||||
* sysdeps/unix/sysv/linux/i386/sysconf.c
|
* sysdeps/unix/sysv/linux/i386/sysconf.c
|
||||||
|
|
121
INSTALL
121
INSTALL
|
@ -18,29 +18,28 @@ below.
|
||||||
Configuring and compiling GNU Libc
|
Configuring and compiling GNU Libc
|
||||||
==================================
|
==================================
|
||||||
|
|
||||||
GNU libc can be compiled in the source directory, but we strongly advise
|
GNU libc cannot be compiled in the source directory. You must build it
|
||||||
building it in a separate build directory. For example, if you have
|
in a separate build directory. For example, if you have unpacked the
|
||||||
unpacked the glibc sources in `/src/gnu/glibc-2.3', create a directory
|
glibc sources in `/src/gnu/glibc-2.4', create a directory
|
||||||
`/src/gnu/glibc-build' to put the object files in. This allows
|
`/src/gnu/glibc-build' to put the object files in. This allows
|
||||||
removing the whole build directory in case an error occurs, which is the
|
removing the whole build directory in case an error occurs, which is
|
||||||
safest way to get a fresh start and should always be done.
|
the safest way to get a fresh start and should always be done.
|
||||||
|
|
||||||
From your object directory, run the shell script `configure' located
|
From your object directory, run the shell script `configure' located
|
||||||
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
|
||||||
|
|
||||||
$ ../glibc-2.3/configure ARGS...
|
$ ../glibc-2.4/configure ARGS...
|
||||||
|
|
||||||
Please note that even if you're building in a separate build
|
Please note that even though you're building in a separate build
|
||||||
directory, the compilation needs to modify a few files in the source
|
directory, the compilation needs to modify a few files in the source
|
||||||
directory, especially some files in the manual subdirectory.
|
directory, especially some files in the manual subdirectory.
|
||||||
|
|
||||||
`configure' takes many options, but you can get away with knowing only
|
`configure' takes many options, but the only one that is usually
|
||||||
two: `--prefix' and `--enable-add-ons'. The `--prefix' option tells
|
mandatory is `--prefix'. This option tells `configure' where you want
|
||||||
`configure' where you want glibc installed. This defaults to
|
glibc installed. This defaults to `/usr/local', but the normal setting
|
||||||
`/usr/local'. The `--enable-add-ons' option tells `configure' to use
|
to install as the standard system library is `--prefix=/usr' for
|
||||||
all the add-on bundles it finds in the source directory. Since
|
GNU/Linux systems and `--prefix=' (an empty prefix) for GNU/Hurd
|
||||||
important functionality is provided in add-ons, you should always
|
systems.
|
||||||
specify this option.
|
|
||||||
|
|
||||||
It may also be useful to set the CC and CFLAGS variables in the
|
It may also be useful to set the CC and CFLAGS variables in the
|
||||||
environment when running `configure'. CC selects the C compiler that
|
environment when running `configure'. CC selects the C compiler that
|
||||||
|
@ -72,11 +71,16 @@ will be used, and CFLAGS sets optimization options for the compiler.
|
||||||
ones found in `/usr/include'.
|
ones found in `/usr/include'.
|
||||||
|
|
||||||
`--enable-add-ons[=LIST]'
|
`--enable-add-ons[=LIST]'
|
||||||
Enable add-on packages in your source tree. If this option is
|
Specify add-on packages to include in the build. If this option is
|
||||||
specified with no list, it enables all the add-on packages it
|
specified with no list, it enables all the add-on packages it
|
||||||
finds. If you do not wish to use some add-on packages that you
|
finds in the main source directory; this is the default behavior.
|
||||||
have present in your source tree, give this option a list of the
|
You may specify an explicit list of add-ons to use in LIST,
|
||||||
add-ons that you _do_ want used, like this: `--enable-add-ons=nptl'
|
separated by spaces or commas (if you use spaces, remember to
|
||||||
|
quote them from the shell). Each add-on in LIST can be an
|
||||||
|
absolute directory name or can be a directory name relative to the
|
||||||
|
main source directory, or relative to the build directory (that
|
||||||
|
is, the current working directory). For example,
|
||||||
|
`--enable-add-ons=nptl,../glibc-libidn-2.4'.
|
||||||
|
|
||||||
`--enable-kernel=VERSION'
|
`--enable-kernel=VERSION'
|
||||||
This option is currently only useful on GNU/Linux systems. The
|
This option is currently only useful on GNU/Linux systems. The
|
||||||
|
@ -159,11 +163,10 @@ produce a lot of output, some of which may look like errors from `make'
|
||||||
but isn't. Look for error messages from `make' containing `***'.
|
but isn't. Look for error messages from `make' containing `***'.
|
||||||
Those indicate that something is seriously wrong.
|
Those indicate that something is seriously wrong.
|
||||||
|
|
||||||
The compilation process can take several hours. Expect at least two
|
The compilation process can take a long time, depending on the
|
||||||
hours for the default configuration on i586 for GNU/Linux. For Hurd,
|
configuration and the speed of your machine. Some complex modules may
|
||||||
times are much longer. Some complex modules may take a very long time
|
take a very long time to compile, as much as several minutes on slower
|
||||||
to compile, as much as several minutes on slower machines. Do not
|
machines. Do not panic if the compiler appears to hang.
|
||||||
panic if the compiler appears to hang.
|
|
||||||
|
|
||||||
If you want to run a parallel make, simply pass the `-j' option with
|
If you want to run a parallel make, simply pass the `-j' option with
|
||||||
an appropriate numeric parameter to `make'. You need a recent GNU
|
an appropriate numeric parameter to `make'. You need a recent GNU
|
||||||
|
@ -359,78 +362,6 @@ and if you change any of the message translation files you will need
|
||||||
You may also need these packages if you upgrade your source tree using
|
You may also need these packages if you upgrade your source tree using
|
||||||
patches, although we try to avoid this.
|
patches, although we try to avoid this.
|
||||||
|
|
||||||
Supported Configurations
|
|
||||||
========================
|
|
||||||
|
|
||||||
The GNU C Library currently supports configurations that match the
|
|
||||||
following patterns:
|
|
||||||
|
|
||||||
alpha*-*-linux
|
|
||||||
arm-*-linux
|
|
||||||
cris-*-linux
|
|
||||||
hppa-*-linux
|
|
||||||
iX86-*-gnu
|
|
||||||
iX86-*-linux
|
|
||||||
ia64-*-linux
|
|
||||||
m68k-*-linux
|
|
||||||
mips*-*-linux
|
|
||||||
powerpc-*-linux
|
|
||||||
s390-*-linux
|
|
||||||
s390x-*-linux
|
|
||||||
sparc-*-linux
|
|
||||||
sparc64-*-linux
|
|
||||||
x86_64-*-linux
|
|
||||||
|
|
||||||
Former releases of this library (version 2.1 and/or 2.0) used to run
|
|
||||||
on the following configurations:
|
|
||||||
|
|
||||||
arm-*-linuxaout
|
|
||||||
arm-*-none
|
|
||||||
|
|
||||||
Very early releases (version 1.09.1 and perhaps earlier versions)
|
|
||||||
used to run on the following configurations:
|
|
||||||
|
|
||||||
alpha-dec-osf1
|
|
||||||
alpha-*-linuxecoff
|
|
||||||
iX86-*-bsd4.3
|
|
||||||
iX86-*-isc2.2
|
|
||||||
iX86-*-isc3.N
|
|
||||||
iX86-*-sco3.2
|
|
||||||
iX86-*-sco3.2v4
|
|
||||||
iX86-*-sysv
|
|
||||||
iX86-*-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
|
|
||||||
|
|
||||||
Since no one has volunteered to test and fix these configurations,
|
|
||||||
they are not supported at the moment. They probably don't compile;
|
|
||||||
they definitely don't work anymore. Porting the library is not hard.
|
|
||||||
If you are interested in doing a port, please contact the glibc
|
|
||||||
maintainers. Start at `http://www.gnu.org/software/libc/' and read the
|
|
||||||
references there on how to go about getting involved and contacting the
|
|
||||||
developers.
|
|
||||||
|
|
||||||
Valid cases of `iX86' include `i386', `i486', `i586', and `i686'.
|
|
||||||
All of those configurations produce a library that can run on this
|
|
||||||
processor and newer processors. The GCC compiler by default generates
|
|
||||||
code that's optimized for the machine it's configured for and will use
|
|
||||||
the instructions available on that machine. For example if your GCC is
|
|
||||||
configured for `i686', gcc will optimize for `i686' and might issue
|
|
||||||
some `i686' specific instructions. To generate code for other models,
|
|
||||||
you have to configure for that model and give GCC the appropriate
|
|
||||||
`-march=' and `-mcpu=' compiler switches via CFLAGS.
|
|
||||||
|
|
||||||
Specific advice for GNU/Linux systems
|
Specific advice for GNU/Linux systems
|
||||||
=====================================
|
=====================================
|
||||||
|
|
||||||
|
|
122
README
122
README
|
@ -1,49 +1,91 @@
|
||||||
This directory contains the version 2.3.4 release of the GNU C Library.
|
This directory contains the version 2.4 release of the GNU C Library.
|
||||||
Many bugs have been fixed since the last release.
|
|
||||||
Some bugs surely remain.
|
|
||||||
|
|
||||||
As of this release, the GNU C library is known to run on the following
|
The GNU C Library is the standard system C library for all GNU systems,
|
||||||
configurations:
|
and is an important part of what makes up a GNU system. It provides the
|
||||||
|
system API for all programs written in C and C-compatible languages such
|
||||||
|
as C++ and Objective C; the runtime facilities of other programming
|
||||||
|
languages use the C library to access the underlying operating system.
|
||||||
|
|
||||||
*-*-gnu GNU Hurd
|
In GNU/Linux systems, the C library works with the Linux kernel to
|
||||||
i[3456]86-*-linux-gnu Linux-2.x on Intel
|
implement the operating system behavior seen by user applications.
|
||||||
m68k-*-linux-gnu Linux-2.x on Motorola 680x0
|
In GNU/Hurd systems, it works with a microkernel and Hurd servers.
|
||||||
alpha*-*-linux-gnu Linux-2.x on DEC Alpha
|
|
||||||
powerpc-*-linux-gnu Linux and MkLinux on PowerPC systems
|
|
||||||
powerpc64-*-linux-gnu Linux-2.4.19+ on 64-bit PowerPC systems
|
|
||||||
sparc-*-linux-gnu Linux-2.x on SPARC
|
|
||||||
sparc64-*-linux-gnu Linux-2.x on UltraSPARC 64-bit
|
|
||||||
arm-*-none ARM standalone systems
|
|
||||||
arm-*-linux Linux-2.x on ARM
|
|
||||||
arm-*-linuxaout Linux-2.x on ARM using a.out binaries
|
|
||||||
mips*-*-linux-gnu Linux-2.x on MIPS
|
|
||||||
ia64-*-linux-gnu Linux-2.x on ia64
|
|
||||||
s390-*-linux-gnu Linux-2.x on IBM S/390
|
|
||||||
s390x-*-linux-gnu Linux-2.4+ on IBM S/390 64-bit
|
|
||||||
sh-*-linux-gnu Linux-2.x on Super Hitachi
|
|
||||||
x86-64-*-linux-gnu Linux-2.4+ on x86-64
|
|
||||||
|
|
||||||
Past releases of this library ran on a variety of configurations that are
|
Version 2.4 is the first release after a long period of development, and
|
||||||
no longer supported. Porting the library is not hard. If you are
|
introduces changes to the API and a new ABI for all configurations. It
|
||||||
interested in doing a port, please contact the glibc maintainers;
|
has been tested and deployed in new production systems, but should still
|
||||||
see http://www.gnu.org/software/libc/ for more information.
|
be considered somewhat experimental. The stable 2.3 release series
|
||||||
|
continues to be maintained, and implements a widely-deployed ABI.
|
||||||
|
Version 2.3.6 is available, and we will release 2.3.7 with more bug fixes.
|
||||||
|
|
||||||
There are some add-ons which can be used together with GNU libc. They
|
The GNU C Library implements much of the POSIX.1 functionality in the
|
||||||
are designed in a way to ease the installation by integrating them in
|
GNU/Hurd system, using configurations i[34567]86-*-gnu.
|
||||||
the libc source tree. Simply get the add-ons you need and use the
|
|
||||||
--enable-add-ons option of the `configure' script to tell where the
|
|
||||||
add-ons are found. Please read the FAQ file for more details.
|
|
||||||
|
|
||||||
See the file INSTALL to find out how to configure, build, install, and port
|
When working with Linux kernels, the GNU C Library version 2.4 is
|
||||||
the GNU C library. You might also consider reading the WWW pages for the
|
intended primarily for use with Linux kernel version 2.6.0 and later.
|
||||||
GNU libc at http://www.gnu.org/software/libc/libc.html.
|
We only support using the NPTL implementation of pthreads, which is now
|
||||||
|
the default configuration. Most of the C library will continue to work
|
||||||
|
on older Linux kernels and many programs will not require a 2.6 kernel
|
||||||
|
to run correctly. However, pthreads and related functionality will not
|
||||||
|
work at all on old kernels and we do not recommend using glibc 2.4 with
|
||||||
|
any Linux kernel prior to 2.6.
|
||||||
|
|
||||||
The GNU C Library is completely documented by the Texinfo manual found
|
All Linux kernel versions prior to 2.6.16 are known to have some bugs that
|
||||||
in the `manual/' subdirectory. The manual is still being updated and
|
may cause some of the tests related to pthreads in "make check" to fail.
|
||||||
contains some known errors and omissions; we regret that we do not
|
If you see such problems, please try the test suite on the most recent
|
||||||
have the resources to work on the manual as much as we would like.
|
Linux kernel version that you can use, before pursuing those bugs further.
|
||||||
Please send comments on the manual to <bug-glibc-manual@gnu.org>, and
|
|
||||||
not to the library bug-reporting address.
|
The old LinuxThreads add-on implementation of pthreads for older Linux
|
||||||
|
kernels is no longer supported, and we are not distributing it with this
|
||||||
|
release. Someone has volunteered to revive its maintenance unofficially
|
||||||
|
for at least a short time for the benefit of those using Linux kernels
|
||||||
|
older than 2.6, but a working version is not presently available. When
|
||||||
|
it is in working condition, we will make it available alongside future
|
||||||
|
glibc releases. LinuxThreads will not be supported.
|
||||||
|
|
||||||
|
The GNU C Library supports these configurations for using Linux kernels:
|
||||||
|
|
||||||
|
i[34567]86-*-linux-gnu
|
||||||
|
x86_64-*-linux-gnu
|
||||||
|
powerpc-*-linux-gnu
|
||||||
|
powerpc64-*-linux-gnu
|
||||||
|
s390-*-linux-gnu
|
||||||
|
s390x-*-linux-gnu
|
||||||
|
ia64-*-linux-gnu
|
||||||
|
sparc*-*-linux-gnu
|
||||||
|
sparc64*-*-linux-gnu
|
||||||
|
|
||||||
|
alpha*-*-linux-gnu Requires Linux 2.6.9 for NPTL
|
||||||
|
sh[34]-*-linux-gnu Requires Linux 2.6.11
|
||||||
|
|
||||||
|
The code for other CPU configurations supported by volunteers outside of
|
||||||
|
the core glibc maintenance effort is contained in the separate `ports'
|
||||||
|
add-on. You can find glibc-ports-2.4 distributed separately in the
|
||||||
|
same place where you got the main glibc distribution files.
|
||||||
|
Currently these configurations are known to work using the `ports' add-on:
|
||||||
|
|
||||||
|
arm-*-linux-gnu Requires Linux 2.6.15 for NPTL, no SMP support
|
||||||
|
arm-*-linux-gnueabi Requires Linux 2.6.16-rc1 for NPTL, no SMP
|
||||||
|
mips-*-linux-gnu Requires Linux 2.6.12 for NPTL
|
||||||
|
mips64-*-linux-gnu Requires Linux 2.6.12 for NPTL
|
||||||
|
|
||||||
|
The ports distribution also contains code for other configurations that
|
||||||
|
do not work or have not been maintained recently, but will be of use to
|
||||||
|
anyone trying to make a new configuration work. If you are interested
|
||||||
|
in doing a port, please contact the glibc maintainers; see
|
||||||
|
http://www.gnu.org/software/libc/ for more information.
|
||||||
|
|
||||||
|
See the file INSTALL to find out how to configure, build, and install
|
||||||
|
the GNU C Library. You might also consider reading the WWW pages for
|
||||||
|
the C library at http://www.gnu.org/software/libc/.
|
||||||
|
|
||||||
|
The GNU C Library is (almost) completely documented by the Texinfo manual
|
||||||
|
found in the `manual/' subdirectory. The manual is still being updated
|
||||||
|
and contains some known errors and omissions; we regret that we do not
|
||||||
|
have the resources to work on the manual as much as we would like. For
|
||||||
|
corrections to the manual, please file a bug in the `manual' component,
|
||||||
|
following the bug-reporting instructions below. Please be sure to check
|
||||||
|
the manual in the current development sources to see if your problem has
|
||||||
|
already been corrected.
|
||||||
|
|
||||||
The file NOTES contains a description of the feature-test macros used
|
The file NOTES contains a description of the feature-test macros used
|
||||||
in the GNU C library, explaining how you can tell the library what
|
in the GNU C library, explaining how you can tell the library what
|
||||||
|
|
120
README.template
120
README.template
|
@ -1,49 +1,91 @@
|
||||||
This directory contains the version VERSION release of the GNU C Library.
|
This directory contains the version VERSION release of the GNU C Library.
|
||||||
Many bugs have been fixed since the last release.
|
|
||||||
Some bugs surely remain.
|
|
||||||
|
|
||||||
As of this release, the GNU C library is known to run on the following
|
The GNU C Library is the standard system C library for all GNU systems,
|
||||||
configurations:
|
and is an important part of what makes up a GNU system. It provides the
|
||||||
|
system API for all programs written in C and C-compatible languages such
|
||||||
|
as C++ and Objective C; the runtime facilities of other programming
|
||||||
|
languages use the C library to access the underlying operating system.
|
||||||
|
|
||||||
*-*-gnu GNU Hurd
|
In GNU/Linux systems, the C library works with the Linux kernel to
|
||||||
i[3456]86-*-linux-gnu Linux-2.x on Intel
|
implement the operating system behavior seen by user applications.
|
||||||
m68k-*-linux-gnu Linux-2.x on Motorola 680x0
|
In GNU/Hurd systems, it works with a microkernel and Hurd servers.
|
||||||
alpha*-*-linux-gnu Linux-2.x on DEC Alpha
|
|
||||||
powerpc-*-linux-gnu Linux and MkLinux on PowerPC systems
|
|
||||||
powerpc64-*-linux-gnu Linux-2.4.19+ on 64-bit PowerPC systems
|
|
||||||
sparc-*-linux-gnu Linux-2.x on SPARC
|
|
||||||
sparc64-*-linux-gnu Linux-2.x on UltraSPARC 64-bit
|
|
||||||
arm-*-none ARM standalone systems
|
|
||||||
arm-*-linux Linux-2.x on ARM
|
|
||||||
arm-*-linuxaout Linux-2.x on ARM using a.out binaries
|
|
||||||
mips*-*-linux-gnu Linux-2.x on MIPS
|
|
||||||
ia64-*-linux-gnu Linux-2.x on ia64
|
|
||||||
s390-*-linux-gnu Linux-2.x on IBM S/390
|
|
||||||
s390x-*-linux-gnu Linux-2.4+ on IBM S/390 64-bit
|
|
||||||
sh-*-linux-gnu Linux-2.x on Super Hitachi
|
|
||||||
x86-64-*-linux-gnu Linux-2.4+ on x86-64
|
|
||||||
|
|
||||||
Past releases of this library ran on a variety of configurations that are
|
Version 2.4 is the first release after a long period of development, and
|
||||||
no longer supported. Porting the library is not hard. If you are
|
introduces changes to the API and a new ABI for all configurations. It
|
||||||
interested in doing a port, please contact the glibc maintainers;
|
has been tested and deployed in new production systems, but should still
|
||||||
see http://www.gnu.org/software/libc/ for more information.
|
be considered somewhat experimental. The stable 2.3 release series
|
||||||
|
continues to be maintained, and implements a widely-deployed ABI.
|
||||||
|
Version 2.3.6 is available, and we will release 2.3.7 with more bug fixes.
|
||||||
|
|
||||||
There are some add-ons which can be used together with GNU libc. They
|
The GNU C Library implements much of the POSIX.1 functionality in the
|
||||||
are designed in a way to ease the installation by integrating them in
|
GNU/Hurd system, using configurations i[34567]86-*-gnu.
|
||||||
the libc source tree. Simply get the add-ons you need and use the
|
|
||||||
--enable-add-ons option of the `configure' script to tell where the
|
|
||||||
add-ons are found. Please read the FAQ file for more details.
|
|
||||||
|
|
||||||
See the file INSTALL to find out how to configure, build, install, and port
|
When working with Linux kernels, the GNU C Library version 2.4 is
|
||||||
the GNU C library. You might also consider reading the WWW pages for the
|
intended primarily for use with Linux kernel version 2.6.0 and later.
|
||||||
GNU libc at http://www.gnu.org/software/libc/libc.html.
|
We only support using the NPTL implementation of pthreads, which is now
|
||||||
|
the default configuration. Most of the C library will continue to work
|
||||||
|
on older Linux kernels and many programs will not require a 2.6 kernel
|
||||||
|
to run correctly. However, pthreads and related functionality will not
|
||||||
|
work at all on old kernels and we do not recommend using glibc 2.4 with
|
||||||
|
any Linux kernel prior to 2.6.
|
||||||
|
|
||||||
The GNU C Library is completely documented by the Texinfo manual found
|
All Linux kernel versions prior to 2.6.16 are known to have some bugs that
|
||||||
in the `manual/' subdirectory. The manual is still being updated and
|
may cause some of the tests related to pthreads in "make check" to fail.
|
||||||
contains some known errors and omissions; we regret that we do not
|
If you see such problems, please try the test suite on the most recent
|
||||||
have the resources to work on the manual as much as we would like.
|
Linux kernel version that you can use, before pursuing those bugs further.
|
||||||
Please send comments on the manual to <bug-glibc-manual@gnu.org>, and
|
|
||||||
not to the library bug-reporting address.
|
The old LinuxThreads add-on implementation of pthreads for older Linux
|
||||||
|
kernels is no longer supported, and we are not distributing it with this
|
||||||
|
release. Someone has volunteered to revive its maintenance unofficially
|
||||||
|
for at least a short time for the benefit of those using Linux kernels
|
||||||
|
older than 2.6, but a working version is not presently available. When
|
||||||
|
it is in working condition, we will make it available alongside future
|
||||||
|
glibc releases. LinuxThreads will not be supported.
|
||||||
|
|
||||||
|
The GNU C Library supports these configurations for using Linux kernels:
|
||||||
|
|
||||||
|
i[34567]86-*-linux-gnu
|
||||||
|
x86_64-*-linux-gnu
|
||||||
|
powerpc-*-linux-gnu
|
||||||
|
powerpc64-*-linux-gnu
|
||||||
|
s390-*-linux-gnu
|
||||||
|
s390x-*-linux-gnu
|
||||||
|
ia64-*-linux-gnu
|
||||||
|
sparc*-*-linux-gnu
|
||||||
|
sparc64*-*-linux-gnu
|
||||||
|
|
||||||
|
alpha*-*-linux-gnu Requires Linux 2.6.9 for NPTL
|
||||||
|
sh[34]-*-linux-gnu Requires Linux 2.6.11
|
||||||
|
|
||||||
|
The code for other CPU configurations supported by volunteers outside of
|
||||||
|
the core glibc maintenance effort is contained in the separate `ports'
|
||||||
|
add-on. You can find glibc-ports-VERSION distributed separately in the
|
||||||
|
same place where you got the main glibc distribution files.
|
||||||
|
Currently these configurations are known to work using the `ports' add-on:
|
||||||
|
|
||||||
|
arm-*-linux-gnu Requires Linux 2.6.15 for NPTL, no SMP support
|
||||||
|
arm-*-linux-gnueabi Requires Linux 2.6.16-rc1 for NPTL, no SMP
|
||||||
|
mips-*-linux-gnu Requires Linux 2.6.12 for NPTL
|
||||||
|
mips64-*-linux-gnu Requires Linux 2.6.12 for NPTL
|
||||||
|
|
||||||
|
The ports distribution also contains code for other configurations that
|
||||||
|
do not work or have not been maintained recently, but will be of use to
|
||||||
|
anyone trying to make a new configuration work. If you are interested
|
||||||
|
in doing a port, please contact the glibc maintainers; see
|
||||||
|
http://www.gnu.org/software/libc/ for more information.
|
||||||
|
|
||||||
|
See the file INSTALL to find out how to configure, build, and install
|
||||||
|
the GNU C Library. You might also consider reading the WWW pages for
|
||||||
|
the C library at http://www.gnu.org/software/libc/.
|
||||||
|
|
||||||
|
The GNU C Library is (almost) completely documented by the Texinfo manual
|
||||||
|
found in the `manual/' subdirectory. The manual is still being updated
|
||||||
|
and contains some known errors and omissions; we regret that we do not
|
||||||
|
have the resources to work on the manual as much as we would like. For
|
||||||
|
corrections to the manual, please file a bug in the `manual' component,
|
||||||
|
following the bug-reporting instructions below. Please be sure to check
|
||||||
|
the manual in the current development sources to see if your problem has
|
||||||
|
already been corrected.
|
||||||
|
|
||||||
The file NOTES contains a description of the feature-test macros used
|
The file NOTES contains a description of the feature-test macros used
|
||||||
in the GNU C library, explaining how you can tell the library what
|
in the GNU C library, explaining how you can tell the library what
|
||||||
|
|
|
@ -693,7 +693,20 @@ search_dir (const struct dir_entry *entry)
|
||||||
#endif
|
#endif
|
||||||
!is_hwcap_platform (direntry->d_name)))
|
!is_hwcap_platform (direntry->d_name)))
|
||||||
continue;
|
continue;
|
||||||
len = strlen (entry->path) + strlen (direntry->d_name);
|
len = strlen (direntry->d_name);
|
||||||
|
/* Skip temporary files created by the prelink program. Files with
|
||||||
|
names like these are never really DSOs we want to look at. */
|
||||||
|
if (len >= sizeof (".#prelink#") - 1)
|
||||||
|
{
|
||||||
|
if (strcmp (direntry->d_name + len - sizeof (".#prelink#") + 1,
|
||||||
|
".#prelink#") == 0)
|
||||||
|
continue;
|
||||||
|
if (len >= sizeof (".#prelink#.XXXXXX") - 1
|
||||||
|
&& memcmp (direntry->d_name + len - sizeof (".#prelink#.XXXXXX")
|
||||||
|
+ 1, ".#prelink#.", sizeof (".#prelink#.") - 1) == 0)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
len += strlen (entry->path);
|
||||||
if (len > file_name_len)
|
if (len > file_name_len)
|
||||||
{
|
{
|
||||||
file_name_len = len + 1;
|
file_name_len = len + 1;
|
||||||
|
|
|
@ -24,7 +24,6 @@ GNU Make, and possibly others. @xref{Tools for Compilation}, below.
|
||||||
* Running make install:: How to install it once you've got it
|
* Running make install:: How to install it once you've got it
|
||||||
compiled.
|
compiled.
|
||||||
* Tools for Compilation:: You'll need these first.
|
* Tools for Compilation:: You'll need these first.
|
||||||
* Supported Configurations:: What it runs on, what it doesn't.
|
|
||||||
* Linux:: Specific advice for GNU/Linux systems.
|
* Linux:: Specific advice for GNU/Linux systems.
|
||||||
* Reporting Bugs:: So they'll get fixed.
|
* Reporting Bugs:: So they'll get fixed.
|
||||||
@end menu
|
@end menu
|
||||||
|
@ -34,34 +33,31 @@ GNU Make, and possibly others. @xref{Tools for Compilation}, below.
|
||||||
@cindex configuring
|
@cindex configuring
|
||||||
@cindex compiling
|
@cindex compiling
|
||||||
|
|
||||||
GNU libc can be compiled in the source directory, but we strongly advise
|
GNU libc cannot be compiled in the source directory. You must build
|
||||||
building it in a separate build directory. For example, if you have
|
it in a separate build directory. For example, if you have unpacked
|
||||||
unpacked
|
the glibc sources in @file{/src/gnu/glibc-2.4}, create a directory
|
||||||
the glibc sources in @file{/src/gnu/glibc-2.3}, create a directory
|
|
||||||
@file{/src/gnu/glibc-build} to put the object files in. This allows
|
@file{/src/gnu/glibc-build} to put the object files in. This allows
|
||||||
removing the whole build directory in case an error occurs, which is the
|
removing the whole build directory in case an error occurs, which is
|
||||||
safest way to get a fresh start and should always be done.
|
the safest way to get a fresh start and should always be done.
|
||||||
|
|
||||||
From your object directory, run the shell script @file{configure} located
|
From your object directory, run the shell script @file{configure} located
|
||||||
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
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
$ ../glibc-2.3/configure @var{args@dots{}}
|
$ ../glibc-2.4/configure @var{args@dots{}}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
Please note that even if you're building in a separate build directory,
|
Please note that even though you're building in a separate build
|
||||||
the compilation needs to modify a few files in the source
|
directory, the compilation needs to modify a few files in the source
|
||||||
directory, especially some files in the manual subdirectory.
|
directory, especially some files in the manual subdirectory.
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
@code{configure} takes many options, but you can get away with knowing
|
@code{configure} takes many options, but the only one that is usually
|
||||||
only two: @samp{--prefix} and @samp{--enable-add-ons}. The
|
mandatory is @samp{--prefix}. This option tells @code{configure}
|
||||||
@code{--prefix} option tells @code{configure} where you want glibc
|
where you want glibc installed. This defaults to @file{/usr/local},
|
||||||
installed. This defaults to @file{/usr/local}. The
|
but the normal setting to install as the standard system library is
|
||||||
@samp{--enable-add-ons} option tells @code{configure} to use all the
|
@samp{--prefix=/usr} for GNU/Linux systems and @samp{--prefix=} (an
|
||||||
add-on bundles it finds in the source directory. Since important
|
empty prefix) for GNU/Hurd systems.
|
||||||
functionality is provided in add-ons, you should always specify this
|
|
||||||
option.
|
|
||||||
|
|
||||||
It may also be useful to set the @var{CC} and @var{CFLAGS} variables in
|
It may also be useful to set the @var{CC} and @var{CFLAGS} variables in
|
||||||
the environment when running @code{configure}. @var{CC} selects the C
|
the environment when running @code{configure}. @var{CC} selects the C
|
||||||
|
@ -95,11 +91,15 @@ compile glibc with a newer set of kernel headers than the ones found in
|
||||||
@file{/usr/include}.
|
@file{/usr/include}.
|
||||||
|
|
||||||
@item --enable-add-ons[=@var{list}]
|
@item --enable-add-ons[=@var{list}]
|
||||||
Enable add-on packages in your source tree. If this option is specified
|
Specify add-on packages to include in the build. If this option is
|
||||||
with no list, it enables all the add-on packages it finds. If you do
|
specified with no list, it enables all the add-on packages it finds in
|
||||||
not wish to use some add-on packages that you have present in your source
|
the main source directory; this is the default behavior. You may
|
||||||
tree, give this option a list of the add-ons that you @emph{do} want
|
specify an explicit list of add-ons to use in @var{list}, separated by
|
||||||
used, like this: @samp{--enable-add-ons=nptl}
|
spaces or commas (if you use spaces, remember to quote them from the
|
||||||
|
shell). Each add-on in @var{list} can be an absolute directory name
|
||||||
|
or can be a directory name relative to the main source directory, or
|
||||||
|
relative to the build directory (that is, the current working directory).
|
||||||
|
For example, @samp{--enable-add-ons=nptl,../glibc-libidn-2.4}.
|
||||||
|
|
||||||
@item --enable-kernel=@var{version}
|
@item --enable-kernel=@var{version}
|
||||||
This option is currently only useful on GNU/Linux systems. The
|
This option is currently only useful on GNU/Linux systems. The
|
||||||
|
@ -186,11 +186,10 @@ produce a lot of output, some of which may look like errors from
|
||||||
@code{make} but isn't. Look for error messages from @code{make}
|
@code{make} but isn't. Look for error messages from @code{make}
|
||||||
containing @samp{***}. Those indicate that something is seriously wrong.
|
containing @samp{***}. Those indicate that something is seriously wrong.
|
||||||
|
|
||||||
The compilation process can take several hours. Expect at least two
|
The compilation process can take a long time, depending on the
|
||||||
hours for the default configuration on i586 for GNU/Linux. For Hurd,
|
configuration and the speed of your machine. Some complex modules may
|
||||||
times are much longer. Some complex modules may take a very long time
|
take a very long time to compile, as much as several minutes on slower
|
||||||
to compile, as much as several minutes on slower machines. Do not
|
machines. Do not panic if the compiler appears to hang.
|
||||||
panic if the compiler appears to hang.
|
|
||||||
|
|
||||||
If you want to run a parallel make, simply pass the @samp{-j} option
|
If you want to run a parallel make, simply pass the @samp{-j} option
|
||||||
with an appropriate numeric parameter to @code{make}. You need a recent
|
with an appropriate numeric parameter to @code{make}. You need a recent
|
||||||
|
@ -407,86 +406,6 @@ GNU @code{gettext} 0.10.36 or later
|
||||||
You may also need these packages if you upgrade your source tree using
|
You may also need these packages if you upgrade your source tree using
|
||||||
patches, although we try to avoid this.
|
patches, although we try to avoid this.
|
||||||
|
|
||||||
@node Supported Configurations
|
|
||||||
@appendixsec Supported Configurations
|
|
||||||
@cindex configurations, all supported
|
|
||||||
|
|
||||||
The GNU C Library currently supports configurations that match the
|
|
||||||
following patterns:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
alpha@var{*}-@var{*}-linux
|
|
||||||
arm-@var{*}-linux
|
|
||||||
cris-@var{*}-linux
|
|
||||||
hppa-@var{*}-linux
|
|
||||||
i@var{x}86-@var{*}-gnu
|
|
||||||
i@var{x}86-@var{*}-linux
|
|
||||||
ia64-@var{*}-linux
|
|
||||||
m68k-@var{*}-linux
|
|
||||||
mips@var{*}-@var{*}-linux
|
|
||||||
powerpc-@var{*}-linux
|
|
||||||
s390-@var{*}-linux
|
|
||||||
s390x-@var{*}-linux
|
|
||||||
sparc-@var{*}-linux
|
|
||||||
sparc64-@var{*}-linux
|
|
||||||
x86_64-@var{*}-linux
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
Former releases of this library (version 2.1 and/or 2.0) used to run on
|
|
||||||
the following configurations:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
arm-@var{*}-linuxaout
|
|
||||||
arm-@var{*}-none
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
Very early releases (version 1.09.1 and perhaps earlier versions) used
|
|
||||||
to run on the following configurations:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
alpha-dec-osf1
|
|
||||||
alpha-@var{*}-linuxecoff
|
|
||||||
i@var{x}86-@var{*}-bsd4.3
|
|
||||||
i@var{x}86-@var{*}-isc2.2
|
|
||||||
i@var{x}86-@var{*}-isc3.@var{n}
|
|
||||||
i@var{x}86-@var{*}-sco3.2
|
|
||||||
i@var{x}86-@var{*}-sco3.2v4
|
|
||||||
i@var{x}86-@var{*}-sysv
|
|
||||||
i@var{x}86-@var{*}-sysv4
|
|
||||||
i@var{x}86-force_cpu386-none
|
|
||||||
i@var{x}86-sequent-bsd
|
|
||||||
i960-nindy960-none
|
|
||||||
m68k-hp-bsd4.3
|
|
||||||
m68k-mvme135-none
|
|
||||||
m68k-mvme136-none
|
|
||||||
m68k-sony-newsos3
|
|
||||||
m68k-sony-newsos4
|
|
||||||
m68k-sun-sunos4.@var{n}
|
|
||||||
mips-dec-ultrix4.@var{n}
|
|
||||||
mips-sgi-irix4.@var{n}
|
|
||||||
sparc-sun-solaris2.@var{n}
|
|
||||||
sparc-sun-sunos4.@var{n}
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
Since no one has volunteered to test and fix these configurations,
|
|
||||||
they are not supported at the moment. They probably don't compile;
|
|
||||||
they definitely don't work anymore. Porting the library is not hard.
|
|
||||||
If you are interested in doing a port, please contact the glibc
|
|
||||||
maintainers. Start at @url{http://www.gnu.org/software/libc/} and
|
|
||||||
read the references there on how to go about getting involved and
|
|
||||||
contacting the developers.
|
|
||||||
|
|
||||||
Valid cases of @samp{i@var{x}86} include @samp{i386}, @samp{i486},
|
|
||||||
@samp{i586}, and @samp{i686}. All of those configurations produce a
|
|
||||||
library that can run on this processor and newer processors. The GCC
|
|
||||||
compiler by default generates code that's optimized for the machine it's
|
|
||||||
configured for and will use the instructions available on that machine.
|
|
||||||
For example if your GCC is configured for @samp{i686}, gcc will optimize
|
|
||||||
for @samp{i686} and might issue some @samp{i686} specific instructions.
|
|
||||||
To generate code for other models, you have to configure for that model
|
|
||||||
and give GCC the appropriate @samp{-march=} and @samp{-mcpu=} compiler
|
|
||||||
switches via @var{CFLAGS}.
|
|
||||||
|
|
||||||
@node Linux
|
@node Linux
|
||||||
@appendixsec Specific advice for GNU/Linux systems
|
@appendixsec Specific advice for GNU/Linux systems
|
||||||
@cindex upgrading from libc5
|
@cindex upgrading from libc5
|
||||||
|
|
Loading…
Reference in New Issue