about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@redhat.com>2010-05-03 08:08:28 -0700
committerUlrich Drepper <drepper@redhat.com>2010-05-03 08:08:28 -0700
commit5a2a1d75043138e696222ced4560de2fb90b8024 (patch)
tree76c2da1388b8787ebabb9e61cf27d7510d1f5a7b /ChangeLog
parentc739ec3d81a34a87d8ae1276eab4f5880afc3476 (diff)
downloadglibc-5a2a1d75043138e696222ced4560de2fb90b8024.tar.gz
glibc-5a2a1d75043138e696222ced4560de2fb90b8024.tar.xz
glibc-5a2a1d75043138e696222ced4560de2fb90b8024.zip
Don't deadlock in __dl_iterate_phdr while (un)loading objects.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog13
1 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index ad1d327e12..4005fc82c5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2010-02-02  Andreas Schwab  <schwab@redhat.com>
+
+	* sysdeps/generic/ldsodefs.h (struct rtld_global): Add
+	_dl_load_write_lock.
+	* elf/rtld.c (_rtld_global): Initialize it.
+	* elf/dl-support.c (_dl_load_write_lock): Define .
+	* elf/dl-close.c (_dl_close_worker): Lock GL(dl_load_write_lock)
+	when modifying the list of loaded objects.
+	* elf/dl-load.c (lose): Likewise.
+	* elf/dl-object.c (_dl_new_object): Likewise.
+	* elf/dl-iteratephdr.c (__dl_iterate_phdr): Lock
+	GL(dl_load_write_lock) instead of GL(dl_load_lock).
+
 2010-05-03  Ulrich Drepper  <drepper@redhat.com>
 
 	* elf/dl-iteratephdr.c (__dl_iterate_phdr): Remove unnecessary