~ubuntu-branches/ubuntu/utopic/eglibc/utopic

« back to all changes in this revision

Viewing changes to INSTALL

  • Committer: Package Import Robot
  • Author(s): Adam Conrad
  • Date: 2012-10-26 05:14:58 UTC
  • mfrom: (1.5.1) (4.4.22 experimental)
  • Revision ID: package-import@ubuntu.com-20121026051458-oryotr4i03ob5pab
Tags: 2.16-0ubuntu1
* Merge with unreleased 2.16 in Debian experimental, remaining changes:
  - Drop the Breaks line from libc6, which refers to a Debian transition
  - Remove the libc6 recommends on libc6-i686, which we don't build
  - Enable libc6{,-dev}-armel on armhf and libc6{-dev}-armhf on armel
  - Ship update-locale and validlocale in /usr/sbin in libc-bin
  - Don't build locales or locales-all in Ubuntu, we rely on langpacks
  - Heavily mangle the way we do service restarting on major upgrades
  - Use different MIN_KERNEL_SUPPORTED versions than Debian, due to
    buildd needs.  This should be universally bumped to 3.2.0 once all
    our buildds (including the PPA guests) are running precise kernels
  - Build i386 variants as -march=i686, build amd64 with -O3, and build
    ppc64 variants (both 64-bit and 32-bit) with -O3 -fno-tree-vectorize
  - Re-enable unsubmitted-ldconfig-cache-abi.diff and rebuild the cache
    on upgrades from previous versions that used a different constant
  - debian/patches/any/local-CVE-2012-3406.diff: switch to malloc when
    array grows too large to handle via alloca extension (CVE-2012-3406)
  - Build generic i386/i686 flavour with -mno-tls-direct-seg-refs
* Changes added/dropped with this merge while reducing our delta:
  - Stop building glibc docs from the eglibc source, and instead make
    the glibc-docs stub have a hard dependency on glibc-doc-reference
  - Remove outdated conflicts against ancient versions of ia32-libs
  - Drop the tzdata dependency from libc6, it's in required and minimal
  - Use gcc-4.7/g++-4.7 by default on all our supported architectures
  - Save our historical changelog as changelog.ubuntu in the source
  - Drop nscd's libaudit build-dep for now, as libaudit is in universe
  - Drop the unnecessary Breaks from libc6 to locales and locales-all
  - Ship xen's ld.so.conf.d snippet as /etc/ld.so.conf.d/libc6-xen.conf
* Disable hard failures on the test suite for the first upload to raring

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
Installing the GNU C Library
14
14
****************************
15
15
 
16
 
Before you do anything else, you should read the file `FAQ' located at
17
 
the top level of the source tree.  This file answers common questions
 
16
Before you do anything else, you should read the FAQ at
 
17
`http://sourceware.org/glibc/wiki/FAQ'.  It answers common questions
18
18
and describes problems you may experience with compilation and
19
 
installation.  It is updated more frequently than this manual.
 
19
installation.
20
20
 
21
 
   Features can be added to GNU Libc via "add-on" bundles.  These are
22
 
separate tar files, which you unpack into the top level of the source
23
 
tree.  Then you give `configure' the `--enable-add-ons' option to
24
 
activate them, and they will be compiled into the library.
 
21
   Features can be added to the GNU C Library via "add-on" bundles.
 
22
These are separate tar files, which you unpack into the top level of
 
23
the source tree.  Then you give `configure' the `--enable-add-ons'
 
24
option to activate them, and they will be compiled into the library.
25
25
 
26
26
   You will need recent versions of several GNU tools: definitely GCC
27
27
and GNU Make, and possibly others.  *Note Tools for Compilation::,
28
28
below.
29
29
 
30
 
Configuring and compiling GNU Libc
31
 
==================================
 
30
Configuring and compiling the GNU C Library
 
31
===========================================
32
32
 
33
 
GNU libc cannot be compiled in the source directory.  You must build it
34
 
in a separate build directory.  For example, if you have unpacked the
35
 
glibc sources in `/src/gnu/glibc-2.4', create a directory
36
 
`/src/gnu/glibc-build' to put the object files in.  This allows
37
 
removing the whole build directory in case an error occurs, which is
38
 
the safest way to get a fresh start and should always be done.
 
33
The GNU C Library cannot be compiled in the source directory.  You must
 
34
build it in a separate build directory.  For example, if you have
 
35
unpacked the GNU C Library sources in `/src/gnu/glibc-VERSION', create
 
36
a directory `/src/gnu/glibc-build' to put the object files in.  This
 
37
allows removing the whole build directory in case an error occurs,
 
38
which is the safest way to get a fresh start and should always be done.
39
39
 
40
40
   From your object directory, run the shell script `configure' located
41
41
at the top level of the source tree.  In the scenario above, you'd type
42
42
 
43
 
     $ ../glibc-2.4/configure ARGS...
 
43
     $ ../glibc-VERSION/configure ARGS...
44
44
 
45
45
   Please note that even though you're building in a separate build
46
 
directory, the compilation needs to modify a few files in the source
47
 
directory, especially some files in the manual subdirectory.
 
46
directory, the compilation may need to create or modify files and
 
47
directories in the source directory.
48
48
 
49
49
`configure' takes many options, but the only one that is usually
50
50
mandatory is `--prefix'.  This option tells `configure' where you want
51
 
glibc installed.  This defaults to `/usr/local', but the normal setting
52
 
to install as the standard system library is `--prefix=/usr' for
53
 
GNU/Linux systems and `--prefix=' (an empty prefix) for GNU/Hurd
54
 
systems.
 
51
the GNU C Library installed.  This defaults to `/usr/local', but the
 
52
normal setting to install as the standard system library is
 
53
`--prefix=/usr' for GNU/Linux systems and `--prefix=' (an empty prefix)
 
54
for GNU/Hurd systems.
55
55
 
56
56
   It may also be useful to set the CC and CFLAGS variables in the
57
57
environment when running `configure'.  CC selects the C compiler that
71
71
 
72
72
`--with-headers=DIRECTORY'
73
73
     Look for kernel header files in DIRECTORY, not `/usr/include'.
74
 
     Glibc needs information from the kernel's private header files.
75
 
     Glibc will normally look in `/usr/include' for them, but if you
76
 
     specify this option, it will look in DIRECTORY instead.
 
74
     The GNU C Library needs information from the kernel's header files
 
75
     describing the interface to the kernel.  The GNU C Library will
 
76
     normally look in `/usr/include' for them, but if you specify this
 
77
     option, it will look in DIRECTORY instead.
77
78
 
78
79
     This option is primarily of use on a system where the headers in
79
 
     `/usr/include' come from an older version of glibc.  Conflicts can
80
 
     occasionally happen in this case.  Note that Linux libc5 qualifies
81
 
     as an older version of glibc.  You can also use this option if you
82
 
     want to compile glibc with a newer set of kernel headers than the
83
 
     ones found in `/usr/include'.
 
80
     `/usr/include' come from an older version of the GNU C Library.
 
81
     Conflicts can occasionally happen in this case.  You can also use
 
82
     this option if you want to compile the GNU C Library with a newer
 
83
     set of kernel headers than the ones found in `/usr/include'.
84
84
 
85
85
`--enable-add-ons[=LIST]'
86
86
     Specify add-on packages to include in the build.  If this option is
92
92
     absolute directory name or can be a directory name relative to the
93
93
     main source directory, or relative to the build directory (that
94
94
     is, the current working directory).  For example,
95
 
     `--enable-add-ons=nptl,../glibc-libidn-2.4'.
 
95
     `--enable-add-ons=nptl,../glibc-libidn-VERSION'.
96
96
 
97
97
`--enable-kernel=VERSION'
98
98
     This option is currently only useful on GNU/Linux systems.  The
105
105
     Use the binutils (assembler and linker) in `DIRECTORY', not the
106
106
     ones the C compiler would default to.  You can use this option if
107
107
     the default binutils on your system cannot deal with all the
108
 
     constructs in the GNU C library.  In that case, `configure' will
 
108
     constructs in the GNU C Library.  In that case, `configure' will
109
109
     detect the problem and suppress these constructs, so that the
110
110
     library will still be usable, but functionality may be lost--for
111
111
     example, you can't build a shared libc with old binutils.
114
114
     Use this option if your computer lacks hardware floating-point
115
115
     support and your operating system does not emulate an FPU.
116
116
 
117
 
     these
118
 
 
119
117
`--disable-shared'
120
118
     Don't build shared libraries even if it is possible.  Not all
121
119
     systems support shared libraries; you need ELF support and
125
123
     Don't build libraries with profiling information.  You may want to
126
124
     use this option if you don't plan to do profiling.
127
125
 
128
 
`--enable-omitfp'
129
 
     Use maximum optimization for the normal (static and shared)
130
 
     libraries, and compile separate static libraries with debugging
131
 
     information and no optimization.  We recommend not doing this.
132
 
     The extra optimization doesn't gain you much, it may provoke
133
 
     compiler bugs, and you won't be able to trace bugs through the C
134
 
     library.
135
 
 
136
126
`--disable-versioning'
137
127
     Don't compile the shared libraries with symbol version information.
138
128
     Doing this will make the resulting library incompatible with old
154
144
`--host=HOST-SYSTEM'
155
145
     These options are for cross-compiling.  If you specify both
156
146
     options and BUILD-SYSTEM is different from HOST-SYSTEM, `configure'
157
 
     will prepare to cross-compile glibc from BUILD-SYSTEM to be used
158
 
     on HOST-SYSTEM.  You'll probably need the `--with-headers' option
159
 
     too, and you may have to override CONFIGURE's selection of the
160
 
     compiler and/or binutils.
 
147
     will prepare to cross-compile the GNU C Library from BUILD-SYSTEM
 
148
     to be used on HOST-SYSTEM.  You'll probably need the
 
149
     `--with-headers' option too, and you may have to override
 
150
     CONFIGURE's selection of the compiler and/or binutils.
161
151
 
162
152
     If you only specify `--host', `configure' will prepare for a
163
153
     native compile but use what you specify instead of guessing what
189
179
do not use the built library, and report a bug after verifying that the
190
180
problem is not already known.  *Note Reporting Bugs::, for instructions
191
181
on reporting bugs.  Note that some of the tests assume they are not
192
 
being run by `root'.  We recommend you compile and test glibc as an
193
 
unprivileged user.
 
182
being run by `root'.  We recommend you compile and test the GNU C
 
183
Library as an unprivileged user.
194
184
 
195
185
   Before reporting bugs make sure there is no problem with your system.
196
186
The tests (and later installation) use some pre-existing files of the
199
189
 
200
190
   To format the `GNU C Library Reference Manual' for printing, type
201
191
`make dvi'.  You need a working TeX installation to do this.  The
202
 
distribution already includes the on-line formatted version of the
203
 
manual, as Info files.  You can regenerate those with `make info', but
204
 
it shouldn't be necessary.
 
192
distribution builds the on-line formatted version of the manual, as
 
193
Info files, as part of the build process.  You can build them manually
 
194
with `make info'.
205
195
 
206
196
   The library has a number of special-purpose configuration parameters
207
197
which you can find in `Makeconfig'.  These can be overwritten with the
210
200
file is included and parsed by `make' and has to follow the conventions
211
201
for makefiles.
212
202
 
213
 
   It is easy to configure the GNU C library for cross-compilation by
 
203
   It is easy to configure the GNU C Library for cross-compilation by
214
204
setting a few variables in `configparms'.  Set `CC' to the
215
205
cross-compiler for the target you configured the library for; it is
216
206
important to use this same `CC' value when running `configure', like
217
207
this: `CC=TARGET-gcc configure TARGET'.  Set `BUILD_CC' to the compiler
218
208
to use for programs run on the build system as part of compiling the
219
 
library.  You may need to set `AR' and `RANLIB' to cross-compiling
220
 
versions of `ar' and `ranlib' if the native tools are not configured to
221
 
work with object files for the target you configured for.
 
209
library.  You may need to set `AR' to cross-compiling versions of `ar'
 
210
if the native tools are not configured to work with object files for
 
211
the target you configured for.
222
212
 
223
213
Installing the C Library
224
214
========================
226
216
To install the library and its header files, and the Info files of the
227
217
manual, type `env LANGUAGE=C LC_ALL=C make install'.  This will build
228
218
things, if necessary, before installing them; however, you should still
229
 
compile everything first.  If you are installing glibc as your primary
230
 
C library, we recommend that you shut the system down to single-user
231
 
mode first, and reboot afterward.  This minimizes the risk of breaking
232
 
things when the library changes out from underneath.
 
219
compile everything first.  If you are installing the GNU C Library as
 
220
your primary C library, we recommend that you shut the system down to
 
221
single-user mode first, and reboot afterward.  This minimizes the risk
 
222
of breaking things when the library changes out from underneath.
233
223
 
234
 
   If you're upgrading from Linux libc5 or some other C library, you
235
 
need to replace the `/usr/include' with a fresh directory before
236
 
installing it.  The new `/usr/include' should contain the Linux
237
 
headers, but nothing else.
 
224
   `make install' will do the entire job of upgrading from a previous
 
225
installation of the GNU C Library version 2.x.  There may sometimes be
 
226
headers left behind from the previous installation, but those are
 
227
generally harmless.  If you want to avoid leaving headers behind you
 
228
can do things in the following order.
238
229
 
239
230
   You must first build the library (`make'), optionally check it
240
231
(`make check'), switch the include directories and then install (`make
242
233
directory before install will result in an unusable mixture of header
243
234
files from both libraries, but configuring, building, and checking the
244
235
library requires the ability to compile and run programs against the old
245
 
library.
246
 
 
247
 
   If you are upgrading from a previous installation of glibc 2.0 or
248
 
2.1, `make install' will do the entire job.  You do not need to remove
249
 
the old includes - if you want to do so anyway you must then follow the
250
 
order given above.
251
 
 
252
 
   You may also need to reconfigure GCC to work with the new library.
253
 
The easiest way to do that is to figure out the compiler switches to
254
 
make it work again (`-Wl,--dynamic-linker=/lib/ld-linux.so.2' should
255
 
work on GNU/Linux systems) and use them to recompile gcc.  You can also
256
 
edit the specs file (`/usr/lib/gcc-lib/TARGET/VERSION/specs'), but that
257
 
is a bit of a black art.
258
 
 
259
 
   You can install glibc somewhere other than where you configured it
260
 
to go by setting the `install_root' variable on the command line for
261
 
`make install'.  The value of this variable is prepended to all the
262
 
paths for installation.  This is useful when setting up a chroot
263
 
environment or preparing a binary distribution.  The directory should be
264
 
specified with an absolute file name.
265
 
 
266
 
   Glibc 2.2 includes a daemon called `nscd', which you may or may not
267
 
want to run.  `nscd' caches name service lookups; it can dramatically
268
 
improve performance with NIS+, and may help with DNS as well.
 
236
library.  The new `/usr/include', after switching the include
 
237
directories and before installing the library should contain the Linux
 
238
headers, but nothing else.  If you do this, you will need to restore
 
239
any headers from libraries other than the GNU C Library yourself after
 
240
installing the library.
 
241
 
 
242
   You can install the GNU C Library somewhere other than where you
 
243
configured it to go by setting the `install_root' variable on the
 
244
command line for `make install'.  The value of this variable is
 
245
prepended to all the paths for installation.  This is useful when
 
246
setting up a chroot environment or preparing a binary distribution.
 
247
The directory should be specified with an absolute file name.
 
248
 
 
249
   The GNU C Library includes a daemon called `nscd', which you may or
 
250
may not want to run.  `nscd' caches name service lookups; it can
 
251
dramatically improve performance with NIS+, and may help with DNS as
 
252
well.
269
253
 
270
254
   One auxiliary program, `/usr/libexec/pt_chown', is installed setuid
271
255
`root'.  This program is invoked by the `grantpt' function; it sets the
272
256
permissions on a pseudoterminal so it can be used by the calling
273
257
process.  This means programs like `xterm' and `screen' do not have to
274
258
be setuid to get a pty.  (There may be other reasons why they need
275
 
privileges.)  If you are using a 2.1 or newer Linux kernel with the
276
 
`devptsfs' or `devfs' filesystems providing pty slaves, you don't need
277
 
this program; otherwise you do.  The source for `pt_chown' is in
 
259
privileges.)  If you are using a Linux kernel with the `devptsfs' or
 
260
`devfs' filesystems providing pty slaves, you don't need this program;
 
261
otherwise you do.  The source for `pt_chown' is in
278
262
`login/programs/pt_chown.c'.
279
263
 
280
264
   After installation you might want to configure the timezone and
281
 
locale installation of your system.  The GNU C library comes with a
 
265
locale installation of your system.  The GNU C Library comes with a
282
266
locale database which gets configured with `localedef'.  For example, to
283
267
set up a German locale with name `de_DE', simply issue the command
284
268
`localedef -i de_DE -f ISO-8859-1 de_DE'.  To configure all locales
285
 
that are supported by glibc, you can issue from your build directory the
286
 
command `make localedata/install-locales'.
 
269
that are supported by the GNU C Library, you can issue from your build
 
270
directory the command `make localedata/install-locales'.
287
271
 
288
272
   To configure the locally used timezone, set the `TZ' environment
289
273
variable.  The script `tzselect' helps you to select the right value.
298
282
=================================
299
283
 
300
284
We recommend installing the following GNU tools before attempting to
301
 
build the GNU C library:
 
285
build the GNU C Library:
302
286
 
303
287
   * GNU `make' 3.79 or newer
304
288
 
308
292
     recommend GNU `make' version 3.79.  All earlier versions have
309
293
     severe bugs or lack features.
310
294
 
311
 
   * GCC 3.4 or newer, GCC 4.1 recommended
312
 
 
313
 
     For the 2.4 release or later, GCC 3.4 or higher is required; as of
314
 
     this writing, GCC 4.4 is the compiler we advise to use for current
315
 
     versions.  On certain machines including `powerpc64', compilers
316
 
     prior to GCC 4.0 have bugs that prevent them compiling the C
317
 
     library code in the 2.4 release.  On other machines, GCC 4.1 is
318
 
     required to build the C library with support for the correct `long
319
 
     double' type format; these include `powerpc' (32 bit), `s390' and
320
 
     `s390x'.  For other architectures special compiler-provided
321
 
     headers are needed (like `cpuid.h' on x86) which only come with
322
 
     later compiler versions.
323
 
 
324
 
     You can use whatever compiler you like to compile programs that
325
 
     use GNU libc, but be aware that both GCC 2.7 and 2.8 have bugs in
326
 
     their floating-point support that may be triggered by the math
327
 
     library.
 
295
   * GCC 4.3 or newer, GCC 4.6 recommended
 
296
 
 
297
     GCC 4.3 or higher is required; as of this writing, GCC 4.6 is the
 
298
     compiler we advise to use to build the GNU C Library.
 
299
 
 
300
     You can use whatever compiler you like to compile programs that use
 
301
     the GNU C Library.
328
302
 
329
303
     Check the FAQ for any special compiler issues on particular
330
304
     platforms.
331
305
 
332
 
   * GNU `binutils'
 
306
   * GNU `binutils' 2.20 or later
333
307
 
334
 
     You must use GNU `binutils' (as and ld) to build the GNU C library.
 
308
     You must use GNU `binutils' (as and ld) to build the GNU C Library.
335
309
     No other assembler or linker has the necessary functionality at the
336
 
     moment.  The configure scripts checks for the appropriate version
337
 
     for the platform.  Too-old versions will prevent building glibc.
 
310
     moment.
338
311
 
339
 
   * GNU `texinfo' 3.12f
 
312
   * GNU `texinfo' 4.5 or later
340
313
 
341
314
     To correctly translate and install the Texinfo documentation you
342
315
     need this version of the `texinfo' package.  Earlier versions do
378
351
Specific advice for GNU/Linux systems
379
352
=====================================
380
353
 
381
 
If you are installing GNU libc on a GNU/Linux system, you need to have
382
 
the header files from a 2.2 or newer kernel around for reference.  For
383
 
some architectures, like ia64, sh and hppa, you need at least headers
384
 
from kernel 2.3.99 (sh and hppa) or 2.4.0 (ia64).  You do not need to
385
 
use that kernel, just have its headers where glibc can access at them.
386
 
The easiest way to do this is to unpack it in a directory such as
387
 
`/usr/src/linux-2.2.1'.  In that directory, run `make config' and
388
 
accept all the defaults.  Then run `make include/linux/version.h'.
389
 
Finally, configure glibc with the option
390
 
`--with-headers=/usr/src/linux-2.2.1/include'.  Use the most recent
391
 
kernel you can get your hands on.
392
 
 
393
 
   An alternate tactic is to unpack the 2.2 kernel and run `make
394
 
config' as above; then, rename or delete `/usr/include', create a new
395
 
`/usr/include', and make symbolic links of `/usr/include/linux' and
396
 
`/usr/include/asm' into the kernel sources.  You can then configure
397
 
glibc with no special options.  This tactic is recommended if you are
398
 
upgrading from libc5, since you need to get rid of the old header files
399
 
anyway.
400
 
 
401
 
   After installing GNU libc, you may need to remove or rename
402
 
`/usr/include/linux' and `/usr/include/asm', and replace them with
403
 
copies of `include/linux' and `include/asm-$ARCHITECTURE' taken from
404
 
the Linux source package which supplied kernel headers for building the
405
 
library.  ARCHITECTURE will be the machine architecture for which the
406
 
library was built, such as `i386' or `alpha'.  You do not need to do
407
 
this if you did not specify an alternate kernel header source using
408
 
`--with-headers'.  The intent here is that these directories should be
409
 
copies of, *not* symlinks to, the kernel headers used to build the
410
 
library.
411
 
 
412
 
   Note that `/usr/include/net' and `/usr/include/scsi' should *not* be
413
 
symlinks into the kernel sources.  GNU libc provides its own versions
414
 
of these files.
415
 
 
416
 
   GNU/Linux expects some components of the libc installation to be in
417
 
`/lib' and some in `/usr/lib'.  This is handled automatically if you
418
 
configure glibc with `--prefix=/usr'.  If you set some other prefix or
419
 
allow it to default to `/usr/local', then all the components are
420
 
installed there.
421
 
 
422
 
   If you are upgrading from libc5, you need to recompile every shared
423
 
library on your system against the new library for the sake of new code,
424
 
but keep the old libraries around for old binaries to use.  This is
425
 
complicated and difficult.  Consult the Glibc2 HOWTO at
426
 
`http://www.imaxx.net/~thrytis/glibc' for details.
427
 
 
428
 
   You cannot use `nscd' with 2.0 kernels, due to bugs in the
429
 
kernel-side thread support.  `nscd' happens to hit these bugs
430
 
particularly hard, but you might have problems with any threaded
431
 
program.
 
354
If you are installing the GNU C Library on GNU/Linux systems, you need
 
355
to have the header files from a 2.6.19.1 or newer kernel around for
 
356
reference.  These headers must be installed using `make
 
357
headers_install'; the headers present in the kernel source directory
 
358
are not suitable for direct use by the GNU C Library.  You do not need
 
359
to use that kernel, just have its headers installed where the GNU C
 
360
Library can access them, referred to here as INSTALL-DIRECTORY.  The
 
361
easiest way to do this is to unpack it in a directory such as
 
362
`/usr/src/linux-VERSION'.  In that directory, run `make headers_install
 
363
INSTALL_HDR_PATH=INSTALL-DIRECTORY'.  Finally, configure the GNU C
 
364
Library with the option `--with-headers=INSTALL-DIRECTORY/include'.
 
365
Use the most recent kernel you can get your hands on.  (If you are
 
366
cross-compiling the GNU C Library, you need to specify
 
367
`ARCH=ARCHITECTURE' in the `make headers_install' command, where
 
368
ARCHITECTURE is the architecture name used by the Linux kernel, such as
 
369
`x86' or `powerpc'.)
 
370
 
 
371
   After installing the GNU C Library, you may need to remove or rename
 
372
directories such as `/usr/include/linux' and `/usr/include/asm', and
 
373
replace them with copies of directories such as `linux' and `asm' from
 
374
`INSTALL-DIRECTORY/include'.  All directories present in
 
375
`INSTALL-DIRECTORY/include' should be copied, except that the GNU C
 
376
Library provides its own version of `/usr/include/scsi'; the files
 
377
provided by the kernel should be copied without replacing those
 
378
provided by the GNU C Library.  The `linux', `asm' and `asm-generic'
 
379
directories are required to compile programs using the GNU C Library;
 
380
the other directories describe interfaces to the kernel but are not
 
381
required if not compiling programs using those interfaces.  You do not
 
382
need to copy kernel headers if you did not specify an alternate kernel
 
383
header source using `--with-headers'.
 
384
 
 
385
   The Filesystem Hierarchy Standard for GNU/Linux systems expects some
 
386
components of the GNU C Library installation to be in `/lib' and some
 
387
in `/usr/lib'.  This is handled automatically if you configure the GNU
 
388
C Library with `--prefix=/usr'.  If you set some other prefix or allow
 
389
it to default to `/usr/local', then all the components are installed
 
390
there.
432
391
 
433
392
Reporting Bugs
434
393
==============
435
394
 
436
 
There are probably bugs in the GNU C library.  There are certainly
 
395
There are probably bugs in the GNU C Library.  There are certainly
437
396
errors and omissions in this manual.  If you report them, they will get
438
397
fixed.  If you don't, no one will ever know about them and they will
439
398
remain unfixed for all eternity, if not longer.
441
400
   It is a good idea to verify that the problem has not already been
442
401
reported.  Bugs are documented in two places: The file `BUGS' describes
443
402
a number of well known bugs and the bug tracking system has a WWW
444
 
interface at `http://sources.redhat.com/bugzilla/'.  The WWW interface
 
403
interface at `http://sourceware.org/bugzilla/'.  The WWW interface
445
404
gives you access to open and closed reports.  A closed report normally
446
405
includes a patch or a hint on solving the problem.
447
406
 
448
407
   To report a bug, first you must find it.  With any luck, this will
449
408
be the hard part.  Once you've found a bug, make sure it's really a
450
 
bug.  A good way to do this is to see if the GNU C library behaves the
 
409
bug.  A good way to do this is to see if the GNU C Library behaves the
451
410
same way some other C library does.  If so, probably you are wrong and
452
411
the libraries are right (but not necessarily).  If not, one of the
453
 
libraries is probably wrong.  It might not be the GNU library.  Many
 
412
libraries is probably wrong.  It might not be the GNU C Library.  Many
454
413
historical Unix C libraries permit things that we don't, such as
455
414
closing a file twice.
456
415
 
457
 
   If you think you have found some way in which the GNU C library does
 
416
   If you think you have found some way in which the GNU C Library does
458
417
not conform to the ISO and POSIX standards (*note Standards and
459
418
Portability::), that is definitely a bug.  Report it!
460
419