1997-12-05 08:40:29 +08:00
|
|
|
|
Frequently Asked Questions about the GNU C Library
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
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.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
The GNU C library is very complex. The installation process has not been
|
1998-06-29 20:44:22 +08:00
|
|
|
|
completely automated; there are too many variables. You can do substantial
|
1998-04-21 17:43:11 +08:00
|
|
|
|
damage to your system by installing the library incorrectly. Make sure you
|
|
|
|
|
understand what you are undertaking before you begin.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
If you have any questions you think should be answered in this document,
|
|
|
|
|
please let me know.
|
|
|
|
|
|
2002-01-05 14:15:54 +08:00
|
|
|
|
--drepper@redhat.com
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
? Compiling glibc
|
|
|
|
|
|
|
|
|
|
?? What systems does the GNU C Library run on?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{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.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
The systems glibc is known to work on as of this release, and most probably
|
|
|
|
|
in the future, are:
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
*-*-gnu GNU Hurd
|
1997-12-15 06:24:57 +08:00
|
|
|
|
i[3456]86-*-linux-gnu Linux-2.x on Intel
|
|
|
|
|
m68k-*-linux-gnu Linux-2.x on Motorola 680x0
|
2000-08-09 15:12:30 +08:00
|
|
|
|
alpha*-*-linux-gnu Linux-2.x on DEC Alpha
|
1997-12-05 08:40:29 +08:00
|
|
|
|
powerpc-*-linux-gnu Linux and MkLinux on PowerPC systems
|
2002-09-05 18:28:51 +08:00
|
|
|
|
powerpc64-*-linux-gnu Linux-2.4+ on 64-bit PowerPC systems
|
1997-12-15 06:24:57 +08:00
|
|
|
|
sparc-*-linux-gnu Linux-2.x on SPARC
|
|
|
|
|
sparc64-*-linux-gnu Linux-2.x on UltraSPARC
|
1998-03-27 02:01:01 +08:00
|
|
|
|
arm-*-none ARM standalone systems
|
1998-11-26 20:02:23 +08:00
|
|
|
|
arm-*-linux Linux-2.x on ARM
|
1998-03-27 02:01:01 +08:00
|
|
|
|
arm-*-linuxaout Linux-2.x on ARM using a.out binaries
|
2000-08-09 15:12:30 +08:00
|
|
|
|
mips*-*-linux-gnu Linux-2.x on MIPS
|
|
|
|
|
ia64-*-linux-gnu Linux-2.x on ia64
|
2000-10-21 19:04:04 +08:00
|
|
|
|
s390-*-linux-gnu Linux-2.x on IBM S/390
|
2001-03-27 13:32:26 +08:00
|
|
|
|
s390x-*-linux-gnu Linux-2.x on IBM S/390 64-bit
|
2001-04-09 12:55:59 +08:00
|
|
|
|
cris-*-linux-gnu Linux-2.4+ on CRIS
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
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.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
If you have a system not listed above (or in the `README' file) and you are
|
2004-08-10 11:00:24 +08:00
|
|
|
|
really interested in porting it, see the GNU C Library web pages to learn
|
|
|
|
|
how to start contributing:
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
2004-08-10 11:00:24 +08:00
|
|
|
|
http://www.gnu.org/software/libc/resources.html
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1999-03-08 22:23:38 +08:00
|
|
|
|
??binsize What compiler do I need to build GNU libc?
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{UD} You must use GNU CC to compile GNU libc. A lot of extensions of GNU CC
|
|
|
|
|
are used to increase portability and speed.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
GNU CC is found, like all other GNU packages, on
|
1998-04-21 17:43:11 +08:00
|
|
|
|
|
1998-03-05 01:14:36 +08:00
|
|
|
|
ftp://ftp.gnu.org/pub/gnu
|
1998-04-21 17:43:11 +08:00
|
|
|
|
|
1998-03-05 01:14:36 +08:00
|
|
|
|
and the many mirror sites. ftp.gnu.org is always overloaded, so try to find
|
1997-12-05 08:40:29 +08:00
|
|
|
|
a local mirror first.
|
|
|
|
|
|
1998-07-13 18:40:47 +08:00
|
|
|
|
You should always try to use the latest official release. Older versions
|
1998-04-21 17:43:11 +08:00
|
|
|
|
may not have all the features GNU libc requires. The current releases of
|
2002-10-03 08:24:35 +08:00
|
|
|
|
gcc (3.2 or newer) should work with the GNU C library (for MIPS see ?mips).
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1999-11-18 02:52:42 +08:00
|
|
|
|
Please note that gcc 2.95 and 2.95.x cannot compile glibc on Alpha due to
|
1999-08-28 08:22:21 +08:00
|
|
|
|
problems in the complex float support.
|
|
|
|
|
|
1997-12-05 08:40:29 +08:00
|
|
|
|
?? When I try to compile glibc I get only error messages.
|
|
|
|
|
What's wrong?
|
|
|
|
|
|
1999-02-02 17:26:53 +08:00
|
|
|
|
{UD} You definitely need GNU make to build GNU libc. No other make
|
1998-04-21 17:43:11 +08:00
|
|
|
|
program has the needed functionality.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
2000-08-09 15:12:30 +08:00
|
|
|
|
We recommend version GNU make version 3.79 or newer. Older versions have
|
|
|
|
|
bugs and/or are missing features.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-11-21 01:27:47 +08:00
|
|
|
|
?? Do I need a special linker or assembler?
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-11-21 01:27:47 +08:00
|
|
|
|
{ZW} If you want a shared library, you need a linker and assembler that
|
|
|
|
|
understand all the features of ELF, including weak and versioned symbols.
|
|
|
|
|
The static library can be compiled with less featureful tools, but lacks key
|
|
|
|
|
features such as NSS.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
2002-12-10 12:05:39 +08:00
|
|
|
|
For Linux or Hurd, you want binutils 2.13 or higher. These are the only
|
2001-01-23 17:29:53 +08:00
|
|
|
|
versions we've tested and found reliable. Other versions may work but we
|
|
|
|
|
don't recommend them, especially not when C++ is involved.
|
1998-09-09 19:46:18 +08:00
|
|
|
|
|
1998-11-21 01:27:47 +08:00
|
|
|
|
Other operating systems may come with system tools that have all the
|
|
|
|
|
necessary features, but this is moot because glibc hasn't been ported to
|
|
|
|
|
them.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
Update.
1998-04-20 18:00 Ulrich Drepper <drepper@cygnus.com>
* libc.map: Add __dgettext to GLIBC_2.0 and __libc_longjmp, and
__libc_siglongjmp to GLIBC_2.1.
* elf/dl-minimal.c (__assert_perror_fail): Don't use strerror, use
__strerror_r.
* iconv/Makefile: Don't run tests now.
* iconv/iconv_prog.c (process_block): If loop is repeated, call iconv
with correct output buffer.
Major rewrite of the low-level gconv functionality.
* iconv/gconv.c: Rewritten.
* iconv/gconv.h: Likewise.
* iconv/gconv_builtin.c: Likewise.
* iconv/gconv_builtin.h: Likewise.
* iconv/gconv_conf.c: Likewise.
* iconv/gconv_int.h: Likewise.
* iconv/gconv_open.c: Likewise.
* iconv/gconv_simple.c: Likewise.
* iconv/iconv.c: Likewise.
* iconvdata/8bit-gap.c: Likewise.
* iconvdata/8bit-generic.c: Likewise.
* iconvdata/Makefile: Likewise.
* iconvdata/big5.c: Likewise.
* iconvdata/cns11643.c: Likewise.
* iconvdata/cns11643.h: Likewise.
* iconvdata/cns11643l1.c: Likewise.
* iconvdata/cns11643l1.h: Likewise.
* iconvdata/ebcdic-at-de-a.c: Likewise.
* iconvdata/ebcdic-at-de.c: Likewise.
* iconvdata/ebcdic-ca-fr.c: Likewise.
* iconvdata/euccn.c: Likewise.
* iconvdata/eucjp.c: Likewise.
* iconvdata/euckr.c: Likewise.
* iconvdata/euctw.c: Likewise.
* iconvdata/gb2312.c: Likewise.
* iconvdata/gb2312.h: Likewise.
* iconvdata/hp-roman8.c: Likewise.
* iconvdata/iso646.c: Likewise.
* iconvdata/iso6937.c: Likewise.
* iconvdata/iso8859-1.c: Likewise.
* iconvdata/iso8859-10.c: Likewise.
* iconvdata/iso8859-2.c: Likewise.
* iconvdata/iso8859-3.c: Likewise.
* iconvdata/iso8859-4.c: Likewise.
* iconvdata/iso8859-5.c: Likewise.
* iconvdata/iso8859-6.c: Likewise.
* iconvdata/iso8859-7.c: Likewise.
* iconvdata/iso8859-8.c: Likewise.
* iconvdata/iso8859-9.c: Likewise.
* iconvdata/jis0201.c: Likewise.
* iconvdata/jis0201.h: Likewise.
* iconvdata/jis0208.c: Likewise.
* iconvdata/jis0208.h: Likewise.
* iconvdata/jis0212.c: Likewise.
* iconvdata/jis0212.h: Likewise.
* iconvdata/johab.c: Likewise.
* iconvdata/koi-8.c: Likewise.
* iconvdata/koi8-r.c: Likewise.
* iconvdata/ksc5601.c: Likewise.
* iconvdata/ksc5601.h: Likewise.
* iconvdata/latin-greek-1.c: Likewise.
* iconvdata/latin-greek.c: Likewise.
* iconvdata/run-iconv-test.sh: Likewise.
* iconvdata/sjis.c: Likewise.
* iconvdata/t61.c: Likewise.
* iconvdata/uhc.c: Likewise.
* wcsmbs/btowc.c: Likewise.
* wcsmbs/mbrtowc.c: Likewise.
* wcsmbs/mbsnrtowcs.c: Likewise.
* wcsmbs/mbsrtowcs.c: Likewise.
* wcsmbs/wcrtomb.c: Likewise.
* wcsmbs/wcsmbsload.c: Likewise.
* wcsmbs/wcsnrtombs.c: Likewise.
* wcsmbs/wcsrtombs.c: Likewise.
* wcsmbs/wctob.c: Likewise.
* iconv/loop.c: New file.
* iconv/skeleton.c: New file.
* stdlib/mblen.c: Handle empty input string correctly.
* stdlib/mbtowc.c: Likewise.
* posix/getopt.c: Various cleanups.
* sysdeps/arm/bits/setjmp.h: Add copyright text.
* sysdeps/i386/bits/setjmp.h: Likewise.
* sysdeps/m68k/bits/setjmp.h: Likewise.
* sysdeps/powerpc/bits/setjmp.h: Likewise.
* sysdeps/sparc/sparc32/bits/setjmp.h: Likewise.
* sysdeps/generic/longjmp.c: Rename function to __libc_siglongjmp
and make longjmp weak alias.
1998-04-18 20:29 Philip Blundell <Philip.Blundell@pobox.com>
* iconv/Makefile (routines): Only include gconv_dl if building for
an ELF system - dynamic linking is not available on a.out.
(CFLAGS-gconv_conf.c): Define STATIC_GCONV if omitting gconv_dl
due to above check.
* iconv/gconv_db.c: If STATIC_GCONV defined, don't try to call
routines from gconv_dl.
1998-04-17 Gordon Matzigkeit <gord@profitpress.com>
* csu/init.c (_IO_stdin_used): Protect with USE_IN_LIBIO so that
we can compile without libio.
1998-04-20 16:28 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/mach/hurd/Subdirs: Remove login.
1998-04-11 Gordon Matzigkeit <gord@profitpress.com>
* db2/compat.h: Include <errno.h>, to make sure we get the
definition of EFTYPE before we define it ourselves.
1998-04-10 Gordon Matzigkeit <gord@profitpress.com>
* sysdeps/generic/bits/socket.h: Protect against multiple inclusion.
* sysdeps/mach/hurd/bits/ioctls.h: Likewise.
Fix typo to allow inclusion from sys/ioctl.h again.
1998-04-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* iconvdata/*.[ch]: Clean up namespace. Optimize character lookup.
1998-04-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libc.map: Export __strerror_r. Remove _strerror_internal.
1998-04-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/generic/strcasestr.c: Undefine strcasestr, not strstr.
Also undefine __strcasestr.
1998-04-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* posix/regex.c: Rename __re_max_failures back to re_max_failures,
aliases do not work with global variables due to copy relocations.
1998-04-20 15:12 Ulrich Drepper <drepper@cygnus.com>
* manual/creature.texi: Fix type. Patch by Andreas Schwab.
1998-04-20 13:47 Ulrich Drepper <drepper@cygnus.com>
* signal/sighold.c: Include stddef.h for NULL definition.
* signal/sigrelse.c: Likewise.
* sysdeps/posix/sigignore.c: Likewise.
* sysdeps/posix/sigset.c: Likewise.
* sysdeps/posix/waitid.c: Likewise.
* sysdeps/unix/sysv/linux/rt_sigsuspend.c: Likewise.
* sysdeps/unix/sysv/linux/rt_sigtimedwait.c: Likewise.
* sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.
* wcsmbs/mbsrtowcs.c: Include stdlib.h for MB_CUR_MAX.
Patch by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.
1998-04-13 Mark Kettenis <kettenis@phys.uva.nl>
* login/Makefile (headers): Remove utmpx.h and bits/utmpx.h.
* login/getutent.c (getutxent): Remove alias.
* login/getutent_r.c (setutxent, pututxline, endutxent):
Remove aliases.
* login/getutid.c (getutxid): Remove alias.
* login/getutline.c (getutxline): Remove alias.
* login/utmp.h: Add prototypes for __updwtmp, __getutent,
__getutid, __getutline and __pututline.
* login/utmpx.h: Moved to ...
* sysdeps/gnu/utmpx.h: ... here. [__USE_GNU]: Define UTMPX_FILE,
UTMPX_FILENAME, WTMPX_FILE and WTMPX_FILENAME, declare utmpxname
and updwtmpx.
* login/updwtmp.c: Moved to ...
* sysdeps/generic/updwtmp.c: ... here. (updwtmp): Generalized by
allowing file name transformation.
* sysdeps/gnu/updwtmp.c: New file. Use generic implementation with
additional file name transformation.
* sysdeps/unix/sysv/linux/updwtmp.c: Likewise.
* login/utmp_file.c: Moved to ...
* sysdeps/generic/utmp_file.c: ... here. (setutent_file):
Generalized by allowing file name transformation. Do not
print error message. Library functions should not print them.
Reported by Jim Meyering.
* sysdeps/gnu/utmp_file.c: New file. Use generic implementation
with additional file name transformation.
* sysdeps/unix/sysv/linux/utmp_file.c: Likewise.
* sysdeps/gnu/Makefile [$(subdir)=login] (sysdep_routines): Add
setutxent, getutxent, endutxent, getutxid, getutxid, getutxline,
pututxline, utmpxname and updwtmpx. (sysdep_headers): Add utmpx.h
and bits/utmpx.h.
* sysdeps/gnu/bits/utmpx.h [__USE_GNU] Include paths.h.
(_PATH_UTMPX): Define to _PATH_UTMP. (_PATH_WTMPX): Define to
_PATH_WTMPX. (RUN_LVL): Define only if __USE_GNU. (ACCOUNTING):
Define if __USE_GNU.
* sysdeps/gnu/setutxent.c: New file.
* sysdeps/gnu/getutxent.c: New file.
* sysdeps/gnu/endutxent.c: New file.
* sysdeps/gnu/getutxid.c: New file.
* sysdeps/gnu/getutxline.c: New file.
* sysdeps/gnu/pututxline.c: New file.
* sysdeps/gnu/utmpxname.c: New file.
* sysdeps/gnu/updwtmpx.c: New file.
* sysdeps/unix/sysv/linux/paths.h (_PATH_UTMP_DB): Remove.
* sysdeps/generic/bits/utmpx.h: Remove.
1998-04-20 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp-test.c (main): Initialize ifs element of ts for
~root test.
1998-04-17 07:53 H.J. Lu <hjl@gnu.org>
* sysdeps/unix/sysv/linux/i386/s_pread64.S: Fix a typo.
1998-04-17 11:32 Ulrich Drepper <drepper@cygnus.com>
* libio/oldfileops.c (_IO_old_file_seekoff): Define temporary st
variable using _G_stat64.
* libio/fileops.c: Remove macro definition of fstat, it is in the
global header.
Reported by Thorsten Kukuk <kukuk@weber.uni-paderborn.de>.
1998-04-17 Philip Blundell <pb@nexus.co.uk>
* sysdeps/arm/strlen.S: New file, based on code by Matthew Wilcox
<willy@odie.barnet.ac.uk>.
1998-04-16 Philip Blundell <Philip.Blundell@pobox.com>
* inet/netinet/in.h (IN6_IS_ADDR_MC_NODELOCAL): New macro,
required by IPv6 Basic API.
(IN6_IS_ADDR_MC_LINKLOCAL): Likewise.
(IN6_IS_ADDR_MC_SITELOCAL): Likewise.
(IN6_IS_ADDR_MC_ORGLOCAL): Likewise.
(IN6_IS_ADDR_MC_GLOBAL): Likewise.
1998-04-21 02:41:05 +08:00
|
|
|
|
??powerpc Which compiler should I use for powerpc?
|
1998-01-30 20:53:20 +08:00
|
|
|
|
|
2002-10-03 08:24:35 +08:00
|
|
|
|
{} Removed. Does not apply anymore.
|
1998-01-30 20:53:20 +08:00
|
|
|
|
|
1998-11-26 20:02:23 +08:00
|
|
|
|
??arm Which tools should I use for ARM?
|
|
|
|
|
|
2002-10-03 08:24:35 +08:00
|
|
|
|
{} Removed. Does not apply anymore.
|
1998-11-26 20:02:23 +08:00
|
|
|
|
|
1998-11-21 01:27:47 +08:00
|
|
|
|
?? Do I need some more things to compile the GNU C Library?
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
{UD} Yes, there are some more :-).
|
|
|
|
|
|
|
|
|
|
* GNU gettext. This package contains the tools needed to construct
|
|
|
|
|
`message catalog' files containing translated versions of system
|
1998-03-05 01:14:36 +08:00
|
|
|
|
messages. See ftp://ftp.gnu.org/pub/gnu or better any mirror
|
1997-12-05 08:40:29 +08:00
|
|
|
|
site. (We distribute compiled message catalogs, but they may not be
|
2001-04-20 04:15:22 +08:00
|
|
|
|
updated in patches.)
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-11-21 01:27:47 +08:00
|
|
|
|
* Some files are built with special tools. E.g., files ending in .gperf
|
|
|
|
|
need a `gperf' program. The GNU version (now available in a separate
|
|
|
|
|
package, formerly only as part of libg++) is known to work while some
|
|
|
|
|
vendor versions do not.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
You should not need these tools unless you change the source files.
|
|
|
|
|
|
1998-11-21 01:27:47 +08:00
|
|
|
|
* Perl 5 is needed if you wish to test an installation of GNU libc
|
|
|
|
|
as the primary C library.
|
1997-12-15 06:24:57 +08:00
|
|
|
|
|
1997-12-05 08:40:29 +08:00
|
|
|
|
* When compiling for Linux, the header files of the Linux kernel must
|
|
|
|
|
be available to the compiler as <linux/*.h> and <asm/*.h>.
|
|
|
|
|
|
1999-08-16 10:53:37 +08:00
|
|
|
|
* lots of disk space (~400MB for i?86-linux; more for RISC platforms).
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
* plenty of time. Compiling just the shared and static libraries for
|
2000-11-09 05:20:06 +08:00
|
|
|
|
35mins on a 2xPIII@550Mhz w/ 512MB RAM. On a 2xUltraSPARC-II@360Mhz
|
|
|
|
|
w/ 1GB RAM it takes about 14 minutes. 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.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
You should avoid compiling in a NFS mounted filesystem. This is
|
|
|
|
|
very slow.
|
|
|
|
|
|
2000-11-09 05:20:06 +08:00
|
|
|
|
James Troup <J.J.Troup@comp.brad.ac.uk> reports a compile time for
|
|
|
|
|
an earlier (and smaller!) version of glibc of 45h34m for a full build
|
|
|
|
|
(shared, static, and profiled) on Atari Falcon (Motorola 68030 @ 16 Mhz,
|
|
|
|
|
14 Mb memory) and Jan Barte <yann@plato.uni-paderborn.de> reports
|
|
|
|
|
22h48m on Atari TT030 (Motorola 68030 @ 32 Mhz, 34 Mb memory)
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1999-08-01 06:27:07 +08:00
|
|
|
|
A full build of the PowerPC library took 1h on a PowerPC 750@400Mhz w/
|
1999-11-18 02:52:42 +08:00
|
|
|
|
64MB of RAM, and about 9h on a 601@60Mhz w/ 72Mb.
|
1999-08-01 06:27:07 +08:00
|
|
|
|
|
1998-02-26 19:20:59 +08:00
|
|
|
|
?? What version of the Linux kernel headers should be used?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{AJ,UD} The headers from the most recent Linux kernel should be used. The
|
|
|
|
|
headers used while compiling the GNU C library and the kernel binary used
|
|
|
|
|
when using the library do not need to match. The GNU C library runs without
|
|
|
|
|
problems on kernels that are older than the kernel headers used. The other
|
|
|
|
|
way round (compiling the GNU C library with old kernel headers and running
|
|
|
|
|
on a recent kernel) does not necessarily work. For example you can't use
|
1999-02-02 17:26:53 +08:00
|
|
|
|
new kernel features if you used old kernel headers to compile the GNU C
|
1998-04-21 17:43:11 +08:00
|
|
|
|
library.
|
|
|
|
|
|
1998-07-13 18:40:47 +08:00
|
|
|
|
{ZW} Even if you are using a 2.0 kernel on your machine, we recommend you
|
1999-01-24 18:17:23 +08:00
|
|
|
|
compile GNU libc with 2.2 kernel headers. That way you won't have to
|
|
|
|
|
recompile libc if you ever upgrade to kernel 2.2. To tell libc which
|
1998-07-13 18:40:47 +08:00
|
|
|
|
headers to use, give configure the --with-headers switch
|
1999-01-24 18:17:23 +08:00
|
|
|
|
(e.g. --with-headers=/usr/src/linux-2.2.0/include).
|
1998-07-13 18:40:47 +08:00
|
|
|
|
|
1999-01-24 18:17:23 +08:00
|
|
|
|
Note that you must configure the 2.2 kernel if you do this, otherwise libc
|
1998-12-02 00:11:17 +08:00
|
|
|
|
will be unable to find <linux/version.h>. Just change the current directory
|
1999-01-24 18:17:23 +08:00
|
|
|
|
to the root of the 2.2 tree and do `make include/linux/version.h'.
|
1998-07-13 18:40:47 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
?? The compiler hangs while building iconvdata modules. What's
|
|
|
|
|
wrong?
|
|
|
|
|
|
2000-11-19 01:47:35 +08:00
|
|
|
|
{} Removed. Does not apply anymore.
|
1998-02-26 19:20:59 +08:00
|
|
|
|
|
1997-12-05 08:40:29 +08:00
|
|
|
|
?? When I run `nm -u libc.so' on the produced library I still
|
|
|
|
|
find unresolved symbols. Can this be ok?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{UD} Yes, this is ok. There can be several kinds of unresolved symbols:
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
* magic symbols automatically generated by the linker. These have names
|
|
|
|
|
like __start_* and __stop_*
|
|
|
|
|
|
|
|
|
|
* symbols starting with _dl_* come from the dynamic linker
|
|
|
|
|
|
|
|
|
|
* weak symbols, which need not be resolved at all (fabs for example)
|
|
|
|
|
|
|
|
|
|
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'?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{UD} To avoid complications with export rules or external source code some
|
2000-07-07 08:52:01 +08:00
|
|
|
|
optional parts of the libc are distributed as separate packages, e.g., the
|
|
|
|
|
linuxthreads package.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
To use these packages as part of GNU libc, just unpack the tarfiles in the
|
|
|
|
|
libc source directory and tell the configuration script about them using the
|
|
|
|
|
--enable-add-ons option. If you give just --enable-add-ons configure tries
|
|
|
|
|
to find all the add-on packages in your source tree. This may not work. If
|
|
|
|
|
it doesn't, or if you want to select only a subset of the add-ons, give a
|
|
|
|
|
comma-separated list of the add-ons to enable:
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
2000-07-07 08:52:01 +08:00
|
|
|
|
configure --enable-add-ons=linuxthreads
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
for example.
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
Add-ons can add features (including entirely new shared libraries), override
|
|
|
|
|
files, provide support for additional architectures, and just about anything
|
|
|
|
|
else. The existing makefiles do most of the work; only some few stub rules
|
|
|
|
|
must be written to get everything running.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1999-09-06 03:37:14 +08:00
|
|
|
|
Most add-ons are tightly coupled to a specific GNU libc version. Please
|
2000-07-07 08:52:01 +08:00
|
|
|
|
check that the add-ons work with the GNU libc. For example the linuxthreads
|
|
|
|
|
add-on has the same numbering scheme as the libc and will in general only
|
|
|
|
|
work with the corresponding libc.
|
|
|
|
|
|
|
|
|
|
{AJ} With glibc 2.2 the crypt add-on and with glibc 2.1 the localedata
|
|
|
|
|
add-on have been integrated into the normal glibc distribution, crypt and
|
|
|
|
|
localedata are therefore not anymore add-ons.
|
1999-09-06 03:37:14 +08:00
|
|
|
|
|
1997-12-05 08:40:29 +08:00
|
|
|
|
?? My XXX kernel emulates a floating-point coprocessor for me.
|
|
|
|
|
Should I enable --with-fp?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{ZW} An emulated FPU is just as good as a real one, as far as the C library
|
|
|
|
|
is concerned. You only need to say --without-fp if your machine has no way
|
|
|
|
|
to execute floating-point instructions.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
People who are interested in squeezing the last drop of performance
|
|
|
|
|
out of their machine may wish to avoid the trap overhead, but this is
|
|
|
|
|
far more trouble than it's worth: you then have to compile
|
|
|
|
|
*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
|
|
|
|
|
in glibc are duplicated in libgcc.
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{EY} This is *exactly* the same problem that I was having. The problem was
|
|
|
|
|
due to the fact that configure didn't correctly detect that the linker flag
|
|
|
|
|
--no-whole-archive was supported in my linker. In my case it was because I
|
|
|
|
|
had run ./configure with bogus CFLAGS, and the test failed.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
One thing that is particularly annoying about this problem is that once this
|
|
|
|
|
is misdetected, running configure again won't fix it unless you first delete
|
|
|
|
|
config.cache.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{UD} Starting with glibc-2.0.3 there should be a better test to avoid some
|
|
|
|
|
problems of this kind. The setting of CFLAGS is checked at the very
|
|
|
|
|
beginning and if it is not usable `configure' will bark.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-01-22 01:04:36 +08:00
|
|
|
|
?? Why do I get messages about missing thread functions when I use
|
Update.
1998-02-10 23:57 Ulrich Drepper <drepper@happy.cygnus.com>
* misc/tst-efgcvt.c: Add more tests.
* misc/efgcvt_r.c: Correct result for above new tests.
1998-02-06 17:22 H.J. Lu <hjl@gnu.org>
* misc/efgcvt_r.c (fcvt_r, ecvt_r): Correctly handle
NDIGIT <= 0.
1998-02-10 16:48 Philip Blundell <pb@nexus.co.uk>
* Makerules (install-no-libc.a-nosubdir): Don't install-bin (etc)
if the programs weren't built.
1998-02-09 10:12 Philip Blundell <pb@nexus.co.uk>
* sysdeps/libm-ieee754/s_exp2.c (__ieee754_exp2): If we don't have
FE_TONEAREST, soldier on regardless and do the best we can.
* sysdeps/libm-ieee754/s_exp2f.c (__ieee754_exp2f): likewise.
1998-02-5 17:20 Philip Blundell <pb@nexus.co.uk>
* sysdeps/standalone/filedesc.h: Define __need_FOPEN_MAX, not
_STDIO_H, before including <bits/stdio_lim.h>.
* sysdeps/standalone/arm/bits/errno.h (EOVERFLOW): Added.
* io/fts.c (fts_build): Don't try to use d_type if it doesn't
exist.
* sysdeps/arm/sys/ucontext.h: New file.
1998-02-04 10:11 Philip Blundell <pb@nexus.co.uk>
* manual/stdio.texi (Formatted Output Functions): Explicitly say
that the return value from snprintf() does not count the
terminating NUL as a character.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* manual/users.texi: Rewrite to describe correct POSIX behaviour,
add description for sete[ug]id and general cleanup.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (parent-clean): Don't remove makefile fragments here.
(postclean): New variable.
(clean): Remove makefile fragments here.
(realclean distclean): Likewise. Pass sysdep-subdirs to sub-make.
(generated): Add isomac and isomanc.out.
* Makeconfig ($(common-objpfx)soversions.mk): Don't generate if
avoid-generated is set.
(postclean-generated): Add soversion.mk.
($(common-objpfx)version.mk): Don't include if avoid-generated is
set.
* Makerules: Still need to include $(+sysdir_pfx)sysd-Makefile if
avoid-generated is set.
(common-generated): Add libc.so and libc.so$(libc.so-version).
(generated): Add versioned libraries.
(common-mostlyclean): Also remove %.so and %_pic.a.
* csu/Makefile (generated): Add abi-tag.h.
* db2/Makefile (extra-objs): Add getlong.o.
* elf/Makefile (generated): Add ld.so, ldd and
$(rtld-installed-name).
(others): Add ldconfig here instead of ldconfig.o to extra-objs.
* malloc/Makefile (generated): Add mtrace.
* po/Makefile: Don't include version.mk, not needed any more.
* sunrpc/Makefile (generated): Add rpc-proto.d and rpcgen.
* sysdeps/unix/Makefile: Fix local_lim.h -> bits/local_lim.h,
syscall.h -> sys/syscall.h.
(common-generated): Add s-proto.d.
(postclean-generated): Add sysd-syscalls.
* localedata/Makefile (test-output): Add all output files.
(generated): Add test-input and test-output.
(generated-dirs): Add all the dirs.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (test-output, generated, generated-dirs): New
variables.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* resolv/nss_dns/dns-host.c: Various code cleanups.
1998-02-09 08:10 H.J. Lu <hjl@gnu.org>
* resolv/gethnamaddr.c (getanswer): Fix the PTR/CNAME bug.
From Philip Blundell <pb@nexus.co.uk>.
* resolv/nss_dns/dns-host.c (getanswer_r): Ditto.
1998-02-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* libc.map: Add .rem, .div, .mul, .udiv, .umul, .urem for Sparc.
Suggested by debian/sparc porters.
1998-02-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* misc/tst-efgcvt.c: Totally rewritten, added a lot of new tests
for ecvt and fcvt.
1998-02-10 16:32 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Use __xstat and
__fxstat instead of stat and fstat. Use namespace clean __stpcpy.
* signal/signal.h: Always define sigset_t if __need_sigset_t is
defined even if __USE_POSIX is not defined.
1998-02-02 20:51 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Correct last patch
to support obsolete tty major numbers correctly.
1998-02-02 08:47 H.J. Lu <hjl@gnu.org>
* login/Makefile ($(inst_libexecdir)/pt_chown): Make the target
directory first and ignore install error.
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Substract
128 from ptyno and fix a typo for the BSD style pty.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Depend on all
syscalls.list's.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
getresuid and getresgid.
* sysdeps/unix/sysv/linux/getresuid.c: New file.
* sysdeps/unix/sysv/linux/getresgid.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Remove getres[ug]id, add
s_getres[ug]id.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add getres[ug]id.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
1998-02-02 08:11 H.J. Lu <hjl@gnu.org>
* nscd/grpcache.c: Include <stdlib.h>.
1998-02-01 16:01 H.J. Lu <hjl@gnu.org>
* stdlib/atoll.c: Fix comments.
* sysdeps/posix/ttyname.c: Ignore stdin/stdout/stderr.
* sysdeps/posix/ttyname_r.c: Ditto.
1998-02-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/sys/stat.h: Define S_IFLNK and S_IFSOCK if __USE_BSD or
__USE_MISC, independent of __USE_UNIX98.
1998-02-10 19:18 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
1998-02-04 11:58 Richard Henderson <rth@twiddle.rth.home>
* Makeconfig (CFLAGS-.os): Kill -fno-common.
* Makerules (libc.so): Prelink libc_pic.a, allocating commons.
* libc.map (GLIBC_2.1): Add Linux/Alpha tv64 symbols.
* elf/rtld.map: New file. Needed to define the GLIBC_2.*
version symbols.
* include/libc-symbols.h (symbol_version, default_symbol_version):
Provide asm versions and correct !DO_VERSIONING versions.
* sysdeps/unix/make-syscalls.sh: Recognize version symbols in
the weak symbol list.
* sysdeps/unix/sysv/linux/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
* sysdeps/unix/sysv/linux/sigpending.c: Likewise.
* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
1998-02-04 16:41 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sunrpc/Makefile: Correct dependencies of rpcgen.
1998-02-10 03:00 Ulrich Drepper <drepper@happy.cygnus.com>
* nscd/Makefile: Fix test for available linuxthreads add-on.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-02-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/syscalls.list: Fix typo in lchown.
1998-02-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/gnu/Makefile: Respect with-cvs variable.
* manual/errno.texi (Error Messages): Correct description of
strerror_r. Pointed out by jonas@bagge.se.
1998-01-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/socket.texi (Host Address Functions): Clarify description
of inet_network.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/grantpt.c (argv): Move const to toplevel.
(grantpt): Delete superfluous cast.
1998-02-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile ($(inst_slibdir)/libc-$(version).so): Depend on
elf/ldso_install instead of elf/subdir_install.
(elf/ldso_install): New target.
* elf/Makefile (ldso_install): New target.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/powerpc/socket.S: Really do the change
of 1998-01-06.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h (strcmp): Use __string2_1bptr_p only for
constant expressions.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nss/test-netdb.c: Include <unistd.h> for gethostname and "nss.h"
for __nss_configure_lookup.
(output_hostent): Remove unused variable.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/tst-inlcall.c: Fix format string.
1998-02-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* inet/netinet/in.h: Rename second parameter of bindresvport to
avoid buggy gcc warning. [PR libc/412]
1998-02-11 04:06:30 +08:00
|
|
|
|
librt? I don't even use threads.
|
1998-01-22 01:04:36 +08:00
|
|
|
|
|
Update.
1998-02-10 23:57 Ulrich Drepper <drepper@happy.cygnus.com>
* misc/tst-efgcvt.c: Add more tests.
* misc/efgcvt_r.c: Correct result for above new tests.
1998-02-06 17:22 H.J. Lu <hjl@gnu.org>
* misc/efgcvt_r.c (fcvt_r, ecvt_r): Correctly handle
NDIGIT <= 0.
1998-02-10 16:48 Philip Blundell <pb@nexus.co.uk>
* Makerules (install-no-libc.a-nosubdir): Don't install-bin (etc)
if the programs weren't built.
1998-02-09 10:12 Philip Blundell <pb@nexus.co.uk>
* sysdeps/libm-ieee754/s_exp2.c (__ieee754_exp2): If we don't have
FE_TONEAREST, soldier on regardless and do the best we can.
* sysdeps/libm-ieee754/s_exp2f.c (__ieee754_exp2f): likewise.
1998-02-5 17:20 Philip Blundell <pb@nexus.co.uk>
* sysdeps/standalone/filedesc.h: Define __need_FOPEN_MAX, not
_STDIO_H, before including <bits/stdio_lim.h>.
* sysdeps/standalone/arm/bits/errno.h (EOVERFLOW): Added.
* io/fts.c (fts_build): Don't try to use d_type if it doesn't
exist.
* sysdeps/arm/sys/ucontext.h: New file.
1998-02-04 10:11 Philip Blundell <pb@nexus.co.uk>
* manual/stdio.texi (Formatted Output Functions): Explicitly say
that the return value from snprintf() does not count the
terminating NUL as a character.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* manual/users.texi: Rewrite to describe correct POSIX behaviour,
add description for sete[ug]id and general cleanup.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (parent-clean): Don't remove makefile fragments here.
(postclean): New variable.
(clean): Remove makefile fragments here.
(realclean distclean): Likewise. Pass sysdep-subdirs to sub-make.
(generated): Add isomac and isomanc.out.
* Makeconfig ($(common-objpfx)soversions.mk): Don't generate if
avoid-generated is set.
(postclean-generated): Add soversion.mk.
($(common-objpfx)version.mk): Don't include if avoid-generated is
set.
* Makerules: Still need to include $(+sysdir_pfx)sysd-Makefile if
avoid-generated is set.
(common-generated): Add libc.so and libc.so$(libc.so-version).
(generated): Add versioned libraries.
(common-mostlyclean): Also remove %.so and %_pic.a.
* csu/Makefile (generated): Add abi-tag.h.
* db2/Makefile (extra-objs): Add getlong.o.
* elf/Makefile (generated): Add ld.so, ldd and
$(rtld-installed-name).
(others): Add ldconfig here instead of ldconfig.o to extra-objs.
* malloc/Makefile (generated): Add mtrace.
* po/Makefile: Don't include version.mk, not needed any more.
* sunrpc/Makefile (generated): Add rpc-proto.d and rpcgen.
* sysdeps/unix/Makefile: Fix local_lim.h -> bits/local_lim.h,
syscall.h -> sys/syscall.h.
(common-generated): Add s-proto.d.
(postclean-generated): Add sysd-syscalls.
* localedata/Makefile (test-output): Add all output files.
(generated): Add test-input and test-output.
(generated-dirs): Add all the dirs.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (test-output, generated, generated-dirs): New
variables.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* resolv/nss_dns/dns-host.c: Various code cleanups.
1998-02-09 08:10 H.J. Lu <hjl@gnu.org>
* resolv/gethnamaddr.c (getanswer): Fix the PTR/CNAME bug.
From Philip Blundell <pb@nexus.co.uk>.
* resolv/nss_dns/dns-host.c (getanswer_r): Ditto.
1998-02-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* libc.map: Add .rem, .div, .mul, .udiv, .umul, .urem for Sparc.
Suggested by debian/sparc porters.
1998-02-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* misc/tst-efgcvt.c: Totally rewritten, added a lot of new tests
for ecvt and fcvt.
1998-02-10 16:32 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Use __xstat and
__fxstat instead of stat and fstat. Use namespace clean __stpcpy.
* signal/signal.h: Always define sigset_t if __need_sigset_t is
defined even if __USE_POSIX is not defined.
1998-02-02 20:51 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Correct last patch
to support obsolete tty major numbers correctly.
1998-02-02 08:47 H.J. Lu <hjl@gnu.org>
* login/Makefile ($(inst_libexecdir)/pt_chown): Make the target
directory first and ignore install error.
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Substract
128 from ptyno and fix a typo for the BSD style pty.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Depend on all
syscalls.list's.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
getresuid and getresgid.
* sysdeps/unix/sysv/linux/getresuid.c: New file.
* sysdeps/unix/sysv/linux/getresgid.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Remove getres[ug]id, add
s_getres[ug]id.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add getres[ug]id.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
1998-02-02 08:11 H.J. Lu <hjl@gnu.org>
* nscd/grpcache.c: Include <stdlib.h>.
1998-02-01 16:01 H.J. Lu <hjl@gnu.org>
* stdlib/atoll.c: Fix comments.
* sysdeps/posix/ttyname.c: Ignore stdin/stdout/stderr.
* sysdeps/posix/ttyname_r.c: Ditto.
1998-02-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/sys/stat.h: Define S_IFLNK and S_IFSOCK if __USE_BSD or
__USE_MISC, independent of __USE_UNIX98.
1998-02-10 19:18 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
1998-02-04 11:58 Richard Henderson <rth@twiddle.rth.home>
* Makeconfig (CFLAGS-.os): Kill -fno-common.
* Makerules (libc.so): Prelink libc_pic.a, allocating commons.
* libc.map (GLIBC_2.1): Add Linux/Alpha tv64 symbols.
* elf/rtld.map: New file. Needed to define the GLIBC_2.*
version symbols.
* include/libc-symbols.h (symbol_version, default_symbol_version):
Provide asm versions and correct !DO_VERSIONING versions.
* sysdeps/unix/make-syscalls.sh: Recognize version symbols in
the weak symbol list.
* sysdeps/unix/sysv/linux/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
* sysdeps/unix/sysv/linux/sigpending.c: Likewise.
* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
1998-02-04 16:41 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sunrpc/Makefile: Correct dependencies of rpcgen.
1998-02-10 03:00 Ulrich Drepper <drepper@happy.cygnus.com>
* nscd/Makefile: Fix test for available linuxthreads add-on.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-02-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/syscalls.list: Fix typo in lchown.
1998-02-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/gnu/Makefile: Respect with-cvs variable.
* manual/errno.texi (Error Messages): Correct description of
strerror_r. Pointed out by jonas@bagge.se.
1998-01-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/socket.texi (Host Address Functions): Clarify description
of inet_network.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/grantpt.c (argv): Move const to toplevel.
(grantpt): Delete superfluous cast.
1998-02-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile ($(inst_slibdir)/libc-$(version).so): Depend on
elf/ldso_install instead of elf/subdir_install.
(elf/ldso_install): New target.
* elf/Makefile (ldso_install): New target.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/powerpc/socket.S: Really do the change
of 1998-01-06.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h (strcmp): Use __string2_1bptr_p only for
constant expressions.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nss/test-netdb.c: Include <unistd.h> for gethostname and "nss.h"
for __nss_configure_lookup.
(output_hostent): Remove unused variable.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/tst-inlcall.c: Fix format string.
1998-02-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* inet/netinet/in.h: Rename second parameter of bindresvport to
avoid buggy gcc warning. [PR libc/412]
1998-02-11 04:06:30 +08:00
|
|
|
|
{UD} In this case you probably mixed up your installation. librt uses
|
|
|
|
|
threads internally and has implicit references to the thread library.
|
1998-04-21 17:43:11 +08:00
|
|
|
|
Normally these references are satisfied automatically but if the thread
|
|
|
|
|
library is not in the expected place you must tell the linker where it is.
|
|
|
|
|
When using GNU ld it works like this:
|
1998-01-22 01:04:36 +08:00
|
|
|
|
|
|
|
|
|
gcc -o foo foo.c -Wl,-rpath-link=/some/other/dir -lrt
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
The `/some/other/dir' should contain the thread library. `ld' will use the
|
|
|
|
|
given path to find the implicitly referenced library while not disturbing
|
|
|
|
|
any other link path.
|
1998-01-22 01:04:36 +08:00
|
|
|
|
|
1997-12-05 08:40:29 +08:00
|
|
|
|
?? What's the problem with configure --enable-omitfp?
|
|
|
|
|
|
|
|
|
|
{AJ} When --enable-omitfp is set the libraries are built without frame
|
1998-06-29 20:44:22 +08:00
|
|
|
|
pointers. Some compilers produce buggy code for this model and therefore we
|
1998-04-21 17:43:11 +08:00
|
|
|
|
don't advise using it at the moment.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-06-29 20:44:22 +08:00
|
|
|
|
If you use --enable-omitfp, you're on your own. If you encounter problems
|
1998-04-21 17:43:11 +08:00
|
|
|
|
with a library that was build this way, we advise you to rebuild the library
|
|
|
|
|
without --enable-omitfp. If the problem vanishes consider tracking the
|
|
|
|
|
problem down and report it as compiler failure.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1999-02-02 17:26:53 +08:00
|
|
|
|
Since a library built with --enable-omitfp is undebuggable on most systems,
|
|
|
|
|
debuggable libraries are also built - you can use them by appending "_g" to
|
1998-04-21 17:43:11 +08:00
|
|
|
|
the library names.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
The compilation of these extra libraries and the compiler optimizations slow
|
|
|
|
|
down the build process and need more disk space.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1999-02-02 17:26:53 +08:00
|
|
|
|
?? I get failures during `make check'. What should I do?
|
1998-07-18 05:47:07 +08:00
|
|
|
|
|
1999-02-02 17:26:53 +08:00
|
|
|
|
{AJ} The testsuite should compile and run cleanly on your system; every
|
|
|
|
|
failure should be looked into. Depending on the failures, you probably
|
|
|
|
|
should not install the library at all.
|
1998-07-18 05:47:07 +08:00
|
|
|
|
|
2007-10-28 16:24:07 +08:00
|
|
|
|
You should consider reporting it in bugzilla
|
|
|
|
|
<http://sourceware.org/bugzilla/> providing as much detail as possible.
|
|
|
|
|
If you run a test directly, please remember to set up the environment
|
|
|
|
|
correctly. You want to test the compiled library - and not your installed
|
|
|
|
|
one. The best way is to copy the exact command line which failed and run
|
|
|
|
|
the test from the subdirectory for this test in the sources.
|
1998-07-18 05:47:07 +08:00
|
|
|
|
|
|
|
|
|
There are some failures which are not directly related to the GNU libc:
|
1999-02-02 17:26:53 +08:00
|
|
|
|
- Some compilers produce buggy code. No compiler gets single precision
|
2002-10-03 08:24:35 +08:00
|
|
|
|
complex numbers correct on Alpha. Otherwise, gcc-3.2 should be ok.
|
1998-07-18 05:47:07 +08:00
|
|
|
|
- The kernel might have bugs. For example on Linux/Alpha 2.0.34 the
|
|
|
|
|
floating point handling has quite a number of bugs and therefore most of
|
1999-01-24 18:17:23 +08:00
|
|
|
|
the test cases in the math subdirectory will fail. Linux 2.2 has
|
1999-02-02 17:26:53 +08:00
|
|
|
|
fixes for the floating point support on Alpha. The Linux/SPARC kernel has
|
|
|
|
|
also some bugs in the FPU emulation code (as of Linux 2.2.0).
|
1999-05-22 19:45:33 +08:00
|
|
|
|
- Other tools might have problems. For example bash 2.03 gives a
|
|
|
|
|
segmentation fault running the tst-rpmatch.sh test script.
|
1998-07-18 05:47:07 +08:00
|
|
|
|
|
1998-09-09 19:46:18 +08:00
|
|
|
|
?? What is symbol versioning good for? Do I need it?
|
|
|
|
|
|
|
|
|
|
{AJ} Symbol versioning solves problems that are related to interface
|
|
|
|
|
changes. One version of an interface might have been introduced in a
|
|
|
|
|
previous version of the GNU C library but the interface or the semantics of
|
|
|
|
|
the function has been changed in the meantime. For binary compatibility
|
|
|
|
|
with the old library, a newer library needs to still have the old interface
|
1999-02-02 17:26:53 +08:00
|
|
|
|
for old programs. On the other hand, new programs should use the new
|
1998-09-09 19:46:18 +08:00
|
|
|
|
interface. Symbol versioning is the solution for this problem. The GNU
|
1999-02-02 17:26:53 +08:00
|
|
|
|
libc version 2.1 uses symbol versioning by default if the installed binutils
|
|
|
|
|
supports it.
|
1998-09-09 19:46:18 +08:00
|
|
|
|
|
1999-02-02 17:26:53 +08:00
|
|
|
|
We don't advise building without symbol versioning, since you lose binary
|
|
|
|
|
compatibility - forever! The binary compatibility you lose is not only
|
|
|
|
|
against the previous version of the GNU libc (version 2.0) but also against
|
|
|
|
|
all future versions.
|
1998-09-09 19:46:18 +08:00
|
|
|
|
|
1999-07-09 17:58:27 +08:00
|
|
|
|
?? How can I compile on my fast ix86 machine a working libc for my slow
|
|
|
|
|
i386? After installing libc, programs abort with "Illegal
|
|
|
|
|
Instruction".
|
|
|
|
|
|
|
|
|
|
{AJ} glibc and gcc might generate some instructions on your machine that
|
|
|
|
|
aren't available on i386. You've got to tell glibc that you're configuring
|
|
|
|
|
for i386 with adding i386 as your machine, for example:
|
|
|
|
|
|
|
|
|
|
../configure --prefix=/usr i386-pc-linux-gnu
|
|
|
|
|
|
|
|
|
|
And you need to tell gcc to only generate i386 code, just add `-mcpu=i386'
|
|
|
|
|
(just -m386 doesn't work) to your CFLAGS.
|
|
|
|
|
|
|
|
|
|
{UD} This applies not only to the i386. Compiling on a i686 for any older
|
|
|
|
|
model will also fail if the above methods are not used.
|
|
|
|
|
|
2000-02-24 06:15:49 +08:00
|
|
|
|
?? `make' complains about a missing dlfcn/libdl.so when building
|
|
|
|
|
malloc/libmemprof.so. How can I fix this?
|
|
|
|
|
|
|
|
|
|
{AJ} Older make version (<= 3.78.90) have a bug which was hidden by a bug in
|
2000-08-09 15:12:30 +08:00
|
|
|
|
glibc (<= 2.1.2). You need to upgrade make to a newer or fixed version.
|
2000-02-24 06:15:49 +08:00
|
|
|
|
|
|
|
|
|
After upgrading make, you should remove the file sysd-sorted in your build
|
|
|
|
|
directory. The problem is that the broken make creates a wrong order for
|
|
|
|
|
one list in that file. The list has to be recreated with the new make -
|
|
|
|
|
which happens if you remove the file.
|
|
|
|
|
|
|
|
|
|
You might encounter this bug also in other situations where make scans
|
2000-08-09 15:12:30 +08:00
|
|
|
|
directories. I strongly advise to upgrade your make version to 3.79 or
|
|
|
|
|
newer.
|
2000-02-24 06:15:49 +08:00
|
|
|
|
|
1999-07-09 17:58:27 +08:00
|
|
|
|
|
2000-10-21 19:04:04 +08:00
|
|
|
|
??mips Which tools should I use for MIPS?
|
|
|
|
|
|
2002-10-03 08:24:35 +08:00
|
|
|
|
{AJ} You should use the current development version of gcc 3.2 or newer from
|
|
|
|
|
CVS.
|
2000-10-21 19:04:04 +08:00
|
|
|
|
|
2001-05-11 21:09:19 +08:00
|
|
|
|
You need also recent binutils, anything before and including 2.11 will not
|
|
|
|
|
work correctly. Either try the Linux binutils 2.11.90.0.5 from HJ Lu or the
|
2001-02-10 21:14:58 +08:00
|
|
|
|
current development version of binutils from CVS.
|
|
|
|
|
|
|
|
|
|
Please note that `make check' might fail for a number of the math tests
|
|
|
|
|
because of problems of the FPU emulation in the Linux kernel (the MIPS FPU
|
|
|
|
|
doesn't handle all cases and needs help from the kernel).
|
2000-10-21 19:04:04 +08:00
|
|
|
|
|
|
|
|
|
For details check also my page <http://www.suse.de/~aj/glibc-mips.html>.
|
|
|
|
|
|
2002-09-05 18:28:51 +08:00
|
|
|
|
??powerpc64 Which compiler should I use for powerpc64?
|
|
|
|
|
|
|
|
|
|
{SM} You want to use at least gcc 3.2 (together with the right versions
|
|
|
|
|
of all the other tools, of course).
|
|
|
|
|
|
2005-04-09 05:00:44 +08:00
|
|
|
|
?? `make' fails when running rpcgen the first time,
|
|
|
|
|
what is going on? How do I fix this?
|
|
|
|
|
|
|
|
|
|
{CO} The first invocation of rpcgen is also the first use of the recently
|
|
|
|
|
compiled dynamic loader. If there is any problem with the dynamic loader
|
|
|
|
|
it will more than likely fail to run rpcgen properly. This could be due to
|
|
|
|
|
any number of problems.
|
|
|
|
|
|
|
|
|
|
The only real solution is to debug the loader and determine the problem
|
|
|
|
|
yourself. Please remember that for each architecture there may be various
|
|
|
|
|
patches required to get glibc HEAD into a runnable state. The best course
|
|
|
|
|
of action is to determine if you have all the required patches.
|
|
|
|
|
|
2008-02-22 17:57:19 +08:00
|
|
|
|
?? Why do I get:
|
|
|
|
|
`#error "glibc cannot be compiled without optimization"',
|
|
|
|
|
when trying to compile GNU libc with GNU CC?
|
|
|
|
|
|
|
|
|
|
{AJ,CO} There are a couple of reasons why the GNU C library will not work
|
|
|
|
|
correctly if it is not complied with optimzation.
|
|
|
|
|
|
|
|
|
|
In the early startup of the dynamic loader (_dl_start), before
|
|
|
|
|
relocation of the PLT, you cannot make function calls. You must inline
|
|
|
|
|
the functions you will use during early startup, or call compiler
|
|
|
|
|
builtins (__builtin_*).
|
|
|
|
|
|
|
|
|
|
Without optimizations enabled GNU CC will not inline functions. The
|
|
|
|
|
early startup of the dynamic loader will make function calls via an
|
|
|
|
|
unrelocated PLT and crash.
|
|
|
|
|
|
|
|
|
|
Without auditing the dynamic linker code it would be difficult to remove
|
|
|
|
|
this requirement.
|
|
|
|
|
|
|
|
|
|
Another reason is that nested functions must be inlined in many cases to
|
|
|
|
|
avoid executable stacks.
|
|
|
|
|
|
|
|
|
|
In practice there is no reason to compile without optimizations, therefore
|
|
|
|
|
we require that GNU libc be compiled with optimizations enabled.
|
|
|
|
|
|
1997-12-05 08:40:29 +08:00
|
|
|
|
? Installation and configuration issues
|
|
|
|
|
|
|
|
|
|
?? Can I replace the libc on my Linux system with GNU libc?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{UD} You cannot replace any existing libc for Linux with GNU libc. It is
|
|
|
|
|
binary incompatible and therefore has a different major version. You can,
|
|
|
|
|
however, install it alongside your existing libc.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
For Linux there are three major libc versions:
|
|
|
|
|
libc-4 a.out libc
|
|
|
|
|
libc-5 original ELF libc
|
|
|
|
|
libc-6 GNU libc
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
You can have any combination of these three installed. For more information
|
|
|
|
|
consult documentation for shared library handling. The Makefiles of GNU
|
|
|
|
|
libc will automatically generate the needed symbolic links which the linker
|
|
|
|
|
will use.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
?? 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
|
|
|
|
|
directory and install all files relative to this. The default is
|
1998-04-21 17:43:11 +08:00
|
|
|
|
/usr/local, because this is safe (it will not damage the system if installed
|
|
|
|
|
there). If you wish to install GNU libc as the primary C library on your
|
|
|
|
|
system, set the base directory to /usr (i.e. run configure --prefix=/usr
|
|
|
|
|
<other_options>). Note that this can damage your system; see ?safety for
|
|
|
|
|
details.
|
|
|
|
|
|
|
|
|
|
Some systems like Linux have a filesystem standard which makes a difference
|
|
|
|
|
between essential libraries and others. Essential libraries are placed in
|
|
|
|
|
/lib because this directory is required to be located on the same disk
|
|
|
|
|
partition as /. The /usr subtree might be found on another
|
|
|
|
|
partition/disk. If you configure for Linux with --prefix=/usr, then this
|
|
|
|
|
will be done automatically.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
To install the essential libraries which come with GNU libc in /lib on
|
1998-04-21 17:43:11 +08:00
|
|
|
|
systems other than Linux one must explicitly request it. Autoconf has no
|
|
|
|
|
option for this so you have to use a `configparms' file (see the `INSTALL'
|
|
|
|
|
file for details). It should contain:
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
slibdir=/lib
|
|
|
|
|
sysconfdir=/etc
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
The first line specifies the directory for the essential libraries, the
|
|
|
|
|
second line the directory for system configuration files.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
??safety How should I avoid damaging my system when I install GNU libc?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{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, where it
|
|
|
|
|
will probably not break anything. (If you wish to be certain, set the
|
|
|
|
|
prefix to something like /usr/local/glibc2 which is not used for anything.)
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
The dangers when installing glibc in /usr are twofold:
|
|
|
|
|
|
|
|
|
|
* glibc will overwrite the headers in /usr/include. Other C libraries
|
1999-03-08 22:50:23 +08:00
|
|
|
|
install a different but overlapping set of headers there, so the effect
|
|
|
|
|
will probably be that you can't compile anything. You need to rename
|
|
|
|
|
/usr/include out of the way before running `make install'. (Do not throw
|
|
|
|
|
it away; you will then lose the ability to compile programs against your
|
|
|
|
|
old libc.)
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
* None of your old libraries, static or shared, can be used with a
|
|
|
|
|
different C library major version. For shared libraries this is not a
|
|
|
|
|
problem, because the filenames are different and the dynamic linker
|
|
|
|
|
will enforce the restriction. But static libraries have no version
|
|
|
|
|
information. You have to evacuate all the static libraries in
|
|
|
|
|
/usr/lib to a safe location.
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
GNU C Library?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{ZW} In theory, no; the linker does not care, and the headers are supposed
|
|
|
|
|
to check for GNU CC before using its extensions to the C language.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
However, there are currently no ports of glibc to systems where another
|
|
|
|
|
compiler is the default, so no one has tested the headers extensively
|
|
|
|
|
against another compiler. You may therefore encounter difficulties. If you
|
|
|
|
|
do, please report them as bugs.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
Also, in several places GNU extensions provide large benefits in code
|
|
|
|
|
quality. For example, the library has hand-optimized, inline assembly
|
1998-04-21 17:43:11 +08:00
|
|
|
|
versions of some string functions. These can only be used with GCC. See
|
|
|
|
|
?string for details.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
??crypt When linking with the new libc I get unresolved symbols
|
|
|
|
|
`crypt' and `setkey'. Why aren't these functions in the
|
|
|
|
|
libc anymore?
|
|
|
|
|
|
|
|
|
|
|
2000-11-06 15:25:55 +08:00
|
|
|
|
{} Removed. Does not apply anymore.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
?? 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.
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{UD} On Linux, gcc sets the dynamic linker to /lib/ld-linux.so.1 unless the
|
1999-06-06 17:23:32 +08:00
|
|
|
|
user specifies a --dynamic-linker argument. This is the name of the libc5
|
1998-04-21 17:43:11 +08:00
|
|
|
|
dynamic linker, which does not work with glibc.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-09-23 23:28:54 +08:00
|
|
|
|
For casual use of GNU libc you can just specify to the linker
|
|
|
|
|
--dynamic-linker=/lib/ld-linux.so.2
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
which is the glibc dynamic linker, on Linux systems. On other systems the
|
1998-09-23 23:28:54 +08:00
|
|
|
|
name is /lib/ld.so.1. When linking via gcc, you've got to add
|
|
|
|
|
-Wl,--dynamic-linker=/lib/ld-linux.so.2
|
|
|
|
|
|
|
|
|
|
to the gcc command line.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
To change your environment to use GNU libc for compiling you need to change
|
|
|
|
|
the `specs' file of your gcc. This file is normally found at
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
/usr/lib/gcc-lib/<arch>/<version>/specs
|
|
|
|
|
|
|
|
|
|
In this file you have to change a few things:
|
|
|
|
|
|
|
|
|
|
- change `ld-linux.so.1' to `ld-linux.so.2'
|
|
|
|
|
|
|
|
|
|
- remove all expression `%{...:-lgmon}'; there is no libgmon in glibc
|
|
|
|
|
|
|
|
|
|
- fix a minor bug by changing %{pipe:-} to %|
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
Here is what the gcc-2.7.2 specs file should look like when GNU libc is
|
|
|
|
|
installed at /usr:
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
|
*asm:
|
|
|
|
|
%{V} %{v:%{!V:-V}} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}
|
|
|
|
|
|
|
|
|
|
*asm_final:
|
|
|
|
|
%|
|
|
|
|
|
|
|
|
|
|
*cpp:
|
|
|
|
|
%{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{!m386:-D__i486__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}
|
|
|
|
|
|
|
|
|
|
*cc1:
|
|
|
|
|
%{profile:-p}
|
|
|
|
|
|
|
|
|
|
*cc1plus:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*endfile:
|
|
|
|
|
%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s
|
|
|
|
|
|
|
|
|
|
*link:
|
|
|
|
|
-m elf_i386 %{shared:-shared} %{!shared: %{!ibcs: %{!static: %{rdynamic:-export-dynamic} %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} %{static:-static}}}
|
|
|
|
|
|
|
|
|
|
*lib:
|
|
|
|
|
%{!shared: %{pthread:-lpthread} %{profile:-lc_p} %{!profile: -lc}}
|
|
|
|
|
|
|
|
|
|
*libgcc:
|
|
|
|
|
-lgcc
|
|
|
|
|
|
|
|
|
|
*startfile:
|
|
|
|
|
%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:%{profile:gcrt1.o%s} %{!profile:crt1.o%s}}}} crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}
|
|
|
|
|
|
|
|
|
|
*switches_need_spaces:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*signed_char:
|
|
|
|
|
%{funsigned-char:-D__CHAR_UNSIGNED__}
|
|
|
|
|
|
|
|
|
|
*predefines:
|
|
|
|
|
-D__ELF__ -Dunix -Di386 -Dlinux -Asystem(unix) -Asystem(posix) -Acpu(i386) -Amachine(i386)
|
|
|
|
|
|
|
|
|
|
*cross_compile:
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
|
*multilib:
|
|
|
|
|
. ;
|
|
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
Things get a bit more complicated if you have GNU libc installed in some
|
|
|
|
|
other place than /usr, i.e., if you do not want to use it instead of the old
|
|
|
|
|
libc. In this case the needed startup files and libraries are not found in
|
|
|
|
|
the regular places. So the specs file must tell the compiler and linker
|
|
|
|
|
exactly what to use.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
Version 2.7.2.3 does and future versions of GCC will automatically
|
|
|
|
|
provide the correct specs.
|
|
|
|
|
|
2001-04-04 08:01:02 +08:00
|
|
|
|
??nonsh Looking through the shared libc file I haven't found the
|
1997-12-05 08:40:29 +08:00
|
|
|
|
functions `stat', `lstat', `fstat', and `mknod' and while
|
|
|
|
|
linking on my Linux system I get error messages. How is
|
|
|
|
|
this supposed to work?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{RM} Believe it or not, stat and lstat (and fstat, and mknod) are supposed
|
|
|
|
|
to be undefined references in libc.so.6! Your problem is probably a missing
|
|
|
|
|
or incorrect /usr/lib/libc.so file; note that this is a small text file now,
|
|
|
|
|
not a symlink to libc.so.6. It should look something like this:
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-01 07:45:03 +08:00
|
|
|
|
GROUP ( libc.so.6 libc_nonshared.a )
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1999-08-01 06:27:07 +08:00
|
|
|
|
??excpt When I run an executable on one system which I compiled on
|
1998-11-21 01:27:47 +08:00
|
|
|
|
another, I get dynamic linker errors. Both systems have the same
|
|
|
|
|
version of glibc installed. What's wrong?
|
|
|
|
|
|
|
|
|
|
{ZW} Glibc on one of these systems was compiled with gcc 2.7 or 2.8, the
|
|
|
|
|
other with egcs (any version). Egcs has functions in its internal
|
|
|
|
|
`libgcc.a' to support exception handling with C++. They are linked into
|
|
|
|
|
any program or dynamic library compiled with egcs, whether it needs them or
|
|
|
|
|
not. Dynamic libraries then turn around and export those functions again
|
|
|
|
|
unless special steps are taken to prevent them.
|
|
|
|
|
|
|
|
|
|
When you link your program, it resolves its references to the exception
|
|
|
|
|
functions to the ones exported accidentally by libc.so. That works fine as
|
|
|
|
|
long as libc has those functions. On the other system, libc doesn't have
|
|
|
|
|
those functions because it was compiled by gcc 2.8, and you get undefined
|
|
|
|
|
symbol errors. The symbols in question are named things like
|
|
|
|
|
`__register_frame_info'.
|
|
|
|
|
|
|
|
|
|
For glibc 2.0, the workaround is to not compile libc with egcs. We've also
|
|
|
|
|
incorporated a patch which should prevent the EH functions sneaking into
|
|
|
|
|
libc. It doesn't matter what compiler you use to compile your program.
|
|
|
|
|
|
|
|
|
|
For glibc 2.1, we've chosen to do it the other way around: libc.so
|
|
|
|
|
explicitly provides the EH functions. This is to prevent other shared
|
1999-03-08 22:23:38 +08:00
|
|
|
|
libraries from doing it.
|
|
|
|
|
|
|
|
|
|
{UD} Starting with glibc 2.1.1 you can compile glibc with gcc 2.8.1 or
|
|
|
|
|
newer since we have explicitly add references to the functions causing the
|
|
|
|
|
problem. But you nevertheless should use EGCS for other reasons
|
|
|
|
|
(see ?binsize).
|
1998-11-21 01:27:47 +08:00
|
|
|
|
|
1999-08-01 06:27:07 +08:00
|
|
|
|
{GK} On some Linux distributions for PowerPC, you can see this when you have
|
|
|
|
|
built gcc or egcs from the Web sources (gcc versions 2.95 or earlier), then
|
|
|
|
|
re-built glibc. This happens because in these versions of gcc, exception
|
|
|
|
|
handling is implemented using an older method; the people making the
|
|
|
|
|
distributions are a little ahead of their time.
|
|
|
|
|
|
|
|
|
|
A quick solution to this is to find the libgcc.a file that came with the
|
1999-11-18 02:52:42 +08:00
|
|
|
|
distribution (it would have been installed under /usr/lib/gcc-lib), do
|
1999-08-01 06:27:07 +08:00
|
|
|
|
`ar x libgcc.a frame.o' to get the frame.o file out, and add a line saying
|
|
|
|
|
`LDLIBS-c.so += frame.o' to the file `configparms' in the directory you're
|
|
|
|
|
building in. You can check you've got the right `frame.o' file by running
|
|
|
|
|
`nm frame.o' and checking that it has the symbols defined that you're
|
|
|
|
|
missing.
|
|
|
|
|
|
|
|
|
|
This will let you build glibc with the C compiler. The C++ compiler
|
|
|
|
|
will still be binary incompatible with any C++ shared libraries that
|
|
|
|
|
you got with your distribution.
|
|
|
|
|
|
1997-12-05 08:40:29 +08:00
|
|
|
|
?? How can I compile gcc 2.7.2.1 from the gcc source code using
|
|
|
|
|
glibc 2.x?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{AJ} There's only correct support for glibc 2.0.x in gcc 2.7.2.3 or later.
|
2002-10-03 08:24:35 +08:00
|
|
|
|
But you should get at least gcc 2.95.3 (or later versions) anyway
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
?? The `gencat' utility cannot process the catalog sources which
|
|
|
|
|
were used on my Linux libc5 based system. Why?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{UD} The `gencat' utility provided with glibc complies to the XPG standard.
|
|
|
|
|
The older Linux version did not obey the standard, so they are not
|
|
|
|
|
compatible.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
To ease the transition from the Linux version some of the non-standard
|
1998-04-21 17:43:11 +08:00
|
|
|
|
features are also present in the `gencat' program of GNU libc. This mainly
|
|
|
|
|
includes the use of symbols for the message number and the automatic
|
1997-12-05 08:40:29 +08:00
|
|
|
|
generation of header files which contain the needed #defines to map the
|
|
|
|
|
symbols to integers.
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
Here is a simple SED script to convert at least some Linux specific catalog
|
|
|
|
|
files to the XPG4 form:
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
|
# Change catalog source in Linux specific format to standard XPG format.
|
2002-01-05 14:15:54 +08:00
|
|
|
|
# Ulrich Drepper <drepper@redhat.com>, 1996.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
#
|
|
|
|
|
/^\$ #/ {
|
|
|
|
|
h
|
|
|
|
|
s/\$ #\([^ ]*\).*/\1/
|
|
|
|
|
x
|
|
|
|
|
s/\$ #[^ ]* *\(.*\)/\$ \1/
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/^# / {
|
|
|
|
|
s/^# \(.*\)/\1/
|
|
|
|
|
G
|
|
|
|
|
s/\(.*\)\n\(.*\)/\2 \1/
|
|
|
|
|
}
|
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
|
|
Update.
1998-02-10 23:57 Ulrich Drepper <drepper@happy.cygnus.com>
* misc/tst-efgcvt.c: Add more tests.
* misc/efgcvt_r.c: Correct result for above new tests.
1998-02-06 17:22 H.J. Lu <hjl@gnu.org>
* misc/efgcvt_r.c (fcvt_r, ecvt_r): Correctly handle
NDIGIT <= 0.
1998-02-10 16:48 Philip Blundell <pb@nexus.co.uk>
* Makerules (install-no-libc.a-nosubdir): Don't install-bin (etc)
if the programs weren't built.
1998-02-09 10:12 Philip Blundell <pb@nexus.co.uk>
* sysdeps/libm-ieee754/s_exp2.c (__ieee754_exp2): If we don't have
FE_TONEAREST, soldier on regardless and do the best we can.
* sysdeps/libm-ieee754/s_exp2f.c (__ieee754_exp2f): likewise.
1998-02-5 17:20 Philip Blundell <pb@nexus.co.uk>
* sysdeps/standalone/filedesc.h: Define __need_FOPEN_MAX, not
_STDIO_H, before including <bits/stdio_lim.h>.
* sysdeps/standalone/arm/bits/errno.h (EOVERFLOW): Added.
* io/fts.c (fts_build): Don't try to use d_type if it doesn't
exist.
* sysdeps/arm/sys/ucontext.h: New file.
1998-02-04 10:11 Philip Blundell <pb@nexus.co.uk>
* manual/stdio.texi (Formatted Output Functions): Explicitly say
that the return value from snprintf() does not count the
terminating NUL as a character.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* manual/users.texi: Rewrite to describe correct POSIX behaviour,
add description for sete[ug]id and general cleanup.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (parent-clean): Don't remove makefile fragments here.
(postclean): New variable.
(clean): Remove makefile fragments here.
(realclean distclean): Likewise. Pass sysdep-subdirs to sub-make.
(generated): Add isomac and isomanc.out.
* Makeconfig ($(common-objpfx)soversions.mk): Don't generate if
avoid-generated is set.
(postclean-generated): Add soversion.mk.
($(common-objpfx)version.mk): Don't include if avoid-generated is
set.
* Makerules: Still need to include $(+sysdir_pfx)sysd-Makefile if
avoid-generated is set.
(common-generated): Add libc.so and libc.so$(libc.so-version).
(generated): Add versioned libraries.
(common-mostlyclean): Also remove %.so and %_pic.a.
* csu/Makefile (generated): Add abi-tag.h.
* db2/Makefile (extra-objs): Add getlong.o.
* elf/Makefile (generated): Add ld.so, ldd and
$(rtld-installed-name).
(others): Add ldconfig here instead of ldconfig.o to extra-objs.
* malloc/Makefile (generated): Add mtrace.
* po/Makefile: Don't include version.mk, not needed any more.
* sunrpc/Makefile (generated): Add rpc-proto.d and rpcgen.
* sysdeps/unix/Makefile: Fix local_lim.h -> bits/local_lim.h,
syscall.h -> sys/syscall.h.
(common-generated): Add s-proto.d.
(postclean-generated): Add sysd-syscalls.
* localedata/Makefile (test-output): Add all output files.
(generated): Add test-input and test-output.
(generated-dirs): Add all the dirs.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (test-output, generated, generated-dirs): New
variables.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* resolv/nss_dns/dns-host.c: Various code cleanups.
1998-02-09 08:10 H.J. Lu <hjl@gnu.org>
* resolv/gethnamaddr.c (getanswer): Fix the PTR/CNAME bug.
From Philip Blundell <pb@nexus.co.uk>.
* resolv/nss_dns/dns-host.c (getanswer_r): Ditto.
1998-02-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* libc.map: Add .rem, .div, .mul, .udiv, .umul, .urem for Sparc.
Suggested by debian/sparc porters.
1998-02-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* misc/tst-efgcvt.c: Totally rewritten, added a lot of new tests
for ecvt and fcvt.
1998-02-10 16:32 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Use __xstat and
__fxstat instead of stat and fstat. Use namespace clean __stpcpy.
* signal/signal.h: Always define sigset_t if __need_sigset_t is
defined even if __USE_POSIX is not defined.
1998-02-02 20:51 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Correct last patch
to support obsolete tty major numbers correctly.
1998-02-02 08:47 H.J. Lu <hjl@gnu.org>
* login/Makefile ($(inst_libexecdir)/pt_chown): Make the target
directory first and ignore install error.
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Substract
128 from ptyno and fix a typo for the BSD style pty.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Depend on all
syscalls.list's.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
getresuid and getresgid.
* sysdeps/unix/sysv/linux/getresuid.c: New file.
* sysdeps/unix/sysv/linux/getresgid.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Remove getres[ug]id, add
s_getres[ug]id.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add getres[ug]id.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
1998-02-02 08:11 H.J. Lu <hjl@gnu.org>
* nscd/grpcache.c: Include <stdlib.h>.
1998-02-01 16:01 H.J. Lu <hjl@gnu.org>
* stdlib/atoll.c: Fix comments.
* sysdeps/posix/ttyname.c: Ignore stdin/stdout/stderr.
* sysdeps/posix/ttyname_r.c: Ditto.
1998-02-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/sys/stat.h: Define S_IFLNK and S_IFSOCK if __USE_BSD or
__USE_MISC, independent of __USE_UNIX98.
1998-02-10 19:18 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
1998-02-04 11:58 Richard Henderson <rth@twiddle.rth.home>
* Makeconfig (CFLAGS-.os): Kill -fno-common.
* Makerules (libc.so): Prelink libc_pic.a, allocating commons.
* libc.map (GLIBC_2.1): Add Linux/Alpha tv64 symbols.
* elf/rtld.map: New file. Needed to define the GLIBC_2.*
version symbols.
* include/libc-symbols.h (symbol_version, default_symbol_version):
Provide asm versions and correct !DO_VERSIONING versions.
* sysdeps/unix/make-syscalls.sh: Recognize version symbols in
the weak symbol list.
* sysdeps/unix/sysv/linux/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
* sysdeps/unix/sysv/linux/sigpending.c: Likewise.
* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
1998-02-04 16:41 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sunrpc/Makefile: Correct dependencies of rpcgen.
1998-02-10 03:00 Ulrich Drepper <drepper@happy.cygnus.com>
* nscd/Makefile: Fix test for available linuxthreads add-on.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-02-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/syscalls.list: Fix typo in lchown.
1998-02-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/gnu/Makefile: Respect with-cvs variable.
* manual/errno.texi (Error Messages): Correct description of
strerror_r. Pointed out by jonas@bagge.se.
1998-01-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/socket.texi (Host Address Functions): Clarify description
of inet_network.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/grantpt.c (argv): Move const to toplevel.
(grantpt): Delete superfluous cast.
1998-02-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile ($(inst_slibdir)/libc-$(version).so): Depend on
elf/ldso_install instead of elf/subdir_install.
(elf/ldso_install): New target.
* elf/Makefile (ldso_install): New target.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/powerpc/socket.S: Really do the change
of 1998-01-06.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h (strcmp): Use __string2_1bptr_p only for
constant expressions.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nss/test-netdb.c: Include <unistd.h> for gethostname and "nss.h"
for __nss_configure_lookup.
(output_hostent): Remove unused variable.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/tst-inlcall.c: Fix format string.
1998-02-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* inet/netinet/in.h: Rename second parameter of bindresvport to
avoid buggy gcc warning. [PR libc/412]
1998-02-11 04:06:30 +08:00
|
|
|
|
?? Programs using libc have their messages translated, but other
|
|
|
|
|
behavior is not localized (e.g. collating order); why?
|
|
|
|
|
|
|
|
|
|
{ZW} Translated messages are automatically installed, but the locale
|
1998-04-21 17:43:11 +08:00
|
|
|
|
database that controls other behaviors is not. You need to run localedef to
|
|
|
|
|
install this database, after you have run `make install'. For example, to
|
|
|
|
|
set up the French Canadian locale, simply issue the command
|
Update.
1998-02-10 23:57 Ulrich Drepper <drepper@happy.cygnus.com>
* misc/tst-efgcvt.c: Add more tests.
* misc/efgcvt_r.c: Correct result for above new tests.
1998-02-06 17:22 H.J. Lu <hjl@gnu.org>
* misc/efgcvt_r.c (fcvt_r, ecvt_r): Correctly handle
NDIGIT <= 0.
1998-02-10 16:48 Philip Blundell <pb@nexus.co.uk>
* Makerules (install-no-libc.a-nosubdir): Don't install-bin (etc)
if the programs weren't built.
1998-02-09 10:12 Philip Blundell <pb@nexus.co.uk>
* sysdeps/libm-ieee754/s_exp2.c (__ieee754_exp2): If we don't have
FE_TONEAREST, soldier on regardless and do the best we can.
* sysdeps/libm-ieee754/s_exp2f.c (__ieee754_exp2f): likewise.
1998-02-5 17:20 Philip Blundell <pb@nexus.co.uk>
* sysdeps/standalone/filedesc.h: Define __need_FOPEN_MAX, not
_STDIO_H, before including <bits/stdio_lim.h>.
* sysdeps/standalone/arm/bits/errno.h (EOVERFLOW): Added.
* io/fts.c (fts_build): Don't try to use d_type if it doesn't
exist.
* sysdeps/arm/sys/ucontext.h: New file.
1998-02-04 10:11 Philip Blundell <pb@nexus.co.uk>
* manual/stdio.texi (Formatted Output Functions): Explicitly say
that the return value from snprintf() does not count the
terminating NUL as a character.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* manual/users.texi: Rewrite to describe correct POSIX behaviour,
add description for sete[ug]id and general cleanup.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (parent-clean): Don't remove makefile fragments here.
(postclean): New variable.
(clean): Remove makefile fragments here.
(realclean distclean): Likewise. Pass sysdep-subdirs to sub-make.
(generated): Add isomac and isomanc.out.
* Makeconfig ($(common-objpfx)soversions.mk): Don't generate if
avoid-generated is set.
(postclean-generated): Add soversion.mk.
($(common-objpfx)version.mk): Don't include if avoid-generated is
set.
* Makerules: Still need to include $(+sysdir_pfx)sysd-Makefile if
avoid-generated is set.
(common-generated): Add libc.so and libc.so$(libc.so-version).
(generated): Add versioned libraries.
(common-mostlyclean): Also remove %.so and %_pic.a.
* csu/Makefile (generated): Add abi-tag.h.
* db2/Makefile (extra-objs): Add getlong.o.
* elf/Makefile (generated): Add ld.so, ldd and
$(rtld-installed-name).
(others): Add ldconfig here instead of ldconfig.o to extra-objs.
* malloc/Makefile (generated): Add mtrace.
* po/Makefile: Don't include version.mk, not needed any more.
* sunrpc/Makefile (generated): Add rpc-proto.d and rpcgen.
* sysdeps/unix/Makefile: Fix local_lim.h -> bits/local_lim.h,
syscall.h -> sys/syscall.h.
(common-generated): Add s-proto.d.
(postclean-generated): Add sysd-syscalls.
* localedata/Makefile (test-output): Add all output files.
(generated): Add test-input and test-output.
(generated-dirs): Add all the dirs.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (test-output, generated, generated-dirs): New
variables.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* resolv/nss_dns/dns-host.c: Various code cleanups.
1998-02-09 08:10 H.J. Lu <hjl@gnu.org>
* resolv/gethnamaddr.c (getanswer): Fix the PTR/CNAME bug.
From Philip Blundell <pb@nexus.co.uk>.
* resolv/nss_dns/dns-host.c (getanswer_r): Ditto.
1998-02-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* libc.map: Add .rem, .div, .mul, .udiv, .umul, .urem for Sparc.
Suggested by debian/sparc porters.
1998-02-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* misc/tst-efgcvt.c: Totally rewritten, added a lot of new tests
for ecvt and fcvt.
1998-02-10 16:32 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Use __xstat and
__fxstat instead of stat and fstat. Use namespace clean __stpcpy.
* signal/signal.h: Always define sigset_t if __need_sigset_t is
defined even if __USE_POSIX is not defined.
1998-02-02 20:51 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Correct last patch
to support obsolete tty major numbers correctly.
1998-02-02 08:47 H.J. Lu <hjl@gnu.org>
* login/Makefile ($(inst_libexecdir)/pt_chown): Make the target
directory first and ignore install error.
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Substract
128 from ptyno and fix a typo for the BSD style pty.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Depend on all
syscalls.list's.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
getresuid and getresgid.
* sysdeps/unix/sysv/linux/getresuid.c: New file.
* sysdeps/unix/sysv/linux/getresgid.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Remove getres[ug]id, add
s_getres[ug]id.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add getres[ug]id.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
1998-02-02 08:11 H.J. Lu <hjl@gnu.org>
* nscd/grpcache.c: Include <stdlib.h>.
1998-02-01 16:01 H.J. Lu <hjl@gnu.org>
* stdlib/atoll.c: Fix comments.
* sysdeps/posix/ttyname.c: Ignore stdin/stdout/stderr.
* sysdeps/posix/ttyname_r.c: Ditto.
1998-02-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/sys/stat.h: Define S_IFLNK and S_IFSOCK if __USE_BSD or
__USE_MISC, independent of __USE_UNIX98.
1998-02-10 19:18 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
1998-02-04 11:58 Richard Henderson <rth@twiddle.rth.home>
* Makeconfig (CFLAGS-.os): Kill -fno-common.
* Makerules (libc.so): Prelink libc_pic.a, allocating commons.
* libc.map (GLIBC_2.1): Add Linux/Alpha tv64 symbols.
* elf/rtld.map: New file. Needed to define the GLIBC_2.*
version symbols.
* include/libc-symbols.h (symbol_version, default_symbol_version):
Provide asm versions and correct !DO_VERSIONING versions.
* sysdeps/unix/make-syscalls.sh: Recognize version symbols in
the weak symbol list.
* sysdeps/unix/sysv/linux/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
* sysdeps/unix/sysv/linux/sigpending.c: Likewise.
* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
1998-02-04 16:41 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sunrpc/Makefile: Correct dependencies of rpcgen.
1998-02-10 03:00 Ulrich Drepper <drepper@happy.cygnus.com>
* nscd/Makefile: Fix test for available linuxthreads add-on.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-02-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/syscalls.list: Fix typo in lchown.
1998-02-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/gnu/Makefile: Respect with-cvs variable.
* manual/errno.texi (Error Messages): Correct description of
strerror_r. Pointed out by jonas@bagge.se.
1998-01-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/socket.texi (Host Address Functions): Clarify description
of inet_network.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/grantpt.c (argv): Move const to toplevel.
(grantpt): Delete superfluous cast.
1998-02-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile ($(inst_slibdir)/libc-$(version).so): Depend on
elf/ldso_install instead of elf/subdir_install.
(elf/ldso_install): New target.
* elf/Makefile (ldso_install): New target.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/powerpc/socket.S: Really do the change
of 1998-01-06.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h (strcmp): Use __string2_1bptr_p only for
constant expressions.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nss/test-netdb.c: Include <unistd.h> for gethostname and "nss.h"
for __nss_configure_lookup.
(output_hostent): Remove unused variable.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/tst-inlcall.c: Fix format string.
1998-02-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* inet/netinet/in.h: Rename second parameter of bindresvport to
avoid buggy gcc warning. [PR libc/412]
1998-02-11 04:06:30 +08:00
|
|
|
|
|
|
|
|
|
localedef -i fr_CA -f ISO-8859-1 fr_CA
|
|
|
|
|
|
|
|
|
|
Please see localedata/README in the source tree for further details.
|
|
|
|
|
|
1997-12-05 08:40:29 +08:00
|
|
|
|
?? 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.
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{TK} The glibc NIS+ implementation uses a /var/nis/NIS_COLD_START file for
|
|
|
|
|
storing information about the NIS+ server and their public keys, because the
|
|
|
|
|
nis.conf file does not contain all the necessary information. You have to
|
|
|
|
|
copy a NIS_COLD_START file from a Solaris client (the NIS_COLD_START file is
|
|
|
|
|
byte order independent) or generate it with nisinit from the nis-tools
|
|
|
|
|
package; available at
|
|
|
|
|
|
1999-04-08 10:10:39 +08:00
|
|
|
|
http://www.suse.de/~kukuk/linux/nisplus.html
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
Update.
1998-02-10 23:57 Ulrich Drepper <drepper@happy.cygnus.com>
* misc/tst-efgcvt.c: Add more tests.
* misc/efgcvt_r.c: Correct result for above new tests.
1998-02-06 17:22 H.J. Lu <hjl@gnu.org>
* misc/efgcvt_r.c (fcvt_r, ecvt_r): Correctly handle
NDIGIT <= 0.
1998-02-10 16:48 Philip Blundell <pb@nexus.co.uk>
* Makerules (install-no-libc.a-nosubdir): Don't install-bin (etc)
if the programs weren't built.
1998-02-09 10:12 Philip Blundell <pb@nexus.co.uk>
* sysdeps/libm-ieee754/s_exp2.c (__ieee754_exp2): If we don't have
FE_TONEAREST, soldier on regardless and do the best we can.
* sysdeps/libm-ieee754/s_exp2f.c (__ieee754_exp2f): likewise.
1998-02-5 17:20 Philip Blundell <pb@nexus.co.uk>
* sysdeps/standalone/filedesc.h: Define __need_FOPEN_MAX, not
_STDIO_H, before including <bits/stdio_lim.h>.
* sysdeps/standalone/arm/bits/errno.h (EOVERFLOW): Added.
* io/fts.c (fts_build): Don't try to use d_type if it doesn't
exist.
* sysdeps/arm/sys/ucontext.h: New file.
1998-02-04 10:11 Philip Blundell <pb@nexus.co.uk>
* manual/stdio.texi (Formatted Output Functions): Explicitly say
that the return value from snprintf() does not count the
terminating NUL as a character.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* manual/users.texi: Rewrite to describe correct POSIX behaviour,
add description for sete[ug]id and general cleanup.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (parent-clean): Don't remove makefile fragments here.
(postclean): New variable.
(clean): Remove makefile fragments here.
(realclean distclean): Likewise. Pass sysdep-subdirs to sub-make.
(generated): Add isomac and isomanc.out.
* Makeconfig ($(common-objpfx)soversions.mk): Don't generate if
avoid-generated is set.
(postclean-generated): Add soversion.mk.
($(common-objpfx)version.mk): Don't include if avoid-generated is
set.
* Makerules: Still need to include $(+sysdir_pfx)sysd-Makefile if
avoid-generated is set.
(common-generated): Add libc.so and libc.so$(libc.so-version).
(generated): Add versioned libraries.
(common-mostlyclean): Also remove %.so and %_pic.a.
* csu/Makefile (generated): Add abi-tag.h.
* db2/Makefile (extra-objs): Add getlong.o.
* elf/Makefile (generated): Add ld.so, ldd and
$(rtld-installed-name).
(others): Add ldconfig here instead of ldconfig.o to extra-objs.
* malloc/Makefile (generated): Add mtrace.
* po/Makefile: Don't include version.mk, not needed any more.
* sunrpc/Makefile (generated): Add rpc-proto.d and rpcgen.
* sysdeps/unix/Makefile: Fix local_lim.h -> bits/local_lim.h,
syscall.h -> sys/syscall.h.
(common-generated): Add s-proto.d.
(postclean-generated): Add sysd-syscalls.
* localedata/Makefile (test-output): Add all output files.
(generated): Add test-input and test-output.
(generated-dirs): Add all the dirs.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (test-output, generated, generated-dirs): New
variables.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* resolv/nss_dns/dns-host.c: Various code cleanups.
1998-02-09 08:10 H.J. Lu <hjl@gnu.org>
* resolv/gethnamaddr.c (getanswer): Fix the PTR/CNAME bug.
From Philip Blundell <pb@nexus.co.uk>.
* resolv/nss_dns/dns-host.c (getanswer_r): Ditto.
1998-02-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* libc.map: Add .rem, .div, .mul, .udiv, .umul, .urem for Sparc.
Suggested by debian/sparc porters.
1998-02-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* misc/tst-efgcvt.c: Totally rewritten, added a lot of new tests
for ecvt and fcvt.
1998-02-10 16:32 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Use __xstat and
__fxstat instead of stat and fstat. Use namespace clean __stpcpy.
* signal/signal.h: Always define sigset_t if __need_sigset_t is
defined even if __USE_POSIX is not defined.
1998-02-02 20:51 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Correct last patch
to support obsolete tty major numbers correctly.
1998-02-02 08:47 H.J. Lu <hjl@gnu.org>
* login/Makefile ($(inst_libexecdir)/pt_chown): Make the target
directory first and ignore install error.
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Substract
128 from ptyno and fix a typo for the BSD style pty.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Depend on all
syscalls.list's.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
getresuid and getresgid.
* sysdeps/unix/sysv/linux/getresuid.c: New file.
* sysdeps/unix/sysv/linux/getresgid.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Remove getres[ug]id, add
s_getres[ug]id.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add getres[ug]id.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
1998-02-02 08:11 H.J. Lu <hjl@gnu.org>
* nscd/grpcache.c: Include <stdlib.h>.
1998-02-01 16:01 H.J. Lu <hjl@gnu.org>
* stdlib/atoll.c: Fix comments.
* sysdeps/posix/ttyname.c: Ignore stdin/stdout/stderr.
* sysdeps/posix/ttyname_r.c: Ditto.
1998-02-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/sys/stat.h: Define S_IFLNK and S_IFSOCK if __USE_BSD or
__USE_MISC, independent of __USE_UNIX98.
1998-02-10 19:18 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
1998-02-04 11:58 Richard Henderson <rth@twiddle.rth.home>
* Makeconfig (CFLAGS-.os): Kill -fno-common.
* Makerules (libc.so): Prelink libc_pic.a, allocating commons.
* libc.map (GLIBC_2.1): Add Linux/Alpha tv64 symbols.
* elf/rtld.map: New file. Needed to define the GLIBC_2.*
version symbols.
* include/libc-symbols.h (symbol_version, default_symbol_version):
Provide asm versions and correct !DO_VERSIONING versions.
* sysdeps/unix/make-syscalls.sh: Recognize version symbols in
the weak symbol list.
* sysdeps/unix/sysv/linux/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
* sysdeps/unix/sysv/linux/sigpending.c: Likewise.
* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
1998-02-04 16:41 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sunrpc/Makefile: Correct dependencies of rpcgen.
1998-02-10 03:00 Ulrich Drepper <drepper@happy.cygnus.com>
* nscd/Makefile: Fix test for available linuxthreads add-on.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-02-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/syscalls.list: Fix typo in lchown.
1998-02-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/gnu/Makefile: Respect with-cvs variable.
* manual/errno.texi (Error Messages): Correct description of
strerror_r. Pointed out by jonas@bagge.se.
1998-01-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/socket.texi (Host Address Functions): Clarify description
of inet_network.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/grantpt.c (argv): Move const to toplevel.
(grantpt): Delete superfluous cast.
1998-02-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile ($(inst_slibdir)/libc-$(version).so): Depend on
elf/ldso_install instead of elf/subdir_install.
(elf/ldso_install): New target.
* elf/Makefile (ldso_install): New target.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/powerpc/socket.S: Really do the change
of 1998-01-06.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h (strcmp): Use __string2_1bptr_p only for
constant expressions.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nss/test-netdb.c: Include <unistd.h> for gethostname and "nss.h"
for __nss_configure_lookup.
(output_hostent): Remove unused variable.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/tst-inlcall.c: Fix format string.
1998-02-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* inet/netinet/in.h: Rename second parameter of bindresvport to
avoid buggy gcc warning. [PR libc/412]
1998-02-11 04:06:30 +08:00
|
|
|
|
?? I have killed ypbind to stop using NIS, but glibc
|
1998-05-22 00:24:27 +08:00
|
|
|
|
continues using NIS.
|
1998-01-31 20:11:10 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{TK} For faster NIS lookups, glibc uses the /var/yp/binding/ files from
|
|
|
|
|
ypbind. ypbind 3.3 and older versions don't always remove these files, so
|
|
|
|
|
glibc will continue to use them. Other BSD versions seem to work correctly.
|
|
|
|
|
Until ypbind 3.4 is released, you can find a patch at
|
|
|
|
|
|
1999-05-16 07:31:55 +08:00
|
|
|
|
<ftp://ftp.kernel.org/pub/linux/utils/net/NIS/ypbind-3.3-glibc4.diff.gz>
|
1998-03-06 17:18:45 +08:00
|
|
|
|
|
1998-05-22 00:24:27 +08:00
|
|
|
|
?? Under Linux/Alpha, I always get "do_ypcall: clnt_call:
|
|
|
|
|
RPC: Unable to receive; errno = Connection refused" when using NIS.
|
1998-03-06 17:18:45 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{TK} You need a ypbind version which is 64bit clean. Some versions are not
|
|
|
|
|
64bit clean. A 64bit clean implementation is ypbind-mt. For ypbind 3.3,
|
|
|
|
|
you need the patch from ftp.kernel.org (See the previous question). I don't
|
|
|
|
|
know about other versions.
|
1998-03-06 17:18:45 +08:00
|
|
|
|
|
1998-01-31 20:11:10 +08:00
|
|
|
|
|
1997-12-05 08:40:29 +08:00
|
|
|
|
?? After installing glibc name resolving doesn't work properly.
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{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.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-05-22 00:24:27 +08:00
|
|
|
|
|
|
|
|
|
?? How do I create the databases for NSS?
|
|
|
|
|
|
|
|
|
|
{AJ} If you have an entry "db" in /etc/nsswitch.conf you should also create
|
|
|
|
|
the database files. The glibc sources contain a Makefile which does the
|
1998-09-09 19:46:18 +08:00
|
|
|
|
necessary conversion and calls to create those files. The file is
|
1998-05-22 00:24:27 +08:00
|
|
|
|
`db-Makefile' in the subdirectory `nss' and you can call it with `make -f
|
|
|
|
|
db-Makefile'. Please note that not all services are capable of using a
|
|
|
|
|
database. Currently passwd, group, ethers, protocol, rpc, services shadow
|
2001-02-26 15:28:08 +08:00
|
|
|
|
and netgroup are implemented. See also ?nssdb.
|
1998-05-22 00:24:27 +08:00
|
|
|
|
|
1997-12-05 08:40:29 +08:00
|
|
|
|
?? I have /usr/include/net and /usr/include/scsi as symlinks
|
|
|
|
|
into my Linux source tree. Is that wrong?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{PB} This was necessary for libc5, but is not correct when using glibc.
|
|
|
|
|
Including the kernel header files directly in user programs usually does not
|
|
|
|
|
work (see ?kerhdr). glibc provides its own <net/*> and <scsi/*> header
|
|
|
|
|
files to replace them, and you may have to remove any symlink that you have
|
|
|
|
|
in place before you install glibc. However, /usr/include/asm and
|
|
|
|
|
/usr/include/linux should remain as they were.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
?? 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
|
|
|
|
|
errors about undefined symbols. What went wrong?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{AJ} The problem is caused either by wrong program code or tools. In the
|
|
|
|
|
versioned libc a lot of symbols are now local that were global symbols in
|
|
|
|
|
previous versions. It seems that programs linked against older versions
|
|
|
|
|
often accidentally used libc global variables -- something that should not
|
|
|
|
|
happen.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
The only way to fix this is to recompile your program. Sorry, that's the
|
|
|
|
|
price you might have to pay once for quite a number of advantages with
|
|
|
|
|
symbol versioning.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
?? 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?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{UD} As the message says, relink the binary. The problem is that a few
|
|
|
|
|
symbols from the library can change in size and there is no way to avoid
|
|
|
|
|
this. _sys_errlist is a good example. Occasionally there are new error
|
|
|
|
|
numbers added to the kernel and this must be reflected at user level,
|
|
|
|
|
breaking programs that refer to them directly.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
Such symbols should normally not be used at all. There are mechanisms to
|
|
|
|
|
avoid using them. In the case of _sys_errlist, there is the strerror()
|
|
|
|
|
function which should _always_ be used instead. So the correct fix is to
|
|
|
|
|
rewrite that part of the application.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
In some situations (especially when testing a new library release) it might
|
|
|
|
|
be possible that a symbol changed size when that should not have happened.
|
|
|
|
|
So in case of doubt report such a warning message as a problem.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
Update.
1998-02-10 23:57 Ulrich Drepper <drepper@happy.cygnus.com>
* misc/tst-efgcvt.c: Add more tests.
* misc/efgcvt_r.c: Correct result for above new tests.
1998-02-06 17:22 H.J. Lu <hjl@gnu.org>
* misc/efgcvt_r.c (fcvt_r, ecvt_r): Correctly handle
NDIGIT <= 0.
1998-02-10 16:48 Philip Blundell <pb@nexus.co.uk>
* Makerules (install-no-libc.a-nosubdir): Don't install-bin (etc)
if the programs weren't built.
1998-02-09 10:12 Philip Blundell <pb@nexus.co.uk>
* sysdeps/libm-ieee754/s_exp2.c (__ieee754_exp2): If we don't have
FE_TONEAREST, soldier on regardless and do the best we can.
* sysdeps/libm-ieee754/s_exp2f.c (__ieee754_exp2f): likewise.
1998-02-5 17:20 Philip Blundell <pb@nexus.co.uk>
* sysdeps/standalone/filedesc.h: Define __need_FOPEN_MAX, not
_STDIO_H, before including <bits/stdio_lim.h>.
* sysdeps/standalone/arm/bits/errno.h (EOVERFLOW): Added.
* io/fts.c (fts_build): Don't try to use d_type if it doesn't
exist.
* sysdeps/arm/sys/ucontext.h: New file.
1998-02-04 10:11 Philip Blundell <pb@nexus.co.uk>
* manual/stdio.texi (Formatted Output Functions): Explicitly say
that the return value from snprintf() does not count the
terminating NUL as a character.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* manual/users.texi: Rewrite to describe correct POSIX behaviour,
add description for sete[ug]id and general cleanup.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (parent-clean): Don't remove makefile fragments here.
(postclean): New variable.
(clean): Remove makefile fragments here.
(realclean distclean): Likewise. Pass sysdep-subdirs to sub-make.
(generated): Add isomac and isomanc.out.
* Makeconfig ($(common-objpfx)soversions.mk): Don't generate if
avoid-generated is set.
(postclean-generated): Add soversion.mk.
($(common-objpfx)version.mk): Don't include if avoid-generated is
set.
* Makerules: Still need to include $(+sysdir_pfx)sysd-Makefile if
avoid-generated is set.
(common-generated): Add libc.so and libc.so$(libc.so-version).
(generated): Add versioned libraries.
(common-mostlyclean): Also remove %.so and %_pic.a.
* csu/Makefile (generated): Add abi-tag.h.
* db2/Makefile (extra-objs): Add getlong.o.
* elf/Makefile (generated): Add ld.so, ldd and
$(rtld-installed-name).
(others): Add ldconfig here instead of ldconfig.o to extra-objs.
* malloc/Makefile (generated): Add mtrace.
* po/Makefile: Don't include version.mk, not needed any more.
* sunrpc/Makefile (generated): Add rpc-proto.d and rpcgen.
* sysdeps/unix/Makefile: Fix local_lim.h -> bits/local_lim.h,
syscall.h -> sys/syscall.h.
(common-generated): Add s-proto.d.
(postclean-generated): Add sysd-syscalls.
* localedata/Makefile (test-output): Add all output files.
(generated): Add test-input and test-output.
(generated-dirs): Add all the dirs.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (test-output, generated, generated-dirs): New
variables.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* resolv/nss_dns/dns-host.c: Various code cleanups.
1998-02-09 08:10 H.J. Lu <hjl@gnu.org>
* resolv/gethnamaddr.c (getanswer): Fix the PTR/CNAME bug.
From Philip Blundell <pb@nexus.co.uk>.
* resolv/nss_dns/dns-host.c (getanswer_r): Ditto.
1998-02-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* libc.map: Add .rem, .div, .mul, .udiv, .umul, .urem for Sparc.
Suggested by debian/sparc porters.
1998-02-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* misc/tst-efgcvt.c: Totally rewritten, added a lot of new tests
for ecvt and fcvt.
1998-02-10 16:32 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Use __xstat and
__fxstat instead of stat and fstat. Use namespace clean __stpcpy.
* signal/signal.h: Always define sigset_t if __need_sigset_t is
defined even if __USE_POSIX is not defined.
1998-02-02 20:51 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Correct last patch
to support obsolete tty major numbers correctly.
1998-02-02 08:47 H.J. Lu <hjl@gnu.org>
* login/Makefile ($(inst_libexecdir)/pt_chown): Make the target
directory first and ignore install error.
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Substract
128 from ptyno and fix a typo for the BSD style pty.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Depend on all
syscalls.list's.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
getresuid and getresgid.
* sysdeps/unix/sysv/linux/getresuid.c: New file.
* sysdeps/unix/sysv/linux/getresgid.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Remove getres[ug]id, add
s_getres[ug]id.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add getres[ug]id.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
1998-02-02 08:11 H.J. Lu <hjl@gnu.org>
* nscd/grpcache.c: Include <stdlib.h>.
1998-02-01 16:01 H.J. Lu <hjl@gnu.org>
* stdlib/atoll.c: Fix comments.
* sysdeps/posix/ttyname.c: Ignore stdin/stdout/stderr.
* sysdeps/posix/ttyname_r.c: Ditto.
1998-02-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/sys/stat.h: Define S_IFLNK and S_IFSOCK if __USE_BSD or
__USE_MISC, independent of __USE_UNIX98.
1998-02-10 19:18 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
1998-02-04 11:58 Richard Henderson <rth@twiddle.rth.home>
* Makeconfig (CFLAGS-.os): Kill -fno-common.
* Makerules (libc.so): Prelink libc_pic.a, allocating commons.
* libc.map (GLIBC_2.1): Add Linux/Alpha tv64 symbols.
* elf/rtld.map: New file. Needed to define the GLIBC_2.*
version symbols.
* include/libc-symbols.h (symbol_version, default_symbol_version):
Provide asm versions and correct !DO_VERSIONING versions.
* sysdeps/unix/make-syscalls.sh: Recognize version symbols in
the weak symbol list.
* sysdeps/unix/sysv/linux/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
* sysdeps/unix/sysv/linux/sigpending.c: Likewise.
* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
1998-02-04 16:41 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sunrpc/Makefile: Correct dependencies of rpcgen.
1998-02-10 03:00 Ulrich Drepper <drepper@happy.cygnus.com>
* nscd/Makefile: Fix test for available linuxthreads add-on.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-02-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/syscalls.list: Fix typo in lchown.
1998-02-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/gnu/Makefile: Respect with-cvs variable.
* manual/errno.texi (Error Messages): Correct description of
strerror_r. Pointed out by jonas@bagge.se.
1998-01-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/socket.texi (Host Address Functions): Clarify description
of inet_network.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/grantpt.c (argv): Move const to toplevel.
(grantpt): Delete superfluous cast.
1998-02-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile ($(inst_slibdir)/libc-$(version).so): Depend on
elf/ldso_install instead of elf/subdir_install.
(elf/ldso_install): New target.
* elf/Makefile (ldso_install): New target.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/powerpc/socket.S: Really do the change
of 1998-01-06.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h (strcmp): Use __string2_1bptr_p only for
constant expressions.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nss/test-netdb.c: Include <unistd.h> for gethostname and "nss.h"
for __nss_configure_lookup.
(output_hostent): Remove unused variable.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/tst-inlcall.c: Fix format string.
1998-02-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* inet/netinet/in.h: Rename second parameter of bindresvport to
avoid buggy gcc warning. [PR libc/412]
1998-02-11 04:06:30 +08:00
|
|
|
|
?? What do I need for C++ development?
|
|
|
|
|
|
1998-11-21 01:27:47 +08:00
|
|
|
|
{HJ,AJ} You need either egcs 1.1 which comes directly with libstdc++ or
|
|
|
|
|
gcc-2.8.1 together with libstdc++ 2.8.1.1. egcs 1.1 has the better C++
|
|
|
|
|
support and works directly with glibc 2.1. If you use gcc-2.8.1 with
|
|
|
|
|
libstdc++ 2.8.1.1, you need to modify libstdc++ a bit. A patch is available
|
|
|
|
|
as:
|
1999-05-16 07:31:55 +08:00
|
|
|
|
<ftp://alpha.gnu.org/gnu/libstdc++-2.8.1.1-glibc2.1-diff.gz>
|
1998-11-21 01:27:47 +08:00
|
|
|
|
|
|
|
|
|
Please note that libg++ 2.7.2 (and the Linux Versions 2.7.2.x) doesn't work
|
|
|
|
|
very well with the GNU C library due to vtable thunks. If you're upgrading
|
|
|
|
|
from glibc 2.0.x to 2.1 you have to recompile libstdc++ since the library
|
|
|
|
|
compiled for 2.0 is not compatible due to the new Large File Support (LFS)
|
|
|
|
|
in version 2.1.
|
1998-10-25 17:16:51 +08:00
|
|
|
|
|
|
|
|
|
{UD} But since in the case of a shared libstdc++ the version numbers should
|
|
|
|
|
be different existing programs will continue to work.
|
Update.
1998-02-10 23:57 Ulrich Drepper <drepper@happy.cygnus.com>
* misc/tst-efgcvt.c: Add more tests.
* misc/efgcvt_r.c: Correct result for above new tests.
1998-02-06 17:22 H.J. Lu <hjl@gnu.org>
* misc/efgcvt_r.c (fcvt_r, ecvt_r): Correctly handle
NDIGIT <= 0.
1998-02-10 16:48 Philip Blundell <pb@nexus.co.uk>
* Makerules (install-no-libc.a-nosubdir): Don't install-bin (etc)
if the programs weren't built.
1998-02-09 10:12 Philip Blundell <pb@nexus.co.uk>
* sysdeps/libm-ieee754/s_exp2.c (__ieee754_exp2): If we don't have
FE_TONEAREST, soldier on regardless and do the best we can.
* sysdeps/libm-ieee754/s_exp2f.c (__ieee754_exp2f): likewise.
1998-02-5 17:20 Philip Blundell <pb@nexus.co.uk>
* sysdeps/standalone/filedesc.h: Define __need_FOPEN_MAX, not
_STDIO_H, before including <bits/stdio_lim.h>.
* sysdeps/standalone/arm/bits/errno.h (EOVERFLOW): Added.
* io/fts.c (fts_build): Don't try to use d_type if it doesn't
exist.
* sysdeps/arm/sys/ucontext.h: New file.
1998-02-04 10:11 Philip Blundell <pb@nexus.co.uk>
* manual/stdio.texi (Formatted Output Functions): Explicitly say
that the return value from snprintf() does not count the
terminating NUL as a character.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* manual/users.texi: Rewrite to describe correct POSIX behaviour,
add description for sete[ug]id and general cleanup.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (parent-clean): Don't remove makefile fragments here.
(postclean): New variable.
(clean): Remove makefile fragments here.
(realclean distclean): Likewise. Pass sysdep-subdirs to sub-make.
(generated): Add isomac and isomanc.out.
* Makeconfig ($(common-objpfx)soversions.mk): Don't generate if
avoid-generated is set.
(postclean-generated): Add soversion.mk.
($(common-objpfx)version.mk): Don't include if avoid-generated is
set.
* Makerules: Still need to include $(+sysdir_pfx)sysd-Makefile if
avoid-generated is set.
(common-generated): Add libc.so and libc.so$(libc.so-version).
(generated): Add versioned libraries.
(common-mostlyclean): Also remove %.so and %_pic.a.
* csu/Makefile (generated): Add abi-tag.h.
* db2/Makefile (extra-objs): Add getlong.o.
* elf/Makefile (generated): Add ld.so, ldd and
$(rtld-installed-name).
(others): Add ldconfig here instead of ldconfig.o to extra-objs.
* malloc/Makefile (generated): Add mtrace.
* po/Makefile: Don't include version.mk, not needed any more.
* sunrpc/Makefile (generated): Add rpc-proto.d and rpcgen.
* sysdeps/unix/Makefile: Fix local_lim.h -> bits/local_lim.h,
syscall.h -> sys/syscall.h.
(common-generated): Add s-proto.d.
(postclean-generated): Add sysd-syscalls.
* localedata/Makefile (test-output): Add all output files.
(generated): Add test-input and test-output.
(generated-dirs): Add all the dirs.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (test-output, generated, generated-dirs): New
variables.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* resolv/nss_dns/dns-host.c: Various code cleanups.
1998-02-09 08:10 H.J. Lu <hjl@gnu.org>
* resolv/gethnamaddr.c (getanswer): Fix the PTR/CNAME bug.
From Philip Blundell <pb@nexus.co.uk>.
* resolv/nss_dns/dns-host.c (getanswer_r): Ditto.
1998-02-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* libc.map: Add .rem, .div, .mul, .udiv, .umul, .urem for Sparc.
Suggested by debian/sparc porters.
1998-02-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* misc/tst-efgcvt.c: Totally rewritten, added a lot of new tests
for ecvt and fcvt.
1998-02-10 16:32 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Use __xstat and
__fxstat instead of stat and fstat. Use namespace clean __stpcpy.
* signal/signal.h: Always define sigset_t if __need_sigset_t is
defined even if __USE_POSIX is not defined.
1998-02-02 20:51 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Correct last patch
to support obsolete tty major numbers correctly.
1998-02-02 08:47 H.J. Lu <hjl@gnu.org>
* login/Makefile ($(inst_libexecdir)/pt_chown): Make the target
directory first and ignore install error.
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Substract
128 from ptyno and fix a typo for the BSD style pty.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Depend on all
syscalls.list's.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
getresuid and getresgid.
* sysdeps/unix/sysv/linux/getresuid.c: New file.
* sysdeps/unix/sysv/linux/getresgid.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Remove getres[ug]id, add
s_getres[ug]id.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add getres[ug]id.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
1998-02-02 08:11 H.J. Lu <hjl@gnu.org>
* nscd/grpcache.c: Include <stdlib.h>.
1998-02-01 16:01 H.J. Lu <hjl@gnu.org>
* stdlib/atoll.c: Fix comments.
* sysdeps/posix/ttyname.c: Ignore stdin/stdout/stderr.
* sysdeps/posix/ttyname_r.c: Ditto.
1998-02-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/sys/stat.h: Define S_IFLNK and S_IFSOCK if __USE_BSD or
__USE_MISC, independent of __USE_UNIX98.
1998-02-10 19:18 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
1998-02-04 11:58 Richard Henderson <rth@twiddle.rth.home>
* Makeconfig (CFLAGS-.os): Kill -fno-common.
* Makerules (libc.so): Prelink libc_pic.a, allocating commons.
* libc.map (GLIBC_2.1): Add Linux/Alpha tv64 symbols.
* elf/rtld.map: New file. Needed to define the GLIBC_2.*
version symbols.
* include/libc-symbols.h (symbol_version, default_symbol_version):
Provide asm versions and correct !DO_VERSIONING versions.
* sysdeps/unix/make-syscalls.sh: Recognize version symbols in
the weak symbol list.
* sysdeps/unix/sysv/linux/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
* sysdeps/unix/sysv/linux/sigpending.c: Likewise.
* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
1998-02-04 16:41 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sunrpc/Makefile: Correct dependencies of rpcgen.
1998-02-10 03:00 Ulrich Drepper <drepper@happy.cygnus.com>
* nscd/Makefile: Fix test for available linuxthreads add-on.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-02-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/syscalls.list: Fix typo in lchown.
1998-02-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/gnu/Makefile: Respect with-cvs variable.
* manual/errno.texi (Error Messages): Correct description of
strerror_r. Pointed out by jonas@bagge.se.
1998-01-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/socket.texi (Host Address Functions): Clarify description
of inet_network.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/grantpt.c (argv): Move const to toplevel.
(grantpt): Delete superfluous cast.
1998-02-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile ($(inst_slibdir)/libc-$(version).so): Depend on
elf/ldso_install instead of elf/subdir_install.
(elf/ldso_install): New target.
* elf/Makefile (ldso_install): New target.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/powerpc/socket.S: Really do the change
of 1998-01-06.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h (strcmp): Use __string2_1bptr_p only for
constant expressions.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nss/test-netdb.c: Include <unistd.h> for gethostname and "nss.h"
for __nss_configure_lookup.
(output_hostent): Remove unused variable.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/tst-inlcall.c: Fix format string.
1998-02-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* inet/netinet/in.h: Rename second parameter of bindresvport to
avoid buggy gcc warning. [PR libc/412]
1998-02-11 04:06:30 +08:00
|
|
|
|
|
1998-04-08 00:19:36 +08:00
|
|
|
|
?? Even statically linked programs need some shared libraries
|
|
|
|
|
which is not acceptable for me. What can I do?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{AJ} NSS (for details just type `info libc "Name Service Switch"') won't
|
|
|
|
|
work properly without shared libraries. NSS allows using different services
|
|
|
|
|
(e.g. NIS, files, db, hesiod) by just changing one configuration file
|
|
|
|
|
(/etc/nsswitch.conf) without relinking any programs. The only disadvantage
|
|
|
|
|
is that now static libraries need to access shared libraries. This is
|
|
|
|
|
handled transparently by the GNU C library.
|
1998-04-08 00:19:36 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
A solution is to configure glibc with --enable-static-nss. In this case you
|
|
|
|
|
can create a static binary that will use only the services dns and files
|
|
|
|
|
(change /etc/nsswitch.conf for this). You need to link explicitly against
|
|
|
|
|
all these services. For example:
|
1998-04-08 00:19:36 +08:00
|
|
|
|
|
2000-10-15 14:50:42 +08:00
|
|
|
|
gcc -static test-netdb.c -o test-netdb \
|
|
|
|
|
-Wl,--start-group -lc -lnss_files -lnss_dns -lresolv -Wl,--end-group
|
1998-04-08 00:19:36 +08:00
|
|
|
|
|
|
|
|
|
The problem with this approach is that you've got to link every static
|
|
|
|
|
program that uses NSS routines with all those libraries.
|
|
|
|
|
|
|
|
|
|
{UD} In fact, one cannot say anymore that a libc compiled with this
|
|
|
|
|
option is using NSS. There is no switch anymore. Therefore it is
|
|
|
|
|
*highly* recommended *not* to use --enable-static-nss since this makes
|
|
|
|
|
the behaviour of the programs on the system inconsistent.
|
|
|
|
|
|
1998-06-17 00:30:14 +08:00
|
|
|
|
?? I just upgraded my Linux system to glibc and now I get
|
|
|
|
|
errors whenever I try to link any program.
|
|
|
|
|
|
|
|
|
|
{ZW} This happens when you have installed glibc as the primary C library but
|
|
|
|
|
have stray symbolic links pointing at your old C library. If the first
|
|
|
|
|
`libc.so' the linker finds is libc 5, it will use that. Your program
|
|
|
|
|
expects to be linked with glibc, so the link fails.
|
|
|
|
|
|
|
|
|
|
The most common case is that glibc put its `libc.so' in /usr/lib, but there
|
|
|
|
|
was a `libc.so' from libc 5 in /lib, which gets searched first. To fix the
|
|
|
|
|
problem, just delete /lib/libc.so. You may also need to delete other
|
|
|
|
|
symbolic links in /lib, such as /lib/libm.so if it points to libm.so.5.
|
|
|
|
|
|
1998-06-18 01:59:25 +08:00
|
|
|
|
{AJ} The perl script test-installation.pl which is run as last step during
|
|
|
|
|
an installation of glibc that is configured with --prefix=/usr should help
|
|
|
|
|
detect these situations. If the script reports problems, something is
|
|
|
|
|
really screwed up.
|
|
|
|
|
|
1998-10-21 05:18:11 +08:00
|
|
|
|
?? When I use nscd the machine freezes.
|
|
|
|
|
|
1998-11-21 01:27:47 +08:00
|
|
|
|
{UD} You cannot use nscd with Linux 2.0.*. There is functionality missing
|
|
|
|
|
in the kernel and work-arounds are not suitable. Besides, some parts of the
|
|
|
|
|
kernel are too buggy when it comes to using threads.
|
1998-10-21 05:18:11 +08:00
|
|
|
|
|
1999-01-24 18:17:23 +08:00
|
|
|
|
If you need nscd, you have to use at least a 2.1 kernel.
|
1998-10-21 05:18:11 +08:00
|
|
|
|
|
|
|
|
|
Note that I have at this point no information about any other platform.
|
|
|
|
|
|
1998-11-25 23:42:34 +08:00
|
|
|
|
?? I need lots of open files. What do I have to do?
|
|
|
|
|
|
|
|
|
|
{AJ} This is at first a kernel issue. The kernel defines limits with
|
|
|
|
|
OPEN_MAX the number of simultaneous open files and with FD_SETSIZE the
|
|
|
|
|
number of used file descriptors. You need to change these values in your
|
2000-03-10 16:41:39 +08:00
|
|
|
|
kernel and recompile the kernel so that the kernel allows more open
|
1998-11-25 23:42:34 +08:00
|
|
|
|
files. You don't necessarily need to recompile the GNU C library since the
|
|
|
|
|
only place where OPEN_MAX and FD_SETSIZE is really needed in the library
|
|
|
|
|
itself is the size of fd_set which is used by select.
|
|
|
|
|
|
1999-08-03 04:04:56 +08:00
|
|
|
|
The GNU C library is now select free. This means it internally has no
|
|
|
|
|
limits imposed by the `fd_set' type. Instead all places where the
|
1998-11-25 23:42:34 +08:00
|
|
|
|
functionality is needed the `poll' function is used.
|
|
|
|
|
|
|
|
|
|
If you increase the number of file descriptors in the kernel you don't need
|
1999-11-18 02:52:42 +08:00
|
|
|
|
to recompile the C library.
|
1998-11-25 23:42:34 +08:00
|
|
|
|
|
|
|
|
|
{UD} You can always get the maximum number of file descriptors a process is
|
|
|
|
|
allowed to have open at any time using
|
|
|
|
|
|
|
|
|
|
number = sysconf (_SC_OPEN_MAX);
|
|
|
|
|
|
|
|
|
|
This will work even if the kernel limits change.
|
|
|
|
|
|
1998-12-16 19:10:36 +08:00
|
|
|
|
?? How do I get the same behavior on parsing /etc/passwd and
|
|
|
|
|
/etc/group as I have with libc5 ?
|
|
|
|
|
|
|
|
|
|
{TK} The name switch setup in /etc/nsswitch.conf selected by most Linux
|
|
|
|
|
distributions does not support +/- and netgroup entries in the files like
|
|
|
|
|
/etc/passwd. Though this is the preferred setup some people might have
|
|
|
|
|
setups coming over from the libc5 days where it was the default to recognize
|
|
|
|
|
lines like this. To get back to the old behaviour one simply has to change
|
|
|
|
|
the rules for passwd, group, and shadow in the nsswitch.conf file as
|
|
|
|
|
follows:
|
|
|
|
|
|
|
|
|
|
passwd: compat
|
|
|
|
|
group: compat
|
|
|
|
|
shadow: compat
|
|
|
|
|
|
|
|
|
|
passwd_compat: nis
|
|
|
|
|
group_compat: nis
|
|
|
|
|
shadow_compat: nis
|
|
|
|
|
|
1999-03-09 02:11:53 +08:00
|
|
|
|
??libs What needs to be recompiled when upgrading from glibc 2.0 to glibc
|
1999-01-21 00:12:52 +08:00
|
|
|
|
2.1?
|
|
|
|
|
|
|
|
|
|
{AJ,CG} If you just upgrade the glibc from 2.0.x (x <= 7) to 2.1, binaries
|
|
|
|
|
that have been linked against glibc 2.0 will continue to work.
|
|
|
|
|
|
|
|
|
|
If you compile your own binaries against glibc 2.1, you also need to
|
1999-11-24 01:47:25 +08:00
|
|
|
|
recompile some other libraries. The problem is that libio had to be changed
|
|
|
|
|
and therefore libraries that are based or depend on the libio of glibc,
|
|
|
|
|
e.g. ncurses, slang and most C++ libraries, need to be recompiled. If you
|
|
|
|
|
experience strange segmentation faults in your programs linked against glibc
|
|
|
|
|
2.1, you might need to recompile your libraries.
|
1999-01-21 00:12:52 +08:00
|
|
|
|
|
|
|
|
|
Another problem is that older binaries that were linked statically against
|
|
|
|
|
glibc 2.0 will reference the older nss modules (libnss_files.so.1 instead of
|
|
|
|
|
libnss_files.so.2), so don't remove them. Also, the old glibc-2.0 compiled
|
|
|
|
|
static libraries (libfoo.a) which happen to depend on the older libio
|
1999-01-21 22:17:43 +08:00
|
|
|
|
behavior will be broken by the glibc 2.1 upgrade. We plan to produce a
|
|
|
|
|
compatibility library that people will be able to link in if they want
|
|
|
|
|
to compile a static library generated against glibc 2.0 into a program
|
|
|
|
|
on a glibc 2.1 system. You just add -lcompat and you should be fine.
|
|
|
|
|
|
|
|
|
|
The glibc-compat add-on will provide the libcompat.a library, the older
|
|
|
|
|
nss modules, and a few other files. Together, they should make it
|
|
|
|
|
possible to do development with old static libraries on a glibc 2.1
|
1999-02-07 08:06:12 +08:00
|
|
|
|
system. This add-on is still in development. You can get it from
|
1999-10-12 04:17:13 +08:00
|
|
|
|
<ftp://alpha.gnu.org/gnu/glibc/glibc-compat-2.1.tar.gz>
|
1999-01-21 22:17:43 +08:00
|
|
|
|
but please keep in mind that it is experimental.
|
1998-11-25 23:42:34 +08:00
|
|
|
|
|
Update.
1999-01-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* sysdeps/wordsize-32/stdint.h (INT8_C, INT16_C, INT32_C, INT64_C,
UINT8_C, UINT16_C, UINT32_C, UINT64_C): Remove casts, they must be
integer constants. Use ## directly instead of __CONCAT so that
the suffix string is not expanded as a macro.
* sysdeps/wordsize-64/stdint.h (INT8_C, INT16_C, INT32_C, INT64_C,
UINT8_C, UINT16_C, UINT32_C, UINT64_C): Likewise.
(INT64_MIN, INT64_MAX, UINT64_MAX, INT_LEAST64_MIN,
INT_LEAST64_MAX, UINT_LEAST64_MAX, INT_FAST16_MIN, INT_FAST32_MIN,
INT_FAST64_MIN, INT_FAST16_MAX, INT_FAST32_MAX, INT_FAST64_MAX,
UINT_FAST16_MAX, UINT_FAST32_MAX, UINT_FAST64_MAX, INTMAX_MIN,
INTMAX_MAX, UINTMAX_MAX): Define as long constants, not long long.
1999-01-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* locale/mb_cur_max.c (__ctype_get_mb_cur_max): Correct return
type to size_t.
* locale/broken_cur_max.c (__ctype_get_mb_cur_max): Likewise.
* stdlib/stdlib.h (__ctype_get_mb_cur_max): Likewise.
1999-01-27 Philip Blundell <pb@nexus.co.uk>
* sysdeps/unix/sysv/linux/arm/vfork.S: Deleted.
1999-01-29 17:01:50 +08:00
|
|
|
|
?? Why is extracting files via tar so slow?
|
|
|
|
|
|
|
|
|
|
{AJ} Extracting of tar archives might be quite slow since tar has to look up
|
|
|
|
|
userid and groupids and doesn't cache negative results. If you have nis or
|
|
|
|
|
nisplus in your /etc/nsswitch.conf for the passwd and/or group database,
|
|
|
|
|
each file extractions needs a network connection. There are two possible
|
|
|
|
|
solutions:
|
|
|
|
|
|
|
|
|
|
- do you really need NIS/NIS+ (some Linux distributions add by default
|
|
|
|
|
nis/nisplus even if it's not needed)? If not, just remove the entries.
|
|
|
|
|
|
|
|
|
|
- if you need NIS/NIS+, use the Name Service Cache Daemon nscd that comes
|
|
|
|
|
with glibc 2.1.
|
|
|
|
|
|
1999-02-27 18:59:20 +08:00
|
|
|
|
?? Compiling programs I get parse errors in libio.h (e.g. "parse error
|
|
|
|
|
before `_IO_seekoff'"). How should I fix this?
|
|
|
|
|
|
|
|
|
|
{AJ} You might get the following errors when upgrading to glibc 2.1:
|
|
|
|
|
|
|
|
|
|
In file included from /usr/include/stdio.h:57,
|
|
|
|
|
from ...
|
|
|
|
|
/usr/include/libio.h:335: parse error before `_IO_seekoff'
|
|
|
|
|
/usr/include/libio.h:335: parse error before `_G_off64_t'
|
|
|
|
|
/usr/include/libio.h:336: parse error before `_IO_seekpos'
|
|
|
|
|
/usr/include/libio.h:336: parse error before `_G_fpos64_t'
|
|
|
|
|
|
|
|
|
|
The problem is a wrong _G_config.h file in your include path. The
|
|
|
|
|
_G_config.h file that comes with glibc 2.1 should be used and not one from
|
|
|
|
|
libc5 or from a compiler directory. To check which _G_config.h file the
|
|
|
|
|
compiler uses, compile your program with `gcc -E ...|grep G_config.h' and
|
|
|
|
|
remove that file. Your compiler should pick up the file that has been
|
|
|
|
|
installed by glibc 2.1 in your include directory.
|
|
|
|
|
|
1999-03-09 02:11:53 +08:00
|
|
|
|
?? After upgrading to glibc 2.1, libraries that were compiled against
|
|
|
|
|
glibc 2.0.x don't work anymore.
|
|
|
|
|
|
|
|
|
|
{AJ} See ?libs.
|
|
|
|
|
|
2000-01-26 10:07:07 +08:00
|
|
|
|
??nssdb What happened to the Berkeley DB libraries? Can I still use db
|
|
|
|
|
in /etc/nsswitch.conf?
|
|
|
|
|
|
|
|
|
|
{AJ} Due to too many incompatible changes in disk layout and API of Berkeley
|
|
|
|
|
DB and a too tight coupling of libc and libdb, the db library has been
|
|
|
|
|
removed completely from glibc 2.2. The only place that really used the
|
|
|
|
|
Berkeley DB was the NSS db module.
|
|
|
|
|
|
|
|
|
|
The NSS db module has been rewritten to support a number of different
|
|
|
|
|
versions of Berkeley DB for the NSS db module. Currently the releases 2.x
|
|
|
|
|
and 3.x of Berkeley DB are supported. The older db 1.85 library is not
|
|
|
|
|
supported. You can use the version from glibc 2.1.x or download a version
|
|
|
|
|
from Sleepycat Software (http://www.sleepycat.com). The library has to be
|
|
|
|
|
compiled as shared library and installed in the system lib directory
|
|
|
|
|
(normally /lib). The library needs to have a special soname to be found by
|
|
|
|
|
the NSS module.
|
|
|
|
|
|
|
|
|
|
If public structures change in a new Berkeley db release, this needs to be
|
|
|
|
|
reflected in glibc.
|
|
|
|
|
|
|
|
|
|
Currently the code searches for libraries with a soname of "libdb.so.3"
|
|
|
|
|
(that's the name from db 2.4.14 which comes with glibc 2.1.x) and
|
|
|
|
|
"libdb-3.0.so" (the name used by db 3.0.55 as default).
|
|
|
|
|
|
2000-10-24 23:36:52 +08:00
|
|
|
|
The nss_db module is now in a separate package since it requires a database
|
|
|
|
|
library being available.
|
|
|
|
|
|
|
|
|
|
?? What has do be done when upgrading to glibc 2.2?
|
|
|
|
|
|
|
|
|
|
{AJ} The upgrade to glibc 2.2 should run smoothly, there's in general no
|
|
|
|
|
need to recompile programs or libraries. Nevertheless, some changes might
|
|
|
|
|
be needed after upgrading:
|
|
|
|
|
- The utmp daemon has been removed and is not supported by glibc anymore.
|
|
|
|
|
If it has been in use, it should be switched off.
|
|
|
|
|
- Programs using IPv6 have to be recompiled due to incompatible changes in
|
|
|
|
|
sockaddr_in6 by the IPv6 working group.
|
2001-01-14 00:52:03 +08:00
|
|
|
|
- The Berkeley db libraries have been removed (for details see ?nssdb).
|
2000-10-24 23:36:52 +08:00
|
|
|
|
- The format of the locale files has changed, all locales should be
|
|
|
|
|
regenerated with localedef. All statically linked applications which use
|
|
|
|
|
i18n should be recompiled, otherwise they'll not be localized.
|
|
|
|
|
- glibc comes with a number of new applications. For example ldconfig has
|
|
|
|
|
been implemented for glibc, the libc5 version of ldconfig is not needed
|
|
|
|
|
anymore.
|
|
|
|
|
- There's no more K&R compatibility in the glibc headers. The GNU C library
|
|
|
|
|
requires a C compiler that handles especially prototypes correctly.
|
2000-10-26 01:30:55 +08:00
|
|
|
|
Especially gcc -traditional will not work with glibc headers.
|
2000-10-24 23:36:52 +08:00
|
|
|
|
|
|
|
|
|
Please read also the NEWS file which is the authoritative source for this
|
|
|
|
|
and gives more details for some topics.
|
|
|
|
|
|
2000-11-02 00:33:25 +08:00
|
|
|
|
?? The makefiles want to do a CVS commit.
|
|
|
|
|
|
|
|
|
|
{UD} Only if you are not specifying the --without-cvs flag at configure
|
|
|
|
|
time. This is what you always have to use if you are checking sources
|
|
|
|
|
directly out of the public CVS repository or you have your own private
|
|
|
|
|
repository.
|
|
|
|
|
|
2000-11-07 08:26:45 +08:00
|
|
|
|
?? When compiling C++ programs, I get a compilation error in streambuf.h.
|
|
|
|
|
|
|
|
|
|
{BH} You are using g++ 2.95.2? After upgrading to glibc 2.2, you need to
|
|
|
|
|
apply a patch to the include files in /usr/include/g++, because the fpos_t
|
|
|
|
|
type has changed in glibc 2.2. The patch is at
|
2002-10-03 08:24:35 +08:00
|
|
|
|
|
|
|
|
|
http://www.haible.de/bruno/gccinclude-glibc-2.2-compat.diff
|
2000-11-07 08:26:45 +08:00
|
|
|
|
|
|
|
|
|
?? When recompiling GCC, I get compilation errors in libio.
|
|
|
|
|
|
2001-03-27 13:32:26 +08:00
|
|
|
|
{BH} You are trying to recompile gcc 2.95.2? Use gcc 2.95.3 instead.
|
2001-01-12 15:29:55 +08:00
|
|
|
|
This version is needed because the fpos_t type and a few libio internals
|
2001-03-27 13:32:26 +08:00
|
|
|
|
have changed in glibc 2.2, and gcc 2.95.3 contains a corresponding patch.
|
2000-11-07 08:26:45 +08:00
|
|
|
|
|
2002-05-20 02:37:21 +08:00
|
|
|
|
?? Why shall glibc never get installed on GNU/Linux systems in
|
|
|
|
|
/usr/local?
|
|
|
|
|
|
|
|
|
|
{AJ} The GNU C compiler treats /usr/local/include and /usr/local/lib in a
|
|
|
|
|
special way, these directories will be searched before the system
|
|
|
|
|
directories. Since on GNU/Linux the system directories /usr/include and
|
|
|
|
|
/usr/lib contain a --- possibly different --- version of glibc and mixing
|
|
|
|
|
certain files from different glibc installations is not supported and will
|
|
|
|
|
break, you risk breaking your complete system. If you want to test a glibc
|
|
|
|
|
installation, use another directory as argument to --prefix. If you like to
|
|
|
|
|
install this glibc version as default version, overriding the existing one,
|
|
|
|
|
use --prefix=/usr and everything will go in the right places.
|
|
|
|
|
|
2002-10-03 08:24:35 +08:00
|
|
|
|
?? When recompiling GCC, I get compilation errors in libstdc++.
|
|
|
|
|
|
|
|
|
|
{BH} You are trying to recompile gcc 3.2? You need to patch gcc 3.2,
|
|
|
|
|
because some last minute changes were made in glibc 2.3 which were not
|
|
|
|
|
known when gcc 3.2 was released. The patch is at
|
|
|
|
|
|
|
|
|
|
http://www.haible.de/bruno/gcc-3.2-glibc-2.3-compat.diff
|
|
|
|
|
|
1997-12-05 08:40:29 +08:00
|
|
|
|
? Source and binary incompatibilities, and what to do about them
|
|
|
|
|
|
|
|
|
|
?? I expect GNU libc to be 100% source code compatible with
|
|
|
|
|
the old Linux based GNU libc. Why isn't it like this?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{DMT,UD} Not every extension in Linux libc's history was well thought-out.
|
|
|
|
|
In fact it had a lot of problems with standards compliance and with
|
|
|
|
|
cleanliness. With the introduction of a new version number these errors can
|
|
|
|
|
now be corrected. Here is a list of the known source code
|
1997-12-05 08:40:29 +08:00
|
|
|
|
incompatibilities:
|
|
|
|
|
|
|
|
|
|
* _GNU_SOURCE: glibc does not make the GNU extensions available
|
|
|
|
|
automatically. If a program depends on GNU extensions or some
|
|
|
|
|
other non-standard functionality, it is necessary to compile it
|
|
|
|
|
with the C compiler option -D_GNU_SOURCE, or better, to put
|
|
|
|
|
`#define _GNU_SOURCE' at the beginning of your source files, before
|
|
|
|
|
any C library header files are included. This difference normally
|
|
|
|
|
manifests itself in the form of missing prototypes and/or data type
|
|
|
|
|
definitions. Thus, if you get such errors, the first thing you
|
|
|
|
|
should do is try defining _GNU_SOURCE and see if that makes the
|
|
|
|
|
problem go away.
|
|
|
|
|
|
|
|
|
|
For more information consult the file `NOTES' in the GNU C library
|
|
|
|
|
sources.
|
|
|
|
|
|
|
|
|
|
* reboot(): GNU libc sanitizes the interface of reboot() to be more
|
|
|
|
|
compatible with the interface used on other OSes. reboot() as
|
|
|
|
|
implemented in glibc takes just one argument. This argument
|
|
|
|
|
corresponds to the third argument of the Linux reboot system call.
|
|
|
|
|
That is, a call of the form reboot(a, b, c) needs to be changed into
|
|
|
|
|
reboot(c). Beside this the header <sys/reboot.h> defines the needed
|
|
|
|
|
constants for the argument. These RB_* constants should be used
|
|
|
|
|
instead of the cryptic magic numbers.
|
|
|
|
|
|
|
|
|
|
* swapon(): the interface of this function didn't change, but the
|
|
|
|
|
prototype is in a separate header file <sys/swap.h>. This header
|
|
|
|
|
file also provides the SWAP_* constants defined by <linux/swap.h>;
|
|
|
|
|
you should use them for the second argument to swapon().
|
|
|
|
|
|
|
|
|
|
* errno: If a program uses the variable "errno", then it _must_
|
|
|
|
|
include <errno.h>. The old libc often (erroneously) declared this
|
|
|
|
|
variable implicitly as a side-effect of including other libc header
|
|
|
|
|
files. glibc is careful to avoid such namespace pollution, which,
|
|
|
|
|
in turn, means that you really need to include the header files that
|
|
|
|
|
you depend on. This difference normally manifests itself in the
|
|
|
|
|
form of the compiler complaining about references to an undeclared
|
|
|
|
|
symbol "errno".
|
|
|
|
|
|
|
|
|
|
* Linux-specific syscalls: All Linux system calls now have appropriate
|
|
|
|
|
library wrappers and corresponding declarations in various header files.
|
|
|
|
|
This is because the syscall() macro that was traditionally used to
|
|
|
|
|
work around missing syscall wrappers are inherently non-portable and
|
|
|
|
|
error-prone. The following table lists all the new syscall stubs,
|
|
|
|
|
the header-file declaring their interface and the system call name.
|
|
|
|
|
|
|
|
|
|
syscall name: wrapper name: declaring header file:
|
|
|
|
|
------------- ------------- ----------------------
|
|
|
|
|
bdflush bdflush <sys/kdaemon.h>
|
|
|
|
|
syslog ksyslog_ctl <sys/klog.h>
|
|
|
|
|
|
|
|
|
|
* lpd: Older versions of lpd depend on a routine called _validuser().
|
|
|
|
|
The library does not provide this function, but instead provides
|
|
|
|
|
__ivaliduser() which has a slightly different interface. Simply
|
|
|
|
|
upgrading to a newer lpd should fix this problem (e.g., the 4.4BSD
|
|
|
|
|
lpd is known to be working).
|
|
|
|
|
|
|
|
|
|
* resolver functions/BIND: like on many other systems the functions of
|
|
|
|
|
the resolver library are not included in libc itself. There is a
|
|
|
|
|
separate library libresolv. If you get undefined symbol errors for
|
|
|
|
|
symbols starting with `res_*' simply add -lresolv to your linker
|
|
|
|
|
command line.
|
|
|
|
|
|
|
|
|
|
* the `signal' function's behavior corresponds to the BSD semantic and
|
|
|
|
|
not the SysV semantic as it was in libc-5. The interface on all GNU
|
|
|
|
|
systems shall be the same and BSD is the semantic of choice. To use
|
|
|
|
|
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?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{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 fulfill the needs
|
|
|
|
|
of the next years when IPv6 is introduced. The record size is different and
|
|
|
|
|
some fields have different positions. The files written by functions from
|
|
|
|
|
the one library cannot be read by functions from the other library. Sorry,
|
|
|
|
|
but this is what a major release is for. It's better to have a cut now than
|
|
|
|
|
having no means to support the new techniques later.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
?? Where are the DST_* constants found in <sys/time.h> on many
|
|
|
|
|
systems?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{UD} These constants come from the old BSD days and are not used anymore
|
|
|
|
|
(libc5 does not actually implement the handling although the constants are
|
|
|
|
|
defined).
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
Instead GNU libc contains zone database support and compatibility code for
|
1999-01-20 19:36:34 +08:00
|
|
|
|
POSIX TZ environment variable handling. For former is very much preferred
|
|
|
|
|
(see ?tzdb).
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
?? 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?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{UD} No, this is no bug. This version of GNU libc already follows the new
|
|
|
|
|
Single Unix specifications (and I think the POSIX.1g draft which adopted the
|
|
|
|
|
solution). The type for a parameter describing a size is now `socklen_t', a
|
|
|
|
|
new type.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
??kerhdr On Linux I've got problems with the declarations in Linux
|
|
|
|
|
kernel headers.
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{UD,AJ} On Linux, the use of kernel headers is reduced to the minimum. This
|
|
|
|
|
gives Linus the ability to change the headers more freely. Also, user
|
Update.
1998-07-20 17:09 Ulrich Drepper <drepper@cygnus.com>
* shlib-versions: Remove definition for libSegFault.
* memory.texi: Comment out the relocating allocator description.
* manual/signal.texi: Remove reference to relocating allocator.
* manual/top-menu.texi: Regenerated.
* posix/fnmatch.c: Implement [: :] and change to recognize
^ as negation only when not _POSIXLY_CORRECT.
* sysdeps/generic/glob.c: Add several optimizations.
* posix/glob.h: Undefine __PMT to prevent warnings.
Reported by Roland McGrath.
* posix/regex.c: Define namespace macros only for _LIBC.
* sysdeps/arm/dl-machine.h: Fix typo.
* sysdeps/unix/sysv/sysv4/solaris2/sigpending.c: New file.
* sysdeps/unix/sysv/sysv4/solaris2/sigstack.c: New file.
* sysdeps/unix/sysv/sysv4/solaris2/sigwaitinfo.c: New file.
* sysdeps/unix/sysv/sysv4/solaris2/syscalls.list: Add sigaltstack,
sigpending, sigqueue, and sigtimedwait.
* sysdeps/unix/sysv/sysv4/solaris2/sparc/sparc32/syscall.S: New file.
* timezone/leapseconds: Update from tzdata1998f.
1998-07-18 Mark Kettenis <kettenis@phys.uva.nl>
* stdio/stdio.h [__USE_GNU]: Add prototype for fputs_unlocked.
* stdio/Versions [GLIBC_2.1]: Add fputs_unlocked.
* libio/stdio.h: Fix typo.
1998-07-19 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): #if 0 out the
magic memobj port arg parsing stuff. Fix it someday when we are ready
to really use it.
(_dl_sysdep_output): New function, modified from _dl_sysdep_error.
(_dl_sysdep_error, _dl_sysdep_message, _dl_sysdep_fatal): Removed.
1998-07-19 Roland McGrath <roland@baalperazim.frob.com>
* stdio/fputs.c: Add fputs_unlocked as weak alias for fputs.
1998-07-19 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/posix/sigsuspend.c: Define __sigsuspend with sigsuspend as
a weak alias.
* sysdeps/mach/hurd/sigsuspend.c: Likewise.
* sysdeps/generic/sigsuspend.c: Likewise.
1998-07-19 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/mach/hurd/i386/sigcontextinfo.h: New file.
1998-07-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makerules (map-file): Don't use $(wildcard) to find the
generated version script, instead look in $(version-maps).
($(common-objpfx)libc.so): Only depend on libc.map if versioning
is used.
* extra-lib.mk ($(objpfx)$(lib).so): Only depend on version script
if versioning is used. Don't use $(wildcard) to find the
generated version script, instead look in $(verson-maps).
1998-07-17 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/generic/segfault.c: Rename GET_EIP to GET_PC. Remove
unused function handle.
* sysdeps/generic/sigcontextinfo.h: Rename GET_EIP to GET_PC.
* sysdeps/unix/sysv/linux/i386/sigcontextinfo.h: Likewise.
* debug/catchsegv.sh: Fix argument processing, quoting and various
typos. Put the crash info always in the current directory. Find
program in $PATH if it contains no directory component.
* Makerules (install-lib.so-versioned,
install-lib.so-unversioned): New variables.
(install-lib-nosubdir): Depend on unversioned libs in
slibdir, not libdir.
1998-07-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Make-dist (+tsrcs): Remove references to %-map variables and
*.map files. Add Versions in subdirs.
* Makerules (distinfo-vars): Don't write out %-map variables.
1998-07-20 13:55 Ulrich Drepper <drepper@cygnus.com>
* inet/protocols/rwhod.h: Remove definition of _PATH_RWHODIR.
Include <paths.h> instead.
* sysdeps/generic/paths.h: Define _PATH_RWHODIR.
* sysdeps/unix/sysv/linux/paths.h: Likewise.
Reported by Dale Scheetz <dwarf@polaris.net>.
1998-07-17 21:44 Ulrich Drepper <drepper@cygnus.com>
* catgets/open_catalog.c: Strictly check whether catalog file is
larger enough for the data. Reported by Andries.Brouwer@cwi.nl.
1998-07-21 01:25:48 +08:00
|
|
|
|
programs are now insulated from changes in the size of kernel data
|
1998-04-21 17:43:11 +08:00
|
|
|
|
structures.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
For example, the sigset_t type is 32 or 64 bits wide in the kernel. In
|
|
|
|
|
glibc it is 1024 bits wide. This guarantees that when the kernel gets a
|
|
|
|
|
bigger sigset_t (for POSIX.1e realtime support, say) user programs will not
|
|
|
|
|
have to be recompiled. Consult the header files for more information about
|
|
|
|
|
the changes.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
Therefore you shouldn't include Linux kernel header files directly if glibc
|
|
|
|
|
has defined a replacement. Otherwise you might get undefined results because
|
|
|
|
|
of type conflicts.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
?? I don't include any kernel headers myself but the compiler
|
|
|
|
|
still complains about redeclarations of types in the kernel
|
|
|
|
|
headers.
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{UD} The kernel headers before Linux 2.1.61 and 2.0.32 don't work correctly
|
|
|
|
|
with glibc. Compiling C programs is possible in most cases but C++ programs
|
|
|
|
|
have (due to the change of the name lookups for `struct's) problems. One
|
|
|
|
|
prominent example is `struct fd_set'.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
There might be some problems left but 2.1.61/2.0.32 fix most of the known
|
|
|
|
|
ones. See the BUGS file for other known problems.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
??signal Why don't signals interrupt system calls anymore?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{ZW} By default GNU libc uses the BSD semantics for signal(), unlike Linux
|
|
|
|
|
libc 5 which used System V semantics. This is partially for compatibility
|
|
|
|
|
with other systems and partially because the BSD semantics tend to make
|
|
|
|
|
programming with signals easier.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
There are three differences:
|
|
|
|
|
|
|
|
|
|
* BSD-style signals that occur in the middle of a system call do not
|
|
|
|
|
affect the system call; System V signals cause the system call to
|
|
|
|
|
fail and set errno to EINTR.
|
|
|
|
|
|
|
|
|
|
* BSD signal handlers remain installed once triggered. System V signal
|
|
|
|
|
handlers work only once, so one must reinstall them each time.
|
|
|
|
|
|
|
|
|
|
* A BSD signal is blocked during the execution of its handler. In other
|
|
|
|
|
words, a handler for SIGCHLD (for example) does not need to worry about
|
|
|
|
|
being interrupted by another SIGCHLD. It may, however, be interrupted
|
|
|
|
|
by other signals.
|
|
|
|
|
|
|
|
|
|
There is general consensus that for `casual' programming with signals, the
|
|
|
|
|
BSD semantics are preferable. You don't need to worry about system calls
|
|
|
|
|
returning EINTR, and you don't need to worry about the race conditions
|
|
|
|
|
associated with one-shot signal handlers.
|
|
|
|
|
|
|
|
|
|
If you are porting an old program that relies on the old semantics, you can
|
|
|
|
|
quickly fix the problem by changing signal() to sysv_signal() throughout.
|
|
|
|
|
Alternatively, define _XOPEN_SOURCE before including <signal.h>.
|
|
|
|
|
|
|
|
|
|
For new programs, the sigaction() function allows you to specify precisely
|
|
|
|
|
how you want your signals to behave. All three differences listed above are
|
|
|
|
|
individually switchable on a per-signal basis with this function.
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
If all you want is for one specific signal to cause system calls to fail and
|
|
|
|
|
return EINTR (for example, to implement a timeout) you can do this with
|
1997-12-05 08:40:29 +08:00
|
|
|
|
siginterrupt().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
??string I've got errors compiling code that uses certain string
|
|
|
|
|
functions. Why?
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{AJ} glibc 2.1 has special string functions that are faster than the normal
|
1998-06-29 20:44:22 +08:00
|
|
|
|
library functions. Some of the functions are additionally implemented as
|
1999-01-27 18:14:01 +08:00
|
|
|
|
inline functions and others as macros. This might lead to problems with
|
|
|
|
|
existing codes but it is explicitly allowed by ISO C.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
The optimized string functions are only used when compiling with
|
1998-06-29 20:44:22 +08:00
|
|
|
|
optimizations (-O1 or higher). The behavior can be changed with two feature
|
1998-04-21 17:43:11 +08:00
|
|
|
|
macros:
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
* __NO_STRING_INLINES: Don't do any string optimizations.
|
|
|
|
|
* __USE_STRING_INLINES: Use assembly language inline functions (might
|
|
|
|
|
increase code size dramatically).
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
Since some of these string functions are now additionally defined as macros,
|
|
|
|
|
code like "char *strncpy();" doesn't work anymore (and is unnecessary, since
|
1998-06-29 20:44:22 +08:00
|
|
|
|
<string.h> has the necessary declarations). Either change your code or
|
1998-04-21 17:43:11 +08:00
|
|
|
|
define __NO_STRING_INLINES.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{UD} Another problem in this area is that gcc still has problems on machines
|
|
|
|
|
with very few registers (e.g., ix86). The inline assembler code can require
|
|
|
|
|
almost all the registers and the register allocator cannot always handle
|
|
|
|
|
this situation.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
One can disable the string optimizations selectively. Instead of writing
|
|
|
|
|
|
|
|
|
|
cp = strcpy (foo, "lkj");
|
|
|
|
|
|
|
|
|
|
one can write
|
|
|
|
|
|
|
|
|
|
cp = (strcpy) (foo, "lkj");
|
|
|
|
|
|
|
|
|
|
This disables the optimization for that specific call.
|
|
|
|
|
|
1998-01-30 20:53:20 +08:00
|
|
|
|
?? I get compiler messages "Initializer element not constant" with
|
|
|
|
|
stdin/stdout/stderr. Why?
|
|
|
|
|
|
|
|
|
|
{RM,AJ} Constructs like:
|
1999-05-16 07:31:55 +08:00
|
|
|
|
static FILE *InPtr = stdin;
|
1998-01-30 20:53:20 +08:00
|
|
|
|
|
1998-06-29 20:44:22 +08:00
|
|
|
|
lead to this message. This is correct behaviour with glibc since stdin is
|
|
|
|
|
not a constant expression. Please note that a strict reading of ISO C does
|
1998-04-21 17:43:11 +08:00
|
|
|
|
not allow above constructs.
|
1998-01-30 20:53:20 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
One of the advantages of this is that you can assign to stdin, stdout, and
|
|
|
|
|
stderr just like any other global variable (e.g. `stdout = my_stream;'),
|
|
|
|
|
which can be very useful with custom streams that you can write with libio
|
1998-06-29 20:44:22 +08:00
|
|
|
|
(but beware this is not necessarily portable). The reason to implement it
|
1998-04-21 17:43:11 +08:00
|
|
|
|
this way were versioning problems with the size of the FILE structure.
|
1998-01-30 20:53:20 +08:00
|
|
|
|
|
1998-06-29 20:44:22 +08:00
|
|
|
|
To fix those programs you've got to initialize the variable at run time.
|
|
|
|
|
This can be done, e.g. in main, like:
|
|
|
|
|
|
1999-05-16 07:31:55 +08:00
|
|
|
|
static FILE *InPtr;
|
|
|
|
|
int main(void)
|
|
|
|
|
{
|
|
|
|
|
InPtr = stdin;
|
|
|
|
|
}
|
1998-06-29 20:44:22 +08:00
|
|
|
|
|
|
|
|
|
or by constructors (beware this is gcc specific):
|
|
|
|
|
|
1999-05-16 07:31:55 +08:00
|
|
|
|
static FILE *InPtr;
|
|
|
|
|
static void inPtr_construct (void) __attribute__((constructor));
|
|
|
|
|
static void inPtr_construct (void) { InPtr = stdin; }
|
1998-06-29 20:44:22 +08:00
|
|
|
|
|
1998-01-30 20:53:20 +08:00
|
|
|
|
|
|
|
|
|
?? I can't compile with gcc -traditional (or
|
|
|
|
|
-traditional-cpp). Why?
|
|
|
|
|
|
|
|
|
|
{AJ} glibc2 does break -traditional and -traditonal-cpp - and will continue
|
1998-06-29 20:44:22 +08:00
|
|
|
|
to do so. For example constructs of the form:
|
1998-04-21 17:43:11 +08:00
|
|
|
|
|
1999-05-16 07:31:55 +08:00
|
|
|
|
enum {foo
|
|
|
|
|
#define foo foo
|
|
|
|
|
}
|
1998-04-21 17:43:11 +08:00
|
|
|
|
|
|
|
|
|
are useful for debugging purposes (you can use foo with your debugger that's
|
|
|
|
|
why we need the enum) and for compatibility (other systems use defines and
|
|
|
|
|
check with #ifdef).
|
1998-01-30 20:53:20 +08:00
|
|
|
|
|
|
|
|
|
?? I get some errors with `gcc -ansi'. Isn't glibc ANSI compatible?
|
|
|
|
|
|
|
|
|
|
{AJ} The GNU C library is compatible with the ANSI/ISO C standard. If
|
1998-04-21 17:43:11 +08:00
|
|
|
|
you're using `gcc -ansi', the glibc includes which are specified in the
|
1998-06-29 20:44:22 +08:00
|
|
|
|
standard follow the standard. The ANSI/ISO C standard defines what has to be
|
1998-04-21 17:43:11 +08:00
|
|
|
|
in the include files - and also states that nothing else should be in the
|
|
|
|
|
include files (btw. you can still enable additional standards with feature
|
|
|
|
|
flags).
|
1998-01-30 20:53:20 +08:00
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
The GNU C library is conforming to ANSI/ISO C - if and only if you're only
|
|
|
|
|
using the headers and library functions defined in the standard.
|
1998-01-30 20:53:20 +08:00
|
|
|
|
|
1998-03-24 18:25:31 +08:00
|
|
|
|
?? I can't access some functions anymore. nm shows that they do
|
|
|
|
|
exist but linking fails nevertheless.
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{AJ} With the introduction of versioning in glibc 2.1 it is possible to
|
|
|
|
|
export only those identifiers (functions, variables) that are really needed
|
|
|
|
|
by application programs and by other parts of glibc. This way a lot of
|
|
|
|
|
internal interfaces are now hidden. nm will still show those identifiers
|
|
|
|
|
but marking them as internal. ISO C states that identifiers beginning with
|
|
|
|
|
an underscore are internal to the libc. An application program normally
|
|
|
|
|
shouldn't use those internal interfaces (there are exceptions,
|
|
|
|
|
e.g. __ivaliduser). If a program uses these interfaces, it's broken. These
|
|
|
|
|
internal interfaces might change between glibc releases or dropped
|
|
|
|
|
completely.
|
1998-03-24 18:25:31 +08:00
|
|
|
|
|
2000-01-26 10:20:01 +08:00
|
|
|
|
?? When using the db-2 library which comes with glibc is used in
|
|
|
|
|
the Perl db modules the testsuite is not passed. This did not
|
|
|
|
|
happen with db-1, gdbm, or ndbm.
|
|
|
|
|
|
2000-11-06 15:25:55 +08:00
|
|
|
|
{} Removed. Does not apply anymore.
|
2000-01-26 10:20:01 +08:00
|
|
|
|
|
1998-08-22 01:22:56 +08:00
|
|
|
|
?? The pow() inline function I get when including <math.h> is broken.
|
|
|
|
|
I get segmentation faults when I run the program.
|
|
|
|
|
|
|
|
|
|
{UD} Nope, the implementation is correct. The problem is with egcs version
|
|
|
|
|
prior to 1.1. I.e., egcs 1.0 to 1.0.3 are all broken (at least on Intel).
|
|
|
|
|
If you have to use this compiler you must define __NO_MATH_INLINES before
|
|
|
|
|
including <math.h> to prevent the inline functions from being used. egcs 1.1
|
|
|
|
|
fixes the problem. I don't know about gcc 2.8 and 2.8.1.
|
|
|
|
|
|
1998-11-08 18:40:28 +08:00
|
|
|
|
?? The sys/sem.h file lacks the definition of `union semun'.
|
|
|
|
|
|
|
|
|
|
{UD} Nope. This union has to be provided by the user program. Former glibc
|
|
|
|
|
versions defined this but it was an error since it does not make much sense
|
|
|
|
|
when thinking about it. The standards describing the System V IPC functions
|
|
|
|
|
define it this way and therefore programs must be adopted.
|
|
|
|
|
|
1998-11-23 17:48:32 +08:00
|
|
|
|
?? Why has <netinet/ip_fw.h> disappeared?
|
|
|
|
|
|
|
|
|
|
{AJ} The corresponding Linux kernel data structures and constants are
|
1999-01-24 18:17:23 +08:00
|
|
|
|
totally different in Linux 2.0 and Linux 2.2. This situation has to be
|
1998-11-23 17:48:32 +08:00
|
|
|
|
taken care in user programs using the firewall structures and therefore
|
|
|
|
|
those programs (ipfw is AFAIK the only one) should deal with this problem
|
|
|
|
|
themselves.
|
|
|
|
|
|
1998-12-01 19:25:26 +08:00
|
|
|
|
?? I get floods of warnings when I use -Wconversion and include
|
|
|
|
|
<string.h> or <math.h>.
|
|
|
|
|
|
|
|
|
|
{ZW} <string.h> and <math.h> intentionally use prototypes to override
|
|
|
|
|
argument promotion. -Wconversion warns about all these. You can safely
|
|
|
|
|
ignore the warnings.
|
|
|
|
|
|
|
|
|
|
-Wconversion isn't really intended for production use, only for shakedown
|
|
|
|
|
compiles after converting an old program to standard C.
|
|
|
|
|
|
1998-03-24 18:25:31 +08:00
|
|
|
|
|
1999-02-11 20:11:01 +08:00
|
|
|
|
?? After upgrading to glibc 2.1, I receive errors about
|
|
|
|
|
unresolved symbols, like `_dl_initial_searchlist' and can not
|
|
|
|
|
execute any binaries. What went wrong?
|
|
|
|
|
|
|
|
|
|
{AJ} This normally happens if your libc and ld (dynamic linker) are from
|
|
|
|
|
different releases of glibc. For example, the dynamic linker
|
|
|
|
|
/lib/ld-linux.so.2 comes from glibc 2.0.x, but the version of libc.so.6 is
|
|
|
|
|
from glibc 2.1.
|
|
|
|
|
|
|
|
|
|
The path /lib/ld-linux.so.2 is hardcoded in every glibc2 binary but
|
|
|
|
|
libc.so.6 is searched via /etc/ld.so.cache and in some special directories
|
|
|
|
|
like /lib and /usr/lib. If you run configure with another prefix than /usr
|
|
|
|
|
and put this prefix before /lib in /etc/ld.so.conf, your system will break.
|
|
|
|
|
|
|
|
|
|
So what can you do? Either of the following should work:
|
|
|
|
|
|
|
|
|
|
* Run `configure' with the same prefix argument you've used for glibc 2.0.x
|
|
|
|
|
so that the same paths are used.
|
|
|
|
|
* Replace /lib/ld-linux.so.2 with a link to the dynamic linker from glibc
|
|
|
|
|
2.1.
|
|
|
|
|
|
|
|
|
|
You can even call the dynamic linker by hand if everything fails. You've
|
|
|
|
|
got to set LD_LIBRARY_PATH so that the corresponding libc is found and also
|
|
|
|
|
need to provide an absolute path to your binary:
|
|
|
|
|
|
|
|
|
|
LD_LIBRARY_PATH=<path-where-libc.so.6-lives> \
|
|
|
|
|
<path-where-corresponding-dynamic-linker-lives>/ld-linux.so.2 \
|
|
|
|
|
<path-to-binary>/binary
|
|
|
|
|
|
|
|
|
|
For example `LD_LIBRARY_PATH=/libold /libold/ld-linux.so.2 /bin/mv ...'
|
|
|
|
|
might be useful in fixing a broken system (if /libold contains dynamic
|
|
|
|
|
linker and corresponding libc).
|
|
|
|
|
|
|
|
|
|
With that command line no path is used. To further debug problems with the
|
|
|
|
|
dynamic linker, use the LD_DEBUG environment variable, e.g.
|
|
|
|
|
`LD_DEBUG=help echo' for the help text.
|
|
|
|
|
|
|
|
|
|
If you just want to test this release, don't put the lib directory in
|
|
|
|
|
/etc/ld.so.conf. You can call programs directly with full paths (as above).
|
|
|
|
|
When compiling new programs against glibc 2.1, you've got to specify the
|
|
|
|
|
correct paths to the compiler (option -I with gcc) and linker (options
|
|
|
|
|
--dynamic-linker, -L and --rpath).
|
|
|
|
|
|
1999-03-08 19:05:57 +08:00
|
|
|
|
?? bonnie reports that char i/o with glibc 2 is much slower than with
|
1999-03-01 15:21:39 +08:00
|
|
|
|
libc5. What can be done?
|
|
|
|
|
|
|
|
|
|
{AJ} The GNU C library uses thread safe functions by default and libc5 used
|
|
|
|
|
non thread safe versions. The non thread safe functions have in glibc the
|
|
|
|
|
suffix `_unlocked', for details check <stdio.h>. Using `putc_unlocked' etc.
|
|
|
|
|
instead of `putc' should give nearly the same speed with bonnie (bonnie is a
|
|
|
|
|
benchmark program for measuring disk access).
|
|
|
|
|
|
2000-01-26 10:20:01 +08:00
|
|
|
|
?? Programs compiled with glibc 2.1 can't read db files made with glibc
|
|
|
|
|
2.0. What has changed that programs like rpm break?
|
|
|
|
|
|
2000-11-06 15:25:55 +08:00
|
|
|
|
{} Removed. Does not apply anymore.
|
2000-01-26 10:20:01 +08:00
|
|
|
|
|
1999-04-30 02:20:05 +08:00
|
|
|
|
?? Autoconf's AC_CHECK_FUNC macro reports that a function exists, but
|
|
|
|
|
when I try to use it, it always returns -1 and sets errno to ENOSYS.
|
|
|
|
|
|
|
|
|
|
{ZW} You are using a 2.0 Linux kernel, and the function you are trying to
|
|
|
|
|
use is only implemented in 2.1/2.2. Libc considers this to be a function
|
|
|
|
|
which exists, because if you upgrade to a 2.2 kernel, it will work. One
|
|
|
|
|
such function is sigaltstack.
|
|
|
|
|
|
|
|
|
|
Your program should check at runtime whether the function works, and
|
|
|
|
|
implement a fallback. Note that Autoconf cannot detect unimplemented
|
|
|
|
|
functions in other systems' C libraries, so you need to do this anyway.
|
|
|
|
|
|
1999-05-04 20:24:18 +08:00
|
|
|
|
?? My program segfaults when I call fclose() on the FILE* returned
|
|
|
|
|
from setmntent(). Is this a glibc bug?
|
|
|
|
|
|
|
|
|
|
{GK} No. Don't do this. Use endmntent(), that's what it's for.
|
|
|
|
|
|
|
|
|
|
In general, you should use the correct deallocation routine. For instance,
|
|
|
|
|
if you open a file using fopen(), you should deallocate the FILE * using
|
|
|
|
|
fclose(), not free(), even though the FILE * is also a pointer.
|
|
|
|
|
|
|
|
|
|
In the case of setmntent(), it may appear to work in most cases, but it
|
|
|
|
|
won't always work. Unfortunately, for compatibility reasons, we can't
|
|
|
|
|
change the return type of setmntent() to something other than FILE *.
|
|
|
|
|
|
2001-04-04 08:01:02 +08:00
|
|
|
|
?? I get "undefined reference to `atexit'"
|
|
|
|
|
|
|
|
|
|
{UD} This means that your installation is somehow broken. The situation is
|
|
|
|
|
the same as for 'stat', 'fstat', etc (see ?nonsh). Investigate why the
|
|
|
|
|
linker does not pick up libc_nonshared.a.
|
|
|
|
|
|
|
|
|
|
If a similar message is issued at runtime this means that the application or
|
|
|
|
|
DSO is not linked against libc. This can cause problems since 'atexit' is
|
|
|
|
|
not exported anymore.
|
|
|
|
|
|
1999-02-11 20:11:01 +08:00
|
|
|
|
|
1997-12-05 08:40:29 +08:00
|
|
|
|
? Miscellaneous
|
|
|
|
|
|
|
|
|
|
?? 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)
|
1998-03-05 01:14:36 +08:00
|
|
|
|
from your favorite mirror of ftp.gnu.org.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
?? 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.
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{UD} The problem is that IPv6 development still has not reached a point
|
|
|
|
|
where the headers are stable. There are still lots of incompatible changes
|
|
|
|
|
made and the libc headers have to follow.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1998-11-26 20:02:23 +08:00
|
|
|
|
{PB} The 2.1 release of GNU libc aims to comply with the current versions of
|
|
|
|
|
all the relevant standards. The IPv6 support libraries for older Linux
|
|
|
|
|
systems used a different naming convention and so code written to work with
|
|
|
|
|
them may need to be modified. If the standards make incompatible changes in
|
|
|
|
|
the future then the libc may need to change again.
|
|
|
|
|
|
|
|
|
|
IPv6 will not work with a 2.0.x kernel. When kernel 2.2 is released it
|
|
|
|
|
should contain all the necessary support; until then you should use the
|
1998-11-30 21:48:15 +08:00
|
|
|
|
latest 2.1.x release you can find. As of 98/11/26 the currently recommended
|
1998-11-26 20:02:23 +08:00
|
|
|
|
kernel for IPv6 is 2.1.129.
|
|
|
|
|
|
|
|
|
|
Also, as of the 2.1 release the IPv6 API provided by GNU libc is not
|
2000-08-01 07:14:10 +08:00
|
|
|
|
100% complete.
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
1999-01-20 19:36:34 +08:00
|
|
|
|
??tzdb When I set the timezone by setting the TZ environment variable
|
1998-04-09 18:14:17 +08:00
|
|
|
|
to EST5EDT things go wrong since glibc computes the wrong time
|
|
|
|
|
from this information.
|
|
|
|
|
|
1998-04-21 17:43:11 +08:00
|
|
|
|
{UD} The problem is that people still use the braindamaged POSIX method to
|
|
|
|
|
select the timezone using the TZ environment variable with a format EST5EDT
|
1999-01-20 19:36:34 +08:00
|
|
|
|
or whatever. People, if you insist on using TZ instead of the timezone
|
|
|
|
|
database (see below), read the POSIX standard, the implemented behaviour is
|
1998-04-21 17:43:11 +08:00
|
|
|
|
correct! What you see is in fact the result of the decisions made while
|
|
|
|
|
POSIX.1 was created. We've only implemented the handling of TZ this way to
|
|
|
|
|
be POSIX compliant. It is not really meant to be used.
|
|
|
|
|
|
|
|
|
|
The alternative approach to handle timezones which is implemented is the
|
|
|
|
|
correct one to use: use the timezone database. This avoids all the problems
|
|
|
|
|
the POSIX method has plus it is much easier to use. Simply run the tzselect
|
|
|
|
|
shell script, answer the question and use the name printed in the end by
|
1999-01-20 19:36:34 +08:00
|
|
|
|
making a symlink /etc/localtime pointing to /usr/share/zoneinfo/NAME (NAME
|
|
|
|
|
is the returned value from tzselect). That's all. You never again have to
|
|
|
|
|
worry.
|
1998-04-21 17:43:11 +08:00
|
|
|
|
|
|
|
|
|
So, please avoid sending bug reports about time related problems if you use
|
|
|
|
|
the POSIX method and you have not verified something is really broken by
|
|
|
|
|
reading the POSIX standards.
|
1998-04-09 18:14:17 +08:00
|
|
|
|
|
1998-06-29 20:44:22 +08:00
|
|
|
|
?? What other sources of documentation about glibc are available?
|
|
|
|
|
|
|
|
|
|
{AJ} The FSF has a page about the GNU C library at
|
|
|
|
|
<http://www.gnu.org/software/libc/>. The problem data base of open and
|
|
|
|
|
solved bugs in GNU libc is available at
|
|
|
|
|
<http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl>. Eric Green has written
|
2000-01-26 10:07:07 +08:00
|
|
|
|
a HowTo for converting from Linux libc5 to glibc2. The HowTo is accessible
|
1998-06-29 20:44:22 +08:00
|
|
|
|
via the FSF page and at <http://www.imaxx.net/~thrytis/glibc>. Frodo
|
|
|
|
|
Looijaard describes a different way installing glibc2 as secondary libc at
|
|
|
|
|
<http://huizen.dds.nl/~frodol/glibc>.
|
|
|
|
|
|
|
|
|
|
Please note that this is not a complete list.
|
|
|
|
|
|
1998-11-30 21:48:15 +08:00
|
|
|
|
?? The timezone string for Sydney/Australia is wrong since even when
|
|
|
|
|
daylight saving time is in effect the timezone string is EST.
|
|
|
|
|
|
|
|
|
|
{UD} The problem for some timezones is that the local authorities decided
|
|
|
|
|
to use the term "summer time" instead of "daylight saving time". In this
|
|
|
|
|
case the abbreviation character `S' is the same as the standard one. So,
|
|
|
|
|
for Sydney we have
|
|
|
|
|
|
|
|
|
|
Eastern Standard Time = EST
|
|
|
|
|
Eastern Summer Time = EST
|
|
|
|
|
|
|
|
|
|
Great! To get this bug fixed convince the authorities to change the laws
|
|
|
|
|
and regulations of the country this effects. glibc behaves correctly.
|
|
|
|
|
|
1998-12-02 21:44:40 +08:00
|
|
|
|
??make I've build make 3.77 against glibc 2.1 and now make gets
|
|
|
|
|
segmentation faults.
|
|
|
|
|
|
2000-11-06 15:25:55 +08:00
|
|
|
|
{} Removed. Does not apply anymore, use make 3.79 or newer.
|
1998-12-02 21:44:40 +08:00
|
|
|
|
|
1999-12-21 16:10:06 +08:00
|
|
|
|
?? Why do so many programs using math functions fail on my AlphaStation?
|
|
|
|
|
|
|
|
|
|
{AO} The functions floor() and floorf() use an instruction that is not
|
|
|
|
|
implemented in some old PALcodes of AlphaStations. This may cause
|
|
|
|
|
`Illegal Instruction' core dumps or endless loops in programs that
|
|
|
|
|
catch these signals. Updating the firmware to a 1999 release has
|
|
|
|
|
fixed the problem on an AlphaStation 200 4/166.
|
|
|
|
|
|
1999-12-28 04:26:55 +08:00
|
|
|
|
?? The conversion table for character set XX does not match with
|
|
|
|
|
what I expect.
|
|
|
|
|
|
|
|
|
|
{UD} I don't doubt for a minute that some of the conversion tables contain
|
|
|
|
|
errors. We tried the best we can and relied on automatic generation of the
|
|
|
|
|
data to prevent human-introduced errors but this still is no guarantee. If
|
|
|
|
|
you think you found a problem please send a bug report describing it and
|
|
|
|
|
give an authoritive reference. The latter is important since otherwise
|
|
|
|
|
the current behaviour is as good as the proposed one.
|
|
|
|
|
|
|
|
|
|
Before doing this look through the list of known problem first:
|
|
|
|
|
|
|
|
|
|
- the GBK (simplified Chinese) encoding is based on Unicode tables. This
|
|
|
|
|
is good. These tables, however, differ slightly from the tables used
|
|
|
|
|
by the M$ people. The differences are these [+ Unicode, - M$]:
|
|
|
|
|
|
|
|
|
|
+0xA1AA 0x2015
|
|
|
|
|
+0xA844 0x2014
|
|
|
|
|
-0xA1AA 0x2014
|
|
|
|
|
-0xA844 0x2015
|
|
|
|
|
|
|
|
|
|
In addition the Unicode tables contain mappings for the GBK characters
|
|
|
|
|
0xA8BC, 0xA8BF, 0xA989 to 0xA995, and 0xFE50 to 0xFEA0.
|
|
|
|
|
|
1999-12-28 10:59:59 +08:00
|
|
|
|
- when mapping from EUC-CN to GBK and vice versa we ignore the fact that
|
|
|
|
|
the coded character at position 0xA1A4 maps to different Unicode
|
|
|
|
|
characters. Since the iconv() implementation can do whatever it wants
|
|
|
|
|
if it cannot directly map a character this is a perfectly good solution
|
|
|
|
|
since the semantics and appearance of the character does not change.
|
1999-12-28 04:26:55 +08:00
|
|
|
|
|
2000-12-27 11:30:43 +08:00
|
|
|
|
?? How can I find out which version of glibc I am using in the moment?
|
|
|
|
|
|
|
|
|
|
{UD} If you want to find out about the version from the command line simply
|
|
|
|
|
run the libc binary. This is probably not possible on all platforms but
|
|
|
|
|
where it is simply locate the libc DSO and start it as an application. On
|
|
|
|
|
Linux like
|
|
|
|
|
|
|
|
|
|
/lib/libc.so.6
|
|
|
|
|
|
|
|
|
|
This will produce all the information you need.
|
|
|
|
|
|
|
|
|
|
What always will work is to use the API glibc provides. Compile and run the
|
|
|
|
|
following little program to get the version information:
|
|
|
|
|
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <gnu/libc-version.h>
|
|
|
|
|
int main (void) { puts (gnu_get_libc_version ()); return 0; }
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
This interface can also obviously be used to perform tests at runtime if
|
|
|
|
|
this should be necessary.
|
|
|
|
|
|
2001-04-06 04:45:54 +08:00
|
|
|
|
?? Context switching with setcontext() does not work from within
|
|
|
|
|
signal handlers.
|
|
|
|
|
|
|
|
|
|
{DMT} The Linux implementations (IA-64, S390 so far) of setcontext()
|
|
|
|
|
supports synchronous context switches only. There are several reasons for
|
|
|
|
|
this:
|
|
|
|
|
|
2001-05-05 22:43:14 +08:00
|
|
|
|
- UNIX provides no other (portable) way of effecting a synchronous
|
|
|
|
|
context switch (also known as co-routine switch). Some versions
|
|
|
|
|
support this via setjmp()/longjmp() but this does not work
|
|
|
|
|
universally.
|
|
|
|
|
|
|
|
|
|
- As defined by the UNIX '98 standard, the only way setcontext()
|
|
|
|
|
could trigger an asychronous context switch is if this function
|
|
|
|
|
were invoked on the ucontext_t pointer passed as the third argument
|
|
|
|
|
to a signal handler. But according to draft 5, XPG6, XBD 2.4.3,
|
|
|
|
|
setcontext() is not among the set of routines that may be called
|
|
|
|
|
from a signal handler.
|
|
|
|
|
|
|
|
|
|
- If setcontext() were to be used for asynchronous context switches,
|
|
|
|
|
all kinds of synchronization and re-entrancy issues could arise and
|
|
|
|
|
these problems have already been solved by real multi-threading
|
|
|
|
|
libraries (e.g., POSIX threads or Linux threads).
|
|
|
|
|
|
|
|
|
|
- Synchronous context switching can be implemented entirely in
|
|
|
|
|
user-level and less state needs to be saved/restored than for an
|
|
|
|
|
asynchronous context switch. It is therefore useful to distinguish
|
|
|
|
|
between the two types of context switches. Indeed, some
|
|
|
|
|
application vendors are known to use setcontext() to implement
|
|
|
|
|
co-routines on top of normal (heavier-weight) pre-emptable threads.
|
2001-04-06 04:45:54 +08:00
|
|
|
|
|
|
|
|
|
It should be noted that if someone was dead-bent on using setcontext()
|
|
|
|
|
on the third arg of a signal handler, then IA-64 Linux could support
|
|
|
|
|
this via a special version of sigaction() which arranges that all
|
|
|
|
|
signal handlers start executing in a shim function which takes care of
|
|
|
|
|
saving the preserved registers before calling the real signal handler
|
|
|
|
|
and restoring them afterwards. In other words, we could provide a
|
|
|
|
|
compatibility layer which would support setcontext() for asynchronous
|
|
|
|
|
context switches. However, given the arguments above, I don't think
|
|
|
|
|
that makes sense. setcontext() provides a decent co-routine interface
|
|
|
|
|
and we should just discourage any asynchronous use (which just calls
|
|
|
|
|
for trouble at any rate).
|
|
|
|
|
|
|
|
|
|
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
Answers were given by:
|
2001-04-06 04:45:54 +08:00
|
|
|
|
{UD} Ulrich Drepper, <drepper@redhat.com>
|
|
|
|
|
{DMT} David Mosberger-Tang, <davidm@hpl.hp.com>
|
1997-12-05 08:40:29 +08:00
|
|
|
|
{RM} Roland McGrath, <roland@gnu.org>
|
2000-01-26 10:07:07 +08:00
|
|
|
|
{AJ} Andreas Jaeger, <aj@suse.de>
|
1997-12-05 08:40:29 +08:00
|
|
|
|
{EY} Eric Youngdale, <eric@andante.jic.com>
|
|
|
|
|
{PB} Phil Blundell, <Philip.Blundell@pobox.com>
|
|
|
|
|
{MK} Mark Kettenis, <kettenis@phys.uva.nl>
|
|
|
|
|
{ZW} Zack Weinberg, <zack@rabi.phys.columbia.edu>
|
1999-04-08 10:10:39 +08:00
|
|
|
|
{TK} Thorsten Kukuk, <kukuk@suse.de>
|
2001-04-06 04:45:54 +08:00
|
|
|
|
{GK} Geoffrey Keating, <geoffk@redhat.com>
|
Update.
1998-02-10 23:57 Ulrich Drepper <drepper@happy.cygnus.com>
* misc/tst-efgcvt.c: Add more tests.
* misc/efgcvt_r.c: Correct result for above new tests.
1998-02-06 17:22 H.J. Lu <hjl@gnu.org>
* misc/efgcvt_r.c (fcvt_r, ecvt_r): Correctly handle
NDIGIT <= 0.
1998-02-10 16:48 Philip Blundell <pb@nexus.co.uk>
* Makerules (install-no-libc.a-nosubdir): Don't install-bin (etc)
if the programs weren't built.
1998-02-09 10:12 Philip Blundell <pb@nexus.co.uk>
* sysdeps/libm-ieee754/s_exp2.c (__ieee754_exp2): If we don't have
FE_TONEAREST, soldier on regardless and do the best we can.
* sysdeps/libm-ieee754/s_exp2f.c (__ieee754_exp2f): likewise.
1998-02-5 17:20 Philip Blundell <pb@nexus.co.uk>
* sysdeps/standalone/filedesc.h: Define __need_FOPEN_MAX, not
_STDIO_H, before including <bits/stdio_lim.h>.
* sysdeps/standalone/arm/bits/errno.h (EOVERFLOW): Added.
* io/fts.c (fts_build): Don't try to use d_type if it doesn't
exist.
* sysdeps/arm/sys/ucontext.h: New file.
1998-02-04 10:11 Philip Blundell <pb@nexus.co.uk>
* manual/stdio.texi (Formatted Output Functions): Explicitly say
that the return value from snprintf() does not count the
terminating NUL as a character.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* manual/users.texi: Rewrite to describe correct POSIX behaviour,
add description for sete[ug]id and general cleanup.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (parent-clean): Don't remove makefile fragments here.
(postclean): New variable.
(clean): Remove makefile fragments here.
(realclean distclean): Likewise. Pass sysdep-subdirs to sub-make.
(generated): Add isomac and isomanc.out.
* Makeconfig ($(common-objpfx)soversions.mk): Don't generate if
avoid-generated is set.
(postclean-generated): Add soversion.mk.
($(common-objpfx)version.mk): Don't include if avoid-generated is
set.
* Makerules: Still need to include $(+sysdir_pfx)sysd-Makefile if
avoid-generated is set.
(common-generated): Add libc.so and libc.so$(libc.so-version).
(generated): Add versioned libraries.
(common-mostlyclean): Also remove %.so and %_pic.a.
* csu/Makefile (generated): Add abi-tag.h.
* db2/Makefile (extra-objs): Add getlong.o.
* elf/Makefile (generated): Add ld.so, ldd and
$(rtld-installed-name).
(others): Add ldconfig here instead of ldconfig.o to extra-objs.
* malloc/Makefile (generated): Add mtrace.
* po/Makefile: Don't include version.mk, not needed any more.
* sunrpc/Makefile (generated): Add rpc-proto.d and rpcgen.
* sysdeps/unix/Makefile: Fix local_lim.h -> bits/local_lim.h,
syscall.h -> sys/syscall.h.
(common-generated): Add s-proto.d.
(postclean-generated): Add sysd-syscalls.
* localedata/Makefile (test-output): Add all output files.
(generated): Add test-input and test-output.
(generated-dirs): Add all the dirs.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (test-output, generated, generated-dirs): New
variables.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* resolv/nss_dns/dns-host.c: Various code cleanups.
1998-02-09 08:10 H.J. Lu <hjl@gnu.org>
* resolv/gethnamaddr.c (getanswer): Fix the PTR/CNAME bug.
From Philip Blundell <pb@nexus.co.uk>.
* resolv/nss_dns/dns-host.c (getanswer_r): Ditto.
1998-02-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* libc.map: Add .rem, .div, .mul, .udiv, .umul, .urem for Sparc.
Suggested by debian/sparc porters.
1998-02-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* misc/tst-efgcvt.c: Totally rewritten, added a lot of new tests
for ecvt and fcvt.
1998-02-10 16:32 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Use __xstat and
__fxstat instead of stat and fstat. Use namespace clean __stpcpy.
* signal/signal.h: Always define sigset_t if __need_sigset_t is
defined even if __USE_POSIX is not defined.
1998-02-02 20:51 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Correct last patch
to support obsolete tty major numbers correctly.
1998-02-02 08:47 H.J. Lu <hjl@gnu.org>
* login/Makefile ($(inst_libexecdir)/pt_chown): Make the target
directory first and ignore install error.
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Substract
128 from ptyno and fix a typo for the BSD style pty.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Depend on all
syscalls.list's.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
getresuid and getresgid.
* sysdeps/unix/sysv/linux/getresuid.c: New file.
* sysdeps/unix/sysv/linux/getresgid.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Remove getres[ug]id, add
s_getres[ug]id.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add getres[ug]id.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
1998-02-02 08:11 H.J. Lu <hjl@gnu.org>
* nscd/grpcache.c: Include <stdlib.h>.
1998-02-01 16:01 H.J. Lu <hjl@gnu.org>
* stdlib/atoll.c: Fix comments.
* sysdeps/posix/ttyname.c: Ignore stdin/stdout/stderr.
* sysdeps/posix/ttyname_r.c: Ditto.
1998-02-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/sys/stat.h: Define S_IFLNK and S_IFSOCK if __USE_BSD or
__USE_MISC, independent of __USE_UNIX98.
1998-02-10 19:18 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
1998-02-04 11:58 Richard Henderson <rth@twiddle.rth.home>
* Makeconfig (CFLAGS-.os): Kill -fno-common.
* Makerules (libc.so): Prelink libc_pic.a, allocating commons.
* libc.map (GLIBC_2.1): Add Linux/Alpha tv64 symbols.
* elf/rtld.map: New file. Needed to define the GLIBC_2.*
version symbols.
* include/libc-symbols.h (symbol_version, default_symbol_version):
Provide asm versions and correct !DO_VERSIONING versions.
* sysdeps/unix/make-syscalls.sh: Recognize version symbols in
the weak symbol list.
* sysdeps/unix/sysv/linux/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
* sysdeps/unix/sysv/linux/sigpending.c: Likewise.
* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
1998-02-04 16:41 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sunrpc/Makefile: Correct dependencies of rpcgen.
1998-02-10 03:00 Ulrich Drepper <drepper@happy.cygnus.com>
* nscd/Makefile: Fix test for available linuxthreads add-on.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-02-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/syscalls.list: Fix typo in lchown.
1998-02-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/gnu/Makefile: Respect with-cvs variable.
* manual/errno.texi (Error Messages): Correct description of
strerror_r. Pointed out by jonas@bagge.se.
1998-01-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/socket.texi (Host Address Functions): Clarify description
of inet_network.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/grantpt.c (argv): Move const to toplevel.
(grantpt): Delete superfluous cast.
1998-02-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile ($(inst_slibdir)/libc-$(version).so): Depend on
elf/ldso_install instead of elf/subdir_install.
(elf/ldso_install): New target.
* elf/Makefile (ldso_install): New target.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/powerpc/socket.S: Really do the change
of 1998-01-06.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h (strcmp): Use __string2_1bptr_p only for
constant expressions.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nss/test-netdb.c: Include <unistd.h> for gethostname and "nss.h"
for __nss_configure_lookup.
(output_hostent): Remove unused variable.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/tst-inlcall.c: Fix format string.
1998-02-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* inet/netinet/in.h: Rename second parameter of bindresvport to
avoid buggy gcc warning. [PR libc/412]
1998-02-11 04:06:30 +08:00
|
|
|
|
{HJ} H.J. Lu, <hjl@gnu.org>
|
1999-01-21 00:12:52 +08:00
|
|
|
|
{CG} Cristian Gafton, <gafton@redhat.com>
|
2001-04-06 04:45:54 +08:00
|
|
|
|
{AO} Alexandre Oliva, <aoliva@redhat.com>
|
2000-11-07 08:26:45 +08:00
|
|
|
|
{BH} Bruno Haible, <haible@clisp.cons.org>
|
2002-09-05 18:28:51 +08:00
|
|
|
|
{SM} Steven Munroe, <sjmunroe@us.ibm.com>
|
2008-02-22 17:57:19 +08:00
|
|
|
|
{CO} Carlos O'Donell, <carlos@systemhalted.org>
|
1997-12-05 08:40:29 +08:00
|
|
|
|
|
|
|
|
|
Local Variables:
|
|
|
|
|
mode:outline
|
|
|
|
|
outline-regexp:"\\?"
|
1998-04-21 17:43:11 +08:00
|
|
|
|
fill-column:76
|
1997-12-05 08:40:29 +08:00
|
|
|
|
End:
|