about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@codesourcery.com>2014-01-31 17:51:31 +0000
committerMaciej W. Rozycki <macro@codesourcery.com>2014-01-31 17:51:31 +0000
commit0d23a5c1b1908700d25b7e3c6cece148e19dded4 (patch)
tree68076816a4d5e06e01bdc0efdb433f613bb61e62 /ChangeLog
parent0037bb6010522e20dde2da7922071d5cb53f67eb (diff)
downloadglibc-0d23a5c1b1908700d25b7e3c6cece148e19dded4.tar.gz
glibc-0d23a5c1b1908700d25b7e3c6cece148e19dded4.tar.xz
glibc-0d23a5c1b1908700d25b7e3c6cece148e19dded4.zip
[BZ #16046] Static dlopen correction fallout fixes.
Fixes to address issues from BZ #15022 resolution, as follows:

* TLS updates to csu/libc-tls.c -- we now have a proper main map, so
  there's no longer a need to create a separate fake one to keep TLS
  structures,

* random updates to elf/dl-close.c -- LM_ID_BASE is now a valid name
  space ID for static executables as well, so assert that we don't
  unload the main map.  Similarly dl_nns isn't supposed to be 0 for
  static executables anymore,

* actual BZ #16046 fix to elf/dl-iteratephdr.c -- the dl_iterate_phdr
  special function for static executables isn't needed anymore, provided
  that l_phdr and l_phnum members of the main map have been properly
  initialized (done in _dl_non_dynamic_init in elf/dl-support.c now),

* ld.so.cache loader update to elf/dl-load.c --
  GL(dl_ns)[LM_ID_BASE]._ns_loaded is now always initialized in static
  executables so can become the fallback loader map to check for
  DF_1_NODEFLIB, provided that the l_flags_1 member of the main map has
  been properly initialized (done in elf/dl-support.c now); this also
  ensures previous semantics elsewhere in elf/dl-load.c,

* matching updates to elf/dl-support.c -- to complement the two fixes
  above.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog16
1 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 9321f5996f..59cbf74947 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2014-01-31  Maciej W. Rozycki  <macro@codesourcery.com>
+
+	[BZ #16046]
+	* csu/libc-tls.c (static_map): Remove variable.
+	(__libc_setup_tls): Use main executable's link map for TLS data.
+	* elf/dl-close.c (_dl_close_worker) [!SHARED]: Remove special
+	casing for LM_ID_BASE and GL(dl_nns).
+	* elf/dl-iteratephdr.c [!SHARED] (dl_iterate_phdr): Remove
+	function.  Alias dl_iterate_phdr to __dl_iterate_phdr.
+	* elf/dl-load.c (_dl_map_object) [!SHARED]: Remove special
+	casing for GL(dl_ns)[LM_ID_BASE]._ns_loaded.
+	* elf/dl-support.c (_dl_main_map): Also initialize l_flags_1
+	member.
+	(_dl_non_dynamic_init): Also initialize _dl_main_map's l_phdr and
+	l_phnum members.
+
 2014-01-30  Alexandre Oliva <aoliva@redhat.com>
 
 	* manual/debug.texi: Document MTASC-safety properties.