about summary refs log tree commit diff
path: root/elf/ldconfig.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2006-03-06 10:59:43 +0000
committerRoland McGrath <roland@gnu.org>2006-03-06 10:59:43 +0000
commit3858bf28a66f449cc2d815122032a60cf9bf793e (patch)
tree280ca2fcf92f8a2b01f7d5c1aaeef093c21954e1 /elf/ldconfig.c
parent6f920003899406055edfeb403989ce9215b34068 (diff)
downloadglibc-3858bf28a66f449cc2d815122032a60cf9bf793e.tar.gz
glibc-3858bf28a66f449cc2d815122032a60cf9bf793e.tar.xz
glibc-3858bf28a66f449cc2d815122032a60cf9bf793e.zip
	* README.template: Update for 2.4.
	* README: Regenerated.
	* manual/install.texi (Configuring and compiling): Separate build
	directory is mandatory.  Use glibc-2.4 in example.
	Update --enable-add-ons description.
	(Supported Configurations): Remove section.
	* INSTALL: Regenerated.
Diffstat (limited to 'elf/ldconfig.c')
-rw-r--r--elf/ldconfig.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/elf/ldconfig.c b/elf/ldconfig.c
index 52add4ff58..359fbdbf0e 100644
--- a/elf/ldconfig.c
+++ b/elf/ldconfig.c
@@ -693,7 +693,20 @@ search_dir (const struct dir_entry *entry)
 #endif
 	      !is_hwcap_platform (direntry->d_name)))
 	continue;
-      len = strlen (entry->path) + strlen (direntry->d_name);
+      len = strlen (direntry->d_name);
+      /* Skip temporary files created by the prelink program.  Files with
+	 names like these are never really DSOs we want to look at.  */
+      if (len >= sizeof (".#prelink#") - 1)
+	{
+	  if (strcmp (direntry->d_name + len - sizeof (".#prelink#") + 1,
+		      ".#prelink#") == 0)
+	    continue;
+	  if (len >= sizeof (".#prelink#.XXXXXX") - 1
+	      && memcmp (direntry->d_name + len - sizeof (".#prelink#.XXXXXX")
+			 + 1, ".#prelink#.", sizeof (".#prelink#.") - 1) == 0)
+	    continue;
+	}
+      len += strlen (entry->path);
       if (len > file_name_len)
 	{
 	  file_name_len = len + 1;