summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--FAQ.in44
-rw-r--r--sysdeps/unix/sysv/linux/bits/stat.h6
-rw-r--r--sysdeps/unix/sysv/linux/bits/types.h4
-rw-r--r--sysdeps/unix/sysv/linux/kernel_stat.h1
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/types.h4
-rw-r--r--sysdeps/unix/sysv/linux/xstatconv.c4
7 files changed, 54 insertions, 19 deletions
diff --git a/ChangeLog b/ChangeLog
index 6781b1ea7b..d07bf3b3e5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/FAQ.in b/FAQ.in
index 56df024fc9..bac2e65f82 100644
--- a/FAQ.in
+++ b/FAQ.in
@@ -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.
diff --git a/sysdeps/unix/sysv/linux/bits/stat.h b/sysdeps/unix/sysv/linux/bits/stat.h
index ff7ffcf2ee..c175668a06 100644
--- a/sysdeps/unix/sysv/linux/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/bits/stat.h
@@ -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. */
diff --git a/sysdeps/unix/sysv/linux/bits/types.h b/sysdeps/unix/sysv/linux/bits/types.h
index 3ec74becbc..046e7f7d5d 100644
--- a/sysdeps/unix/sysv/linux/bits/types.h
+++ b/sysdeps/unix/sysv/linux/bits/types.h
@@ -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;
diff --git a/sysdeps/unix/sysv/linux/kernel_stat.h b/sysdeps/unix/sysv/linux/kernel_stat.h
index 9db15616cc..bd7ddcc9bc 100644
--- a/sysdeps/unix/sysv/linux/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/kernel_stat.h
@@ -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;
diff --git a/sysdeps/unix/sysv/linux/mips/bits/types.h b/sysdeps/unix/sysv/linux/mips/bits/types.h
index 9828066178..36a1e0e0e3 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/types.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/types.h
@@ -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;
diff --git a/sysdeps/unix/sysv/linux/xstatconv.c b/sysdeps/unix/sysv/linux/xstatconv.c
index 0f841edcd6..0a8e0c47f9 100644
--- a/sysdeps/unix/sysv/linux/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/xstatconv.c
@@ -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;