summary refs log tree commit diff
path: root/elf/rtld.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-05-11 13:00:20 +0000
committerUlrich Drepper <drepper@redhat.com>1999-05-11 13:00:20 +0000
commit12b5b6b7f78ea111e89bbf638294a5413c791072 (patch)
tree2667efe9abc4443d7fe0350feed47d839ff7970c /elf/rtld.c
parent5ac3d2173cc6a11535e1694a12f9f11e877c36ea (diff)
downloadglibc-12b5b6b7f78ea111e89bbf638294a5413c791072.tar.gz
glibc-12b5b6b7f78ea111e89bbf638294a5413c791072.tar.xz
glibc-12b5b6b7f78ea111e89bbf638294a5413c791072.zip
Update.
1999-05-11  Ulrich Drepper  <drepper@cygnus.com>

	* elf/Versions (ld.so) [GLIBC_2.1.1]: Add _dl_lazy.
	* elf/dl-open.c (_dl_open_worker): Only relocate newly loaded objects
	lazily if LD_BIND_NOW is not set.
	* elf/dl-support.c (_dl_lazy): New variable.
	(non_dynamic_init): Set _dl_lazy according to LD_BIND_NOW envvar.
	* elf/rtld.c (_dl_lazy): new global variable.
	( dl_main): Remove lazy, replace it by _dl_lazy.

1999-05-06  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* locale/setlocale.c (new_composite_name): Check also whether the
	first category name differs.

1999-05-11  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/ftime.c: Use the bsd implementation, not
	the generic one.

1999-05-11  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/generic/bits/socket.h (struct sockaddr_storage): New
	structure; storage suitable for any socket address.
	* sysdeps/unix/sysv/linux/bits/socket.h (struct sockaddr_storage):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/socket.h (struct
	sockaddr_storage): Likewise.

	* inet/netinet/in.h: Use ULONG_MAX not ~0 to test for a 64-bit
	platform.
Diffstat (limited to 'elf/rtld.c')
-rw-r--r--elf/rtld.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/elf/rtld.c b/elf/rtld.c
index acbe3cdcbd..064cd20dd3 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -82,6 +82,7 @@ struct r_search_path *_dl_search_paths;
 const char *_dl_profile;
 const char *_dl_profile_output;
 struct link_map *_dl_profile_map;
+int _dl_lazy;
 int _dl_debug_libs;
 int _dl_debug_impcalls;
 int _dl_debug_bindings;
@@ -332,7 +333,6 @@ dl_main (const ElfW(Phdr) *phdr,
 	 ElfW(Addr) *user_entry)
 {
   const ElfW(Phdr) *ph;
-  int lazy;
   enum mode mode;
   struct link_map **preloads;
   unsigned int npreloads;
@@ -346,7 +346,7 @@ dl_main (const ElfW(Phdr) *phdr,
   hp_timing_t diff;
 
   /* Process the environment variable which control the behaviour.  */
-  process_envvars (&mode, &lazy);
+  process_envvars (&mode, &_dl_lazy);
 
   /* Set up a flag which tells we are just starting.  */
   _dl_starting_up = 1;
@@ -377,7 +377,7 @@ dl_main (const ElfW(Phdr) *phdr,
 	if (! strcmp (_dl_argv[1], "--list"))
 	  {
 	    mode = list;
-	    lazy = -1;	/* This means do no dependency analysis.  */
+	    _dl_lazy = -1;	/* This means do no dependency analysis.  */
 
 	    ++_dl_skip_args;
 	    --_dl_argc;
@@ -853,13 +853,13 @@ of this helper program; chances are you did not intend to run this program.\n\
 	  }
       else
 	{
-	  if (lazy >= 0)
+	  if (_dl_lazy >= 0)
 	    {
 	      /* We have to do symbol dependency testing.  */
 	      struct relocate_args args;
 	      struct link_map *l;
 
-	      args.lazy = lazy;
+	      args.lazy = _dl_lazy;
 
 	      l = _dl_loaded;
 	      while (l->l_next)
@@ -974,7 +974,7 @@ of this helper program; chances are you did not intend to run this program.\n\
     hp_timing_t add;
 
     /* If we are profiling we also must do lazy reloaction.  */
-    lazy |= consider_profiling;
+    _dl_lazy |= consider_profiling;
 
     l = _dl_loaded;
     while (l->l_next)
@@ -984,7 +984,7 @@ of this helper program; chances are you did not intend to run this program.\n\
     do
       {
 	if (l != &_dl_rtld_map)
-	  _dl_relocate_object (l, l->l_scope, lazy, consider_profiling);
+	  _dl_relocate_object (l, l->l_scope, _dl_lazy, consider_profiling);
 
 	l = l->l_prev;
       }