summary refs log tree commit diff
path: root/elf/dl-deps.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-09-05 03:42:43 +0000
committerUlrich Drepper <drepper@redhat.com>2001-09-05 03:42:43 +0000
commit407fe3bbb3708abc6796acc71c5fe34371c2847c (patch)
tree918b347c952d9d399789d21394b991bd42916977 /elf/dl-deps.c
parent71ce28fd1abbccc9814d199d770e673135a33ee1 (diff)
downloadglibc-407fe3bbb3708abc6796acc71c5fe34371c2847c.tar.gz
glibc-407fe3bbb3708abc6796acc71c5fe34371c2847c.tar.xz
glibc-407fe3bbb3708abc6796acc71c5fe34371c2847c.zip
Update.
2001-09-04  Ulrich Drepper  <drepper@redhat.com>

	Correct very misleading message for error in failed runtime relocation.
	* elf/dl-error.c (_dl_signal_error): Take extra parameter to describe
	place of the error.
	(_dl_signal_cerror): Likewise.
	* sysdeps/generic/ldsodefs.h: Adjust prototypes.
	* elf/dl-close.c: Likewise.
	* elf/dl-deps.c: Likewise.
	* elf/dl-load.c: Likewise.
	* elf/dl-lookup.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-reloc.c: Likewise.
	* elf/dl-sym.c: Likewise.
	* elf/dl-version.c: Likewise.
	* sysdeps/generic/dl-sysdep.c: Likewise.
Diffstat (limited to 'elf/dl-deps.c')
-rw-r--r--elf/dl-deps.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/elf/dl-deps.c b/elf/dl-deps.c
index 997cbfeb83..c4bc9874cc 100644
--- a/elf/dl-deps.c
+++ b/elf/dl-deps.c
@@ -97,7 +97,7 @@ struct list
 									      \
 	/* DST must not appear in SUID/SGID programs.  */		      \
 	if (__libc_enable_secure)					      \
-	  _dl_signal_error (0, __str,					      \
+	  _dl_signal_error (0, __str, NULL,				      \
 			    N_("DST not allowed in SUID/SGID programs"));     \
 									      \
 	__newp = (char *) alloca (DL_DST_REQUIRED (l, __str, strlen (__str),  \
@@ -110,7 +110,7 @@ struct list
 	    /* The replacement for the DST is not known.  We can't	      \
 	       processed.  */						      \
 	    if (fatal)							      \
-	      _dl_signal_error (0, __str, N_("\
+	      _dl_signal_error (0, __str, NULL, N_("\
 empty dynamics string token substitution"));				      \
 	    else							      \
 	      {								      \
@@ -450,7 +450,7 @@ _dl_map_object_deps (struct link_map *map,
 
 	  l->l_initfini = malloc (nneeded * sizeof needed[0]);
 	  if (l->l_initfini == NULL)
-	    _dl_signal_error (ENOMEM, map->l_name,
+	    _dl_signal_error (ENOMEM, map->l_name, NULL,
 			      N_("cannot allocate dependency list"));
 	  memcpy (l->l_initfini, needed, nneeded * sizeof needed[0]);
 	}
@@ -480,7 +480,7 @@ out:
     (struct link_map **) malloc ((2 * nlist + 1)
 				 * sizeof (struct link_map *));
   if (map->l_initfini == NULL)
-    _dl_signal_error (ENOMEM, map->l_name,
+    _dl_signal_error (ENOMEM, map->l_name, NULL,
 		      N_("cannot allocate symbol search list"));
 
 
@@ -527,7 +527,7 @@ out:
 	  if (runp != NULL)
 	    {
 	      while (*runp != NULL)
-		if (*runp == l)
+		if (__builtin_expect (*runp++ == l, 0))
 		  {
 		    struct link_map *here = map->l_initfini[k];
 
@@ -539,8 +539,6 @@ out:
 
 		    break;
 		  }
-		else
-		  ++runp;
 	    }
 	}
     }
@@ -549,5 +547,5 @@ out:
 
   if (errno_reason)
     _dl_signal_error (errno_reason == -1 ? 0 : errno_reason,
-		      objname, errstring);
+		      objname, NULL, errstring);
 }