--drepper@cygnus.com
\f
-?? Compiling glibc
+? Compiling glibc
-? What systems does the GNU C Library run on?
+?? What systems does the GNU C Library run on?
{UD} This is difficult to answer. The file `README' lists the
architectures GNU libc was known to run on *at some time*. This does
<bug-glibc@prep.ai.mit.edu>
-? What compiler do I need to build GNU libc?
+?? What compiler do I need to build GNU libc?
{UD} You must use GNU CC to compile GNU libc. A lot of extensions of
GNU CC are used to increase portability and speed.
versions may not have all the features GNU libc requires. On most
supported platforms, 2.7.2.3 is the earliest version that works at all.
-? When I try to compile glibc I get only error messages.
+?? When I try to compile glibc I get only error messages.
What's wrong?
{UD} You definitely need GNU make to translate GNU libc. No
have bugs which appear when building big projects like GNU libc.
Versions before 3.74 have bugs and/or are missing features.
-? Do I need a special linker or archiver?
+?? Do I need a special linker or archiver?
{UD} You may be able to use your system linker, but GNU libc works
best with GNU binutils.
may have native linker support, but it's moot right now, because glibc
has not been ported to them.
-? Do I need some more things to compile GNU C Library?
+?? Do I need some more things to compile GNU C Library?
{UD} Yes, there are some more :-).
If you have some more measurements let me know.
-? When I run `nm -u libc.so' on the produced library I still
+?? When I run `nm -u libc.so' on the produced library I still
find unresolved symbols. Can this be ok?
{UD} Yes, this is ok. There can be several kinds of unresolved
Generally, you should make sure you find a real program which produces
errors while linking before deciding there is a problem.
-?addon What are these `add-ons'?
+??addon What are these `add-ons'?
{UD} To avoid complications with export rules or external source
code some optional parts of the libc are distributed as separate
just about anything else. The existing makefiles do most of the work;
only some few stub rules must be written to get everything running.
-? My XXX kernel emulates a floating-point coprocessor for me.
+?? My XXX kernel emulates a floating-point coprocessor for me.
Should I enable --with-fp?
{ZW} An emulated FPU is just as good as a real one, as far as the C
*everything* this way, including the compiler's internal libraries
(libgcc.a for GNU C), because the calling conventions change.
-? When compiling GNU libc I get lots of errors saying functions
+?? When compiling GNU libc I get lots of errors saying functions
in glibc are duplicated in libgcc.
{EY} This is *exactly* the same problem that I was having. The
some problems of this kind. The setting of CFLAGS is checked at the
very beginning and if it is not usable `configure' will bark.
-? What's the problem with configure --enable-omitfp?
+?? What's the problem with configure --enable-omitfp?
{AJ} When --enable-omitfp is set the libraries are built without frame
pointers. Some compilers produce buggy code for this model and
The compilation of these extra libraries and the compiler optimizations
slow down the build process and need more disk space.
-?? Installation and configuration issues
+? Installation and configuration issues
-? Can I replace the libc on my Linux system with GNU libc?
+?? Can I replace the libc on my Linux system with GNU libc?
{UD} You cannot replace any existing libc for Linux with GNU
libc. It is binary incompatible and therefore has a different major
Makefiles of GNU libc will automatically generate the needed symbolic
links which the linker will use.
-? How do I configure GNU libc so that the essential libraries
+?? How do I configure GNU libc so that the essential libraries
like libc.so go into /lib and the other into /usr/lib?
{UD,AJ} Like all other GNU packages GNU libc is designed to use a base
The first line specifies the directory for the essential libraries,
the second line the directory for system configuration files.
-?safety How should I avoid damaging my system when I install GNU libc?
+??safety How should I avoid damaging my system when I install GNU libc?
{ZW} If you wish to be cautious, do not configure with --prefix=/usr.
If you don't specify a prefix, glibc will be installed in /usr/local,
The situation is rather similar to the move from a.out to ELF which
long-time Linux users will remember.
-? Do I need to use GNU CC to compile programs that will use the
+?? Do I need to use GNU CC to compile programs that will use the
GNU C Library?
{ZW} In theory, no; the linker does not care, and the headers are
versions of some string functions. These can only be used with GCC.
See ?string for details.
-?crypt When linking with the new libc I get unresolved symbols
+??crypt When linking with the new libc I get unresolved symbols
`crypt' and `setkey'. Why aren't these functions in the
libc anymore?
functions are in a separate library to make it possible to export GNU
libc binaries from the US.
-? When I use GNU libc on my Linux system by linking against
+?? When I use GNU libc on my Linux system by linking against
the libc.so which comes with glibc all I get is a core dump.
{UD} On Linux, gcc sets the dynamic linker to /lib/ld-linux.so.1
Version 2.7.2.3 does and future versions of GCC will automatically
provide the correct specs.
-? Looking through the shared libc file I haven't found the
+?? Looking through the shared libc file I haven't found the
functions `stat', `lstat', `fstat', and `mknod' and while
linking on my Linux system I get error messages. How is
this supposed to work?
GROUP ( libc.so.6 ld-linux.so.2 libc.a )
-? How can I compile gcc 2.7.2.1 from the gcc source code using
+?? How can I compile gcc 2.7.2.1 from the gcc source code using
glibc 2.x?
{AJ} There's only correct support for glibc 2.0.x in gcc 2.7.2.3
or later. You should get at least gcc 2.7.2.3. All previous versions
had problems with glibc support.
-? The `gencat' utility cannot process the catalog sources which
+?? The `gencat' utility cannot process the catalog sources which
were used on my Linux libc5 based system. Why?
{UD} The `gencat' utility provided with glibc complies to the XPG
}
-----------------------------------------------------------------------
-? I have set up /etc/nis.conf, and the Linux libc 5 with NYS
+?? I have set up /etc/nis.conf, and the Linux libc 5 with NYS
works great. But the glibc NIS+ doesn't seem to work.
{??} The glibc NIS+ implementation uses a /var/nis/NIS_COLD_START
it with nisinit from the nis-tools package (available at
http://www-vt.uni-paderborn.de/~kukuk/linux/nisplus.html).
-? After installing glibc name resolving doesn't work properly.
+?? After installing glibc name resolving doesn't work properly.
{AJ} You probably should read the manual section describing
nsswitch.conf (just type `info libc "NSS Configuration File"').
The NSS configuration file is usually the culprit.
-? I have /usr/include/net and /usr/include/scsi as symlinks
+?? I have /usr/include/net and /usr/include/scsi as symlinks
into my Linux source tree. Is that wrong?
{PB} This was necessary for libc5, but is not correct when using
any symlink that you have in place before you install glibc. However,
/usr/include/asm and /usr/include/linux should remain as they were.
-? Programs like `logname', `top', `uptime' `users', `w' and
+?? Programs like `logname', `top', `uptime' `users', `w' and
`who', show incorrect information about the (number of)
users on my system. Why?
{MK} See ?getlog.
-? After upgrading to glibc 2.1 with symbol versioning I get
+?? After upgrading to glibc 2.1 with symbol versioning I get
errors about undefined symbols. What went wrong?
{AJ} The problem is caused either by wrong program code or tools. In
the price you might have to pay once for quite a number of advantages
with symbol versioning.
-? When I start the program XXX after upgrading the library
+?? When I start the program XXX after upgrading the library
I get
XXX: Symbol `_sys_errlist' has different size in shared
object, consider re-linking
happened. So in case of doubt report such a warning message as a
problem.
-?? Source and binary incompatibilities, and what to do about them
+? Source and binary incompatibilities, and what to do about them
-? I expect GNU libc to be 100% source code compatible with
+?? I expect GNU libc to be 100% source code compatible with
the old Linux based GNU libc. Why isn't it like this?
{DMT,UD} Not every extension in Linux libc's history was well
the SysV behavior simply use `sysv_signal', or define _XOPEN_SOURCE.
See ?signal for details.
-?getlog Why does getlogin() always return NULL on my Linux box?
+??getlog Why does getlogin() always return NULL on my Linux box?
{UD} The GNU C library has a format for the UTMP and WTMP file which
differs from what your system currently has. It was extended to
{MK} There is however a (partial) solution for this problem. Please
take a look at the file `README.utmpd'.
-? Where are the DST_* constants found in <sys/time.h> on many
+?? Where are the DST_* constants found in <sys/time.h> on many
systems?
{UD} These constants come from the old BSD days and are not used
Instead GNU libc contains zone database support and compatibility code
for POSIX TZ environment variable handling.
-? The prototypes for `connect', `accept', `getsockopt',
+?? The prototypes for `connect', `accept', `getsockopt',
`setsockopt', `getsockname', `getpeername', `send',
`sendto', and `recvfrom' are different in GNU libc from
any other system I saw. This is a bug, isn't it?
adopted the solution). The type for a parameter describing a size is
now `socklen_t', a new type.
-?kerhdr On Linux I've got problems with the declarations in Linux
+??kerhdr On Linux I've got problems with the declarations in Linux
kernel headers.
{UD,AJ} On Linux, the use of kernel headers is reduced to the minimum.
glibc has defined a replacement. Otherwise you might get undefined
results because of type conflicts.
-? I don't include any kernel headers myself but the compiler
+?? I don't include any kernel headers myself but the compiler
still complains about redeclarations of types in the kernel
headers.
There might be some problems left but 2.1.61 fixes most of the known
ones. See the BUGS file for other known problems.
-?signal Why don't signals interrupt system calls anymore?
+??signal Why don't signals interrupt system calls anymore?
{ZW} By default GNU libc uses the BSD semantics for signal(),
unlike Linux libc 5 which used System V semantics. This is partially
siginterrupt().
-?string I've got errors compiling code that uses certain string
+??string I've got errors compiling code that uses certain string
functions. Why?
{AJ} glibc 2.1 has special string functions that are faster
This disables the optimization for that specific call.
-?? Miscellaneous
+? Miscellaneous
-? After I changed configure.in I get `Autoconf version X.Y.
+?? After I changed configure.in I get `Autoconf version X.Y.
or higher is required for this script'. What can I do?
{UD} You have to get the specified autoconf version (or a later one)
from your favorite mirror of prep.ai.mit.edu.
-? When I try to compile code which uses IPv6 headers and
+?? When I try to compile code which uses IPv6 headers and
definitions on my Linux 2.x.y system I am in trouble.
Nothing seems to work.