This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] Fix dynamic linker issue with bind-now
- From: Petar Jovanovic <petar dot jovanovic at rt-rk dot com>
- To: libc-alpha at sourceware dot org
- Cc: petar dot jovanovic at imgtec dot com, davem at davemloft dot net, Petar Jovanovic <petar dot jovanovic at rt-rk dot com>
- Date: Wed, 20 Aug 2014 02:10:06 +0200
- Subject: [PATCH] Fix dynamic linker issue with bind-now
- Authentication-results: sourceware.org; auth=none
- References: <1408493406-86741-1-git-send-email-petar dot jovanovic at rt-rk dot com>
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(-)
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; \
--
1.7.9.5