diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-02-11 12:11:01 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-02-11 12:11:01 +0000 |
commit | 49b75f5ef5da3136e4b4015e23e2fe38aacbc7b3 (patch) | |
tree | e36cde16427ca76fb999f344e66533245f06ebb3 | |
parent | 8286ad8e13a914fae4a36b3b7a2329367bb53e8a (diff) | |
download | glibc-49b75f5ef5da3136e4b4015e23e2fe38aacbc7b3.zip glibc-49b75f5ef5da3136e4b4015e23e2fe38aacbc7b3.tar.gz glibc-49b75f5ef5da3136e4b4015e23e2fe38aacbc7b3.tar.bz2 |
Update.
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | FAQ.in | 44 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/bits/stat.h | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/bits/types.h | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/kernel_stat.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/bits/types.h | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/xstatconv.c | 4 |
7 files changed, 54 insertions, 19 deletions
@@ -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. @@ -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 ff7ffcf..c175668 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 3ec74be..046e7f7 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 9db1561..bd7ddcc 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 9828066..36a1e0e 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 0f841ed..0a8e0c4 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; |