summary refs log tree commit diff
path: root/sysdeps/generic/dl-cache.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-02-01 17:06:45 +0000
committerUlrich Drepper <drepper@redhat.com>1998-02-01 17:06:45 +0000
commit566efee21908cc59bb0645c3208446f3dedebce8 (patch)
tree48fa72b2b59511164d37b754bdf49c7c403729c3 /sysdeps/generic/dl-cache.c
parent6a844df675b81d6b9057db066446943792ba89fc (diff)
downloadglibc-566efee21908cc59bb0645c3208446f3dedebce8.tar.gz
glibc-566efee21908cc59bb0645c3208446f3dedebce8.tar.xz
glibc-566efee21908cc59bb0645c3208446f3dedebce8.zip
Update.
1998-02-02 01:12  Ulrich Drepper  <drepper@cygnus.com>

	* libc.map: Add _h_errno.
	* inet/herrno.c: Make _h_errno weak alias.

	* login/Makefile (distribute): Add pty-internal.h.

	* nscd/Makefile (distribute): Add all the files missing.

	* signal/allocrtsig.c: Fix problem with recognizing whether RT sigs
	are available.

	* stdio-common/tstscanf.c: Rewrite a bit to continue after errors
	and report status at the end.

	* sysdeps/unix/sysv/linux/syscalls.list: Add lchown.

	* sysdeps/unix/sysv/linux/i386/sysdep.S: Make errno an initialized
	variable.
	* sysdeps/unix/sysv/linux/powerpc/sysdep.c: Add alias _errno for errno.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.S: Likewise.

1998-01-03 20:47  Mark Kettenis  <kettenis@phys.uva.nl>

	* configure.in: Fix --enable-add-ons code.

1998-02-01  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* elf/rtld.c (dl_main): Allow ":" as separator for LD_PRELOAD. Patch
	by Rudolf Leitgeb <leitgeb@leland.stanford.edu>.
	[PR libc/441]

	* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Use first
	occurence in cache.  Reported by Rudolf Leitgeb
	<leitgeb@leland.stanford.edu>.
	[PR libc/440]

1998-02-01 21:18  Ulrich Drepper  <drepper@cygnus.com>

	* libio/iovsscanf.c: Set errno to 0 before calling _IO_vfscanf so
	that it never is EINTR (which is tested for in _IO_vfscanf).

	* Makefile.in: Call sub-make with CVSOPTS.

	* elf/Makefile (distribute): Add dl-procinfo.h.

	* sysdeps/unix/sysv/linux/alpha/Dist: Add rt_sigaction.S.

1998-02-01 15:54  Ulrich Drepper  <drepper@cygnus.com>

	* version.h (VERSION): Bump to 2.0.92.

1998-01-31  Phil Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/siglist.c (_sys_siglist): Additional weak
	alias for __new_sys_siglist.

	thread and not pthread_detach.
Diffstat (limited to 'sysdeps/generic/dl-cache.c')
-rw-r--r--sysdeps/generic/dl-cache.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/sysdeps/generic/dl-cache.c b/sysdeps/generic/dl-cache.c
index 36d6c707d3..8eb18b79cc 100644
--- a/sysdeps/generic/dl-cache.c
+++ b/sysdeps/generic/dl-cache.c
@@ -1,5 +1,5 @@
 /* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 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
@@ -88,13 +88,16 @@ _dl_load_cache_lookup (const char *name)
 	! strcmp (name, ((const char *) &cache->libs[cache->nlibs] +
 			 cache->libs[i].key)))
       {
-	best = ((const char *) &cache->libs[cache->nlibs]
-		+ cache->libs[i].value);
+	if ((best == NULL) || (cache->libs[i].flags == 3))
+	  {
+	    best = ((const char *) &cache->libs[cache->nlibs]
+		    + cache->libs[i].value);
 
-	if (cache->libs[i].flags == 3)
-	  /* We've found an exact match for the shared object and no
-	     general `ELF' release.  Stop searching.  */
-	  break;
+	    if (cache->libs[i].flags == 3)
+	      /* We've found an exact match for the shared object and no
+		 general `ELF' release.  Stop searching.  */
+	      break;
+	  }
       }
   return best;
 }