This commit is contained in:
Ulrich Drepper 1999-02-11 12:11:01 +00:00
parent 8286ad8e13
commit 49b75f5ef5
7 changed files with 54 additions and 19 deletions

View File

@ -1,13 +1,3 @@
1999-02-10 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/kernel_stat.h: Define _NO_LFS___PAD1.
* sysdeps/unix/sysv/linux/xstatconv.c (xstat64_conv): Don't initialize
__pad1 if _NO_LFS___PAD1 is defined.
* sysdeps/unix/sysv/linux/bits/stat.h: Remove __pad1 from stat64
definition.
* sysdeps/unix/sysv/linux/bits/types.h: Change __ino64_t to 64 bits.
* sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise.
1999-02-09 Ulrich Drepper <drepper@cygnus.com>
* po/el.po: Update from translation team.

44
FAQ.in
View File

@ -1215,6 +1215,50 @@ ignore the warnings.
compiles after converting an old program to standard C.
?? 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).
? Miscellaneous
?? After I changed configure.in I get `Autoconf version X.Y.

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1992, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
/* Copyright (C) 1992, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -36,8 +36,8 @@
struct stat
{
__dev_t st_dev; /* Device. */
#ifndef __USE_FILE_OFFSET64
unsigned short int __pad1;
#ifndef __USE_FILE_OFFSET64
__ino_t st_ino; /* File serial number. */
#else
__ino64_t st_ino; /* File serial number. */
@ -74,6 +74,8 @@ struct stat
struct stat64
{
__dev_t st_dev; /* Device. */
unsigned short int __pad1;
__ino64_t st_ino; /* File serial number. */
__mode_t st_mode; /* File mode. */
__nlink_t st_nlink; /* Link count. */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991,92,94,95,96,97,98,99 Free Software Foundation, Inc.
/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -132,7 +132,7 @@ typedef __u_long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;
/* Type of file serial numbers. */
typedef __u_quad_t __ino64_t;
typedef __u_long __ino64_t;
/* Type of file sizes and offsets. */
typedef __loff_t __off64_t;

View File

@ -4,7 +4,6 @@ struct kernel_stat
unsigned short int st_dev;
unsigned short int __pad1;
#define _HAVE___PAD1
#define _NO_LFS___PAD1
unsigned long int st_ino;
unsigned short int st_mode;
unsigned short int st_nlink;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991,92,94,95,96,97,98,99 Free Software Foundation, Inc.
/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -132,7 +132,7 @@ typedef __u_long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;
/* Type of file serial numbers. */
typedef __u_quad_t __ino64_t;
typedef __u_long __ino64_t;
/* Type of file sizes and offsets. */
typedef __loff_t __off64_t;

View File

@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
Copyright (C) 1991, 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -96,7 +96,7 @@ xstat64_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
/* Convert to current kernel version of `struct stat64'. */
buf->st_dev = kbuf->st_dev;
#if defined _HAVE___PAD1 && !defined _NO_LFS___PAD1
#ifdef _HAVE___PAD1
buf->__pad1 = 0;
#endif
buf->st_ino = kbuf->st_ino;