summary refs log tree commit diff
path: root/elf/dl-load.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-load.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-load.c')
-rw-r--r--elf/dl-load.c33
1 files changed, 20 insertions, 13 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c
index fe4e957ced..cf05ad0dc8 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -345,7 +345,7 @@ add_name_to_object (struct link_map *l, const char *name)
   if (newname == NULL)
     {
       /* No more memory.  */
-      _dl_signal_error (ENOMEM, name, N_("cannot allocate name record"));
+      _dl_signal_error (ENOMEM, name, NULL, N_("cannot allocate name record"));
       return;
     }
   /* The object should have a libname set from _dl_new_object.  */
@@ -452,7 +452,7 @@ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
 	    malloc (sizeof (*dirp) + ncapstr * sizeof (enum r_dir_status)
 		    + where_len + len + 1);
 	  if (dirp == NULL)
-	    _dl_signal_error (ENOMEM, NULL,
+	    _dl_signal_error (ENOMEM, NULL, NULL,
 			      N_("cannot create cache for search path"));
 
 	  dirp->dirname = ((char *) dirp + sizeof (*dirp)
@@ -521,7 +521,7 @@ decompose_rpath (struct r_search_path_struct *sps,
 	      result = (struct r_search_path_elem **)
 		malloc (sizeof (*result));
 	      if (result == NULL)
-		_dl_signal_error (ENOMEM, NULL,
+		_dl_signal_error (ENOMEM, NULL, NULL,
 				  N_("cannot create cache for search path"));
 	      result[0] = NULL;
 
@@ -537,7 +537,8 @@ decompose_rpath (struct r_search_path_struct *sps,
      string tokens.  */
   copy = expand_dynamic_string_token (l, rpath);
   if (copy == NULL)
-    _dl_signal_error (ENOMEM, NULL, N_("cannot create RUNPATH/RPATH copy"));
+    _dl_signal_error (ENOMEM, NULL, NULL,
+		      N_("cannot create RUNPATH/RPATH copy"));
 
   /* Count the number of necessary elements in the result array.  */
   nelems = 0;
@@ -550,7 +551,8 @@ decompose_rpath (struct r_search_path_struct *sps,
   result = (struct r_search_path_elem **) malloc ((nelems + 1 + 1)
 						  * sizeof (*result));
   if (result == NULL)
-    _dl_signal_error (ENOMEM, NULL, N_("cannot create cache for search path"));
+    _dl_signal_error (ENOMEM, NULL, NULL,
+		      N_("cannot create cache for search path"));
 
   fillin_rpath (copy, result, ":", 0, what, where);
 
@@ -587,7 +589,8 @@ _dl_init_paths (const char *llp)
   aelem = rtld_search_dirs.dirs = (struct r_search_path_elem **)
     malloc ((nsystem_dirs_len + 1) * sizeof (struct r_search_path_elem *));
   if (rtld_search_dirs.dirs == NULL)
-    _dl_signal_error (ENOMEM, NULL, N_("cannot create search path array"));
+    _dl_signal_error (ENOMEM, NULL, NULL,
+		      N_("cannot create search path array"));
 
   round_size = ((2 * sizeof (struct r_search_path_elem) - 1
 		 + ncapstr * sizeof (enum r_dir_status))
@@ -597,7 +600,8 @@ _dl_init_paths (const char *llp)
     malloc ((sizeof (system_dirs) / sizeof (system_dirs[0]))
 	    * round_size * sizeof (struct r_search_path_elem));
   if (rtld_search_dirs.dirs[0] == NULL)
-    _dl_signal_error (ENOMEM, NULL, N_("cannot create cache for search path"));
+    _dl_signal_error (ENOMEM, NULL, NULL,
+		      N_("cannot create cache for search path"));
 
   rtld_search_dirs.malloced = 0;
   pelem = _dl_all_dirs = rtld_search_dirs.dirs[0];
@@ -689,7 +693,7 @@ _dl_init_paths (const char *llp)
       env_path_list.dirs = (struct r_search_path_elem **)
 	malloc ((nllp + 1) * sizeof (struct r_search_path_elem *));
       if (env_path_list.dirs == NULL)
-	_dl_signal_error (ENOMEM, NULL,
+	_dl_signal_error (ENOMEM, NULL, NULL,
 			  N_("cannot create cache for search path"));
 
       (void) fillin_rpath (llp_tmp, env_path_list.dirs, ":;",
@@ -741,7 +745,7 @@ lose (int code, int fd, const char *name, char *realname, struct link_map *l,
       free (l);
     }
   free (realname);
-  _dl_signal_error (code, name, msg);
+  _dl_signal_error (code, name, NULL, msg);
 }
 
 
@@ -819,7 +823,8 @@ _dl_map_object_from_fd (const char *name, int fd, struct filebuf *fbp,
       if (_dl_zerofd == -1)
 	{
 	  __close (fd);
-	  _dl_signal_error (errno, NULL, N_("cannot open zero fill device"));
+	  _dl_signal_error (errno, NULL, NULL,
+			    N_("cannot open zero fill device"));
 	}
     }
 #endif
@@ -1101,7 +1106,8 @@ _dl_map_object_from_fd (const char *name, int fd, struct filebuf *fbp,
 
       free (l);
 
-      _dl_signal_error (0, name, N_("shared object cannot be dlopen()ed"));
+      _dl_signal_error (0, name, NULL,
+			N_("shared object cannot be dlopen()ed"));
     }
 
   if (l->l_info[DT_HASH])
@@ -1720,7 +1726,7 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded,
 	  /* Enter the new object in the list of loaded objects.  */
 	  if ((name_copy = local_strdup (name)) == NULL
 	      || (l = _dl_new_object (name_copy, name, type, loader)) == NULL)
-	    _dl_signal_error (ENOMEM, name,
+	    _dl_signal_error (ENOMEM, name, NULL,
 			      N_("cannot create shared object descriptor"));
 	  /* Signal that this is a faked entry.  */
 	  l->l_faked = 1;
@@ -1734,7 +1740,8 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded,
 	  return l;
 	}
       else
-	_dl_signal_error (errno, name, N_("cannot open shared object file"));
+	_dl_signal_error (errno, name, NULL,
+			  N_("cannot open shared object file"));
     }
 
   return _dl_map_object_from_fd (name, fd, &fb, realname, loader, type, mode);