about summary refs log tree commit diff
path: root/elf
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-08-08 07:43:03 +0000
committerUlrich Drepper <drepper@redhat.com>2003-08-08 07:43:03 +0000
commit334fcf2a65f3b58867ce136da767c6c58a3d45ed (patch)
tree36daebcd9bc1c447dc5bd04ac0e1b310214fa8e6 /elf
parenta30fb2df74710413014897f527bb565caf7cab9f (diff)
downloadglibc-334fcf2a65f3b58867ce136da767c6c58a3d45ed.tar.gz
glibc-334fcf2a65f3b58867ce136da767c6c58a3d45ed.tar.xz
glibc-334fcf2a65f3b58867ce136da767c6c58a3d45ed.zip
Update.
2003-08-07  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/generic/ldsodefs.h (_rtld_global): Add
	_dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
	* elf/rtld.c (rtld_lock_default_lock_recursive,
	rtld_lock_default_unlock_recursive): New functions.
	(dl_main): Initialize _dl_rtld_lock_recursive and
	_dl_rtld_unlock_recursive.

2003-08-05  Jakub Jelinek  <jakub@redhat.com>

	* elf/ldconfig.c (main): Append SLIBDIR and LIBDIR to
	config_file directories instead of prepending.
Diffstat (limited to 'elf')
-rw-r--r--elf/ldconfig.c4
-rw-r--r--elf/rtld.c20
2 files changed, 22 insertions, 2 deletions
diff --git a/elf/ldconfig.c b/elf/ldconfig.c
index b7ac4882f5..2a24a17799 100644
--- a/elf/ldconfig.c
+++ b/elf/ldconfig.c
@@ -1117,12 +1117,12 @@ main (int argc, char **argv)
 
   if (!opt_only_cline)
     {
+      parse_conf (config_file);
+
       /* Always add the standard search paths.  */
       add_system_dir (SLIBDIR);
       if (strcmp (SLIBDIR, LIBDIR))
 	add_system_dir (LIBDIR);
-
-      parse_conf (config_file);
     }
 
   search_dirs ();
diff --git a/elf/rtld.c b/elf/rtld.c
index c52909457d..8f9fc7c063 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -588,6 +588,20 @@ _dl_initial_error_catch_tsd (void)
 }
 #endif
 
+#if defined SHARED && defined _LIBC_REENTRANT \
+    && defined __rtld_lock_default_lock_recursive
+static void rtld_lock_default_lock_recursive (void *lock)
+{
+  __rtld_lock_default_lock_recursive (lock);
+}
+
+static void rtld_lock_default_unlock_recursive (void *lock)
+{
+  __rtld_lock_default_unlock_recursive (lock);
+}
+#endif
+
+
 static const char *library_path;	/* The library search path.  */
 static const char *preloadlist;		/* The list preloaded objects.  */
 static int version_info;		/* Nonzero if information about
@@ -626,6 +640,12 @@ dl_main (const ElfW(Phdr) *phdr,
   GL(dl_init_static_tls) = &_dl_nothread_init_static_tls;
 #endif
 
+#if defined SHARED && defined _LIBC_REENTRANT \
+    && defined __rtld_lock_default_lock_recursive
+  GL(dl_rtld_lock_recursive) = rtld_lock_default_lock_recursive;
+  GL(dl_rtld_unlock_recursive) = rtld_lock_default_unlock_recursive;
+#endif
+
   /* Process the environment variable which control the behaviour.  */
   process_envvars (&mode);