diff options
| -rw-r--r-- | ChangeLog | 70 | ||||
| -rw-r--r-- | FAQ | 1167 | ||||
| -rw-r--r-- | FAQ.in | 787 | ||||
| -rw-r--r-- | Makeconfig | 2 | ||||
| -rw-r--r-- | Makefile | 2 | ||||
| -rwxr-xr-x | configure | 143 | ||||
| -rw-r--r-- | configure.in | 9 | ||||
| -rwxr-xr-x | gen-FAQ.pl | 144 | ||||
| -rw-r--r-- | iconvdata/Makefile | 8 | ||||
| -rw-r--r-- | rt/librt.map | 11 | ||||
| -rw-r--r-- | string/bits/string2.h | 8 | ||||
| -rw-r--r-- | string/string.h | 10 | ||||
| -rw-r--r-- | sunrpc/xcrypt.c | 2 | ||||
| -rw-r--r-- | sysdeps/generic/enbl-secure.c | 2 | ||||
| -rw-r--r-- | sysdeps/unix/sysv/linux/bits/socket.h | 18 | ||||
| -rw-r--r-- | sysdeps/unix/sysv/linux/i386/s_pread64.S | 45 | ||||
| -rw-r--r-- | sysdeps/unix/sysv/linux/i386/s_pwrite64.S | 45 | ||||
| -rw-r--r-- | sysdeps/unix/sysv/linux/i386/sigaction.c | 4 | ||||
| -rw-r--r-- | sysdeps/unix/sysv/linux/rt_sigprocmask.c | 2 | ||||
| -rw-r--r-- | sysdeps/unix/sysv/linux/rt_sigqueueinfo.c | 1 | ||||
| -rw-r--r-- | sysdeps/unix/sysv/linux/rt_sigsuspend.c | 2 | ||||
| -rw-r--r-- | sysdeps/unix/sysv/linux/sigreturn.c | 1 | ||||
| -rw-r--r-- | sysdeps/unix/sysv/linux/sys/pci.h | 2 | ||||
| -rw-r--r-- | sysdeps/wordsize-32/bits/environments.h | 7 | ||||
| -rw-r--r-- | sysdeps/wordsize-64/bits/environments.h | 11 |
25 files changed, 1807 insertions, 696 deletions
@@ -1,3 +1,73 @@ +1997-12-05 00:01 Ulrich Drepper <drepper@cygnus.com> + + The kernel expects the arguments in a different order. + * sysdeps/unix/sysv/linux/i386/s_pread64.S: New file. + * sysdeps/unix/sysv/linux/i386/s_pwrite64.S: New file. + + * FAQ.in: New file. + * gen-FAQ.pl: New file. + * Makefile (FAQ): Add rule to generate from FAQ.in. + + * iconvdata/Makefile: Treat libJIS like the other modules. + + * rt/librt.map: New file. + + * sysdeps/wordsize-32/bits/environments.h: Add test for direct + inclusion. + * sysdeps/wordsize-64/bits/environments.h: Likewise. Correct + comment. + +1997-12-04 22:29 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/unix/sysv/linux/rt_sigprocmask.c: Fix prototype. + * sysdeps/unix/sysv/linux/rt_sigsuspend.c: Likewise. + * sysdeps/unix/sysv/linux/rt_sigqueueinfo.c: Include <sys/types.h>. + Patches by Thorsten Kukuk <kukuk@weber.uni-paderborn.de>. + +1997-11-27 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * string/bits/string2.h: Fix spellings. + + * string/string.h: Fix spellings. + +1997-12-04 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * sysdeps/unix/sysv/linux/i386/sigaction.c: Rename extern + declaration to __syscall_rt_sigaction. + + * sysdeps/unix/sysv/linux/sigreturn.c: Remove inclusion of + non-existant <sigcontext.h>. + +1997-12-04 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * sysdeps/generic/enbl-secure.c (__libc_init_secure): Correct + typo. + +1997-12-04 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * sysdeps/wordsize-64/bits/environments.h: Correct spelling. + + * Makeconfig (shared-thread-library): Correct spelling. + + * sysdeps/unix/sysv/linux/sys/pci.h: Include <linux/pci.h> and not + <asm/pci.h>. + +1997-12-04 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * sysdeps/unix/sysv/linux/bits/socket.h: Add AF_* and PF_ + constants from Linux headers. Pointed out by + csmall@scooter.o.i.net. [PR libc/369] + +1997-12-04 10:21 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> + + * sunrpc/xcrypt.c: Fix lower/upper characters in optimized hexval. + +1997-12-04 00:06 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * configure.in: If --enable-add-ons is given without an + argument, set the addons list to all subdirs with a configure + script. + 1997-12-03 23:50 Ulrich Drepper <drepper@cygnus.com> * Makeconfig: Add shared-thread-library variable. @@ -1,131 +1,117 @@ - Frequently Asked Question on GNU C Library + Frequently Asked Questions about the GNU C Library -As every FAQ this one also tries to answer questions the user might have -when using the package. Please make sure you read this before sending -questions or bug reports to the maintainers. +This document tries to answer questions a user might have when +installing and using glibc. Please make sure you read this before +sending questions or bug reports to the maintainers. -The GNU C Library is very complex. The building process exploits the -features available in tools generally available. But many things can -only be done using GNU tools. Also the code is sometimes hard to -understand because it has to be portable but on the other hand must be -fast. But you need not understand the details to use GNU C Library. -This will only be necessary if you intend to contribute or change it. +The GNU C library is very complex. The installation process has not +been completely automated; there are too many variables. You can do +substantial damage to your system by installing the library +incorrectly. Make sure you understand what you are undertaking before +you begin. If you have any questions you think should be answered in this document, please let me know. --drepper@cygnus.com -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q1] ``What systems does the GNU C Library run on?'' +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ + +1. Compiling glibc + +1.1. What systems does the GNU C Library run on? +1.2. What compiler do I need to build GNU libc? +1.3. When I try to compile glibc I get only error messages. + What's wrong? +1.4. Do I need a special linker or archiver? +1.5. Do I need some more things to compile GNU C Library? +1.6. When I run `nm -u libc.so' on the produced library I still + find unresolved symbols. Can this be ok? +1.7. What are these `add-ons'? +1.8. My XXX kernel emulates a floating-point coprocessor for me. + Should I enable --with-fp? +1.9. When compiling GNU libc I get lots of errors saying functions + in glibc are duplicated in libgcc. +1.10. What's the problem with configure --enable-omitfp? + +2. Installation and configuration issues + +2.1. Can I replace the libc on my Linux system with GNU libc? +2.2. How do I configure GNU libc so that the essential libraries + like libc.so go into /lib and the other into /usr/lib? +2.3. How should I avoid damaging my system when I install GNU libc? +2.4. Do I need to use GNU CC to compile programs that will use the + GNU C Library? +2.5. When linking with the new libc I get unresolved symbols + `crypt' and `setkey'. Why aren't these functions in the + libc anymore? +2.6. 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. +2.7. 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? +2.8. How can I compile gcc 2.7.2.1 from the gcc source code using + glibc 2.x? +2.9. The `gencat' utility cannot process the catalog sources which + were used on my Linux libc5 based system. Why? +2.10. 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. +2.11. After installing glibc name resolving doesn't work properly. +2.12. I have /usr/include/net and /usr/include/scsi as symlinks + into my Linux source tree. Is that wrong? +2.13. Programs like `logname', `top', `uptime' `users', `w' and + `who', show incorrect information about the (number of) + users on my system. Why? +2.14. After upgrading to glibc 2.1 with symbol versioning I get + errors about undefined symbols. What went wrong? +2.15. 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 + Why? What should I do? + +3. Source and binary incompatibilities, and what to do about them + +3.1. I expect GNU libc to be 100% source code compatible with + the old Linux based GNU libc. Why isn't it like this? +3.2. Why does getlogin() always return NULL on my Linux box? +3.3. Where are the DST_* constants found in <sys/time.h> on many + systems? +3.4. 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? +3.5. On Linux I've got problems with the declarations in Linux + kernel headers. +3.6. I don't include any kernel headers myself but the compiler + still complains about redeclarations of types in the kernel + headers. +3.7. Why don't signals interrupt system calls anymore? +3.8. I've got errors compiling code that uses certain string + functions. Why? + +4. Miscellaneous + +4.1. After I changed configure.in I get `Autoconf version X.Y. + or higher is required for this script'. What can I do? +4.2. 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. -[Q2] ``What compiler do I need to build GNU libc?'' - -[Q3] ``When starting make I get only error messages. - What's wrong?'' - -[Q4] ``After I changed configure.in I get `Autoconf version X.Y. - or higher is required for this script'. What can I do?'' - -[Q5] ``Do I need a special linker or archiver?'' - -[Q6] ``Do I need some more things to compile GNU C Library?'' - -[Q7] ``When I run `nm -u libc.so' on the produced library I still - find unresolved symbols? Can this be ok?'' - -[Q8] ``Can I replace the libc on my Linux system with GNU libc?'' - -[Q9] ``I expect GNU libc to be 100% source code compatible with - the old Linux based GNU libc. Why isn't it like this?'' - -[Q10] ``Why does getlogin() always return NULL on my Linux box?'' - -[Q11] ``Where are the DST_* constants found in <sys/time.h> on many - systems?'' - -[Q12] ``The `gencat' utility cannot process the input which are - successfully used on my Linux libc based system. Why?'' - -[Q13] ``How do I configure GNU libc so that the essential libraries - like libc.so go into /lib and the other into /usr/lib?'' - -[Q14] ``When linking with the new libc I get unresolved symbols - `crypt' and `setkey'. Why aren't these functions in the - libc anymore?'' - -[Q15] ``What are these `add-ons'?'' - -[Q16] ``When I use GNU libc on my Linux system by linking against - to libc.so which comes with glibc all I get is a core dump.'' - -[Q17] ``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?'' - -[Q18] ``The prototypes for `connect', `accept', `getsockopt', - `setsockopt', `getsockname', `getpeername', `send', - `sendto', and `recvfrom' are different in GNU libc than - on any other system I saw. This is a bug, isn't it?'' - -[Q19] ``My XXX kernel emulates a floating-point coprocessor for me. - Should I enable --with-fp?'' - -[Q20] ``How can I compile gcc 2.7.2.1 from the gcc source code using - glibc 2.x? - -[Q21] ``On Linux I've got problems with the declarations in Linux - kernel headers.'' - -[Q22] ``When I try to compile code which uses IPv6 header and - definitions on my Linux 2.x.y system I am in trouble. - Nothing seems to work.'' - -[Q23] ``When compiling GNU libc I get lots of errors saying functions - in glibc are duplicated in libgcc.'' - -[Q24] ``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.'' - -[Q25] ``After installing glibc name resolving doesn't work properly.'' - - -[Q26] ``I have /usr/include/net and /usr/include/scsi as symlinks - into my Linux source tree. Is that wrong?'' - -[Q27] ``Programs like `logname', `top', `uptime' `users', `w' and - `who', show incorrect information about the (number of) - users on my system. Why?'' - -[Q28] ``After upgrading to a glibc 2.1 with symbol versioning I get - errors about undefined symbols. What went wrong?'' - -[Q29] ``I don't include any kernel header myself but still the - compiler complains about type redeclarations of types in the - kernel headers.'' - -[Q30] ``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 - Why? What to do?'' - -[Q31] ``What's the problem with configure --enable-omitfp?'' + +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q32] ``Why don't signals interrupt system calls anymore?'' +1. Compiling glibc -[Q33] ``I've got errors compiling code that uses certain string - functions. Why?'' - -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q1] ``What systems does the GNU C Library run on?'' +1.1. What systems does the GNU C Library run on? -[A1] {UD} This is difficult to answer. The file `README' lists the -architectures GNU libc is known to run *at some time*. This does not -mean that it still can be compiled and run on them in the moment. +{UD} This is difficult to answer. The file `README' lists the +architectures GNU libc was known to run on *at some time*. This does +not mean that it still can be compiled and run on them now. -The systems glibc is known to work on in the moment and most probably -in the future are: +The systems glibc is known to work on as of this release, and most +probably in the future, are: *-*-gnu GNU Hurd i[3456]86-*-linux-gnu Linux-2.0 on Intel @@ -135,8 +121,10 @@ in the future are: sparc-*-linux-gnu Linux-2.0 on SPARC sparc64-*-linux-gnu Linux-2.0 on UltraSPARC -Other Linux platforms are also on the way to be supported but I need -some success reports first. +Ports to other Linux platforms are in development, and may in fact +work already, but no one has sent us success reports for them. +Currently no ports to other operating systems are underway, although a +few people have expressed interest. If you have a system not listed above (or in the `README' file) and you are really interested in porting it, contact @@ -144,389 +132,312 @@ you are really interested in porting it, contact <bug-glibc@prep.ai.mit.edu> -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q2] ``What compiler do I need to build GNU libc?'' +1.2. What compiler do I need to build GNU libc? -[A2] {UD} It is (almost) impossible to compile GNU C Library using a -different compiler than GNU CC. A lot of extensions of GNU CC are -used to increase the portability and speed. +{UD} You must use GNU CC to compile GNU libc. A lot of extensions of +GNU CC are used to increase portability and speed. -But this does not mean you have to use GNU CC for using the GNU C -Library. In fact you should be able to use the native C compiler -because the success only depends on the binutils: the linker and -archiver. - -The GNU CC is found like all other GNU packages on +GNU CC is found, like all other GNU packages, on ftp://prep.ai.mit.edu/pub/gnu -or better one of the many mirror sites. +and the many mirror sites. prep is always overloaded, so try to find +a local mirror first. You always should try to use the latest official release. Older -versions might not have all the features GNU libc could use. It is -known that on most platforms compilers earlier than 2.7.2.3 fail so -at least use this version. +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. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q3] ``When starting `make' I get only errors messages. - What's wrong?'' +1.3. When I try to compile glibc I get only error messages. + What's wrong? -[A3] {UD} You definitely need GNU make to translate GNU libc. No +{UD} You definitely need GNU make to translate GNU libc. No other make program has the needed functionality. -Versions before 3.74 have bugs which prevent correct execution so you -should upgrade to the latest version before starting the compilation. - -We recommend version GNU make version 3.75. Versions 3.76 and -3.76.1 are known to have bugs which only show up in big projects like -GNU libc. +We recommend version GNU make version 3.75. Versions 3.76 and 3.76.1 +have bugs which appear when building big projects like GNU libc. +Versions before 3.74 have bugs and/or are missing features. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q4] ``After I changed configure.in I get `Autoconf version X.Y. - or higher is required for this script'. What can I do?'' +1.4. Do I need a special linker or archiver? -[A4] {UD} You have to get the specified autoconf version (or a later) -from your favourite mirror of prep.ai.mit.edu. - - -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q5] ``Do I need a special linker or archiver?'' - -[A5] {UD} If your native versions are not too buggy you can probably -work with them. But GNU libc works best with GNU binutils. +{UD} You may be able to use your system linker, but GNU libc works +best with GNU binutils. On systems where the native linker does not support weak symbols you -will not get a really ISO C compliant C library. Generally speaking +will not get a fully ISO C compliant C library. Generally speaking you should use the GNU binutils if they provide at least the same functionality as your system's tools. -Always get the newest release of GNU binutils available. -Older releases are known to have bugs that affect building the GNU C -Library. +Always get the newest release of GNU binutils available. Older +releases are known to have bugs that prevent a successful compilation. +{ZW} As of release 2.1 a linker supporting symbol versions is +required. For Linux, get binutils-2.8.1.0.17 or later. Other systems +may have native linker support, but it's moot right now, because glibc +has not been ported to them. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q6] ``Do I need some more things to compile GNU C Library?'' -[A6] {UD} Yes, there are some more :-). +1.5. Do I need some more things to compile GNU C Library? -* GNU gettext; the GNU libc is internationalized and partly localized. - For bringing the messages for the different languages in the needed - form the tools from the GNU gettext package are necessary. See - ftp://prep.ai.mit.edu/pub/gnu or better any mirror site. +{UD} Yes, there are some more :-). -* lots of diskspace (for i?86-linux this means, e.g., ~170MB; for ppc-linux - even ~200MB). +* GNU gettext. This package contains the tools needed to construct + `message catalog' files containing translated versions of system + messages. See ftp://prep.ai.mit.edu/pub/gnu or better any mirror + site. (We distribute compiled message catalogs, but they may not be + updated in patches.) - You should avoid compiling on a NFS mounted device. This is very - slow. +* Some files depend on special tools. E.g., files ending in .gperf + need a `gperf' program. The GNU version (part of libg++) is known + to work while some vendor versions do not. -* plenty of time (approx 1h for i?86-linux on i586@133 or 2.5h on - i486@66 or 4.5h on i486@33), both for shared and static only). - Multiply this by 1.5 or 2.0 if you build profiling and/or the highly - optimized version as well. For Hurd systems times are much higher. + You should not need these tools unless you change the source files. - For Atari Falcon (Motorola 68030 @ 16 Mhz, 14 Mb memory) James Troup - <J.J.Troup@comp.brad.ac.uk> reports for a full build (shared, static, - and profiled) a compile time of 45h34m. +* When compiling for Linux, the header files of the Linux kernel must + be available to the compiler as <linux/*.h> and <asm/*.h>. - For Atari TT030 (Motorola 68030 @ 32 Mhz, 34 Mb memory) (full build) - a compile time of 22h48m. +* lots of disk space (~170MB for i?86-linux; more for RISC platforms). - If you have some more measurements let me know. +* plenty of time. Compiling just the shared and static libraries for + i?86-linux takes approximately 1h on an i586@133, or 2.5h on + i486@66, or 4.5h on i486@33. Multiply this by 1.5 or 2.0 if you + build profiling and/or the highly optimized version as well. For + Hurd systems times are much higher. -* When compiling for Linux: + You should avoid compiling in a NFS mounted filesystem. This is + very slow. - + the header files of the Linux kernel must be available in the - search path of the CPP as <linux/*.h> and <asm/*.h>. + James Troup <J.J.Troup@comp.brad.ac.uk> reports a compile time of + 45h34m for a full build (shared, static, and profiled) on + Atari Falcon (Motorola 68030 @ 16 Mhz, 14 Mb memory) and 22h48m + on Atari TT030 (Motorola 68030 @ 32 Mhz, 34 Mb memory) -* Some files depend on special tools. E.g., files ending in .gperf - need a `gperf' program. The GNU version (part of libg++) is known - to work while some vendor versions do not. + If you have some more measurements let me know. - You should not need these tools unless you change the source files. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q7] ``When I run `nm -u libc.so' on the produced library I still - find unresolved symbols? Can this be ok?'' +1.6. When I run `nm -u libc.so' on the produced library I still + find unresolved symbols. Can this be ok? -[A7] {UD} Yes, this is ok. There can be several kinds of unresolved +{UD} Yes, this is ok. There can be several kinds of unresolved symbols: -* magic symbols automatically generated by the linker. Names are - often like __start_* and __stop_* +* magic symbols automatically generated by the linker. These have names + like __start_* and _ |
