Fix dynamic linker issue with bind-now

Message ID 1408493406-86741-2-git-send-email-petar.jovanovic@rt-rk.com
State Superseded
Headers

Commit Message

Petar Jovanovic Aug. 20, 2014, 12:10 a.m. UTC
  Fix the bind-now case when DT_REL and DT_JMPREL sections are separate
and there is a gap between them.
---
 elf/dynamic-link.h |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
  

Patch

diff --git a/elf/dynamic-link.h b/elf/dynamic-link.h
index 7b3e295..d5dea8e 100644
--- a/elf/dynamic-link.h
+++ b/elf/dynamic-link.h
@@ -133,7 +133,9 @@  elf_machine_lazy_rel (struct link_map *map,
 									      \
 	if (ranges[0].start + ranges[0].size == (start + size))		      \
 	  ranges[0].size -= size;					      \
-	if (! ELF_DURING_STARTUP && ((do_lazy) || ranges[0].size == 0))	      \
+	if (! ELF_DURING_STARTUP                                              \
+            && ((do_lazy) || ranges[0].size == 0 ||                           \
+                ranges[0].start + ranges[0].size != start))                   \
 	  {								      \
 	    ranges[1].start = start;					      \
 	    ranges[1].size = size;					      \