This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
RE: [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>
- Date: Wed, 10 Sep 2014 16:43:51 +0200
- Subject: RE: [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> <1408493406-86741-2-git-send-email-petar dot jovanovic at rt-rk dot com>
ping
-----Original Message-----
From: Petar Jovanovic [mailto:petar.jovanovic@rt-rk.com]
Sent: Wednesday, August 20, 2014 2:10 AM
To: libc-alpha@sourceware.org
Cc: petar.jovanovic@imgtec.com; davem@davemloft.net; Petar Jovanovic
Subject: [PATCH] Fix dynamic linker issue with bind-now
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