[git commit] ldso: fix building for FDPIC systems

Mike Frysinger vapier at gentoo.org
Thu Jul 23 09:41:35 UTC 2009


commit: http://git.uclibc.org/uClibc/commit/?id=3acdf4fa294ca935d384762da91b3a37dabb59ca
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/master

The force shareable code missed a spot of using the DL_RELOC_ADDR()
indirection thus leading to invalid operands:
ldso/ldso/ldso.c: In function '_dl_get_ready_to_run':
ldso/ldso/ldso.c:409: error: invalid operands to binary +
	(have 'Elf32_Addr' and 'struct elf32_fdpic_loadaddr')

Signed-off-by: Mike Frysinger <vapier at gentoo.org>
---
 ldso/ldso/ldso.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c
index 19a9fae..786775a 100644
--- a/ldso/ldso/ldso.c
+++ b/ldso/ldso/ldso.c
@@ -406,7 +406,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
 				for (i = 0; i < auxvt[AT_PHNUM].a_un.a_val; i++, ppnt++) {
 					if (ppnt->p_type == PT_LOAD && !(ppnt->p_flags & PF_W))
 						_dl_mprotect((void *) (DL_RELOC_ADDR(app_tpnt->loadaddr, ppnt->p_vaddr) & PAGE_ALIGN),
-							     ((ppnt->p_vaddr + app_tpnt->loadaddr) & ADDR_ALIGN) +
+							     (DL_RELOC_ADDR(app_tpnt->loadaddr, ppnt->p_vaddr) & ADDR_ALIGN) +
 							     (unsigned long) ppnt->p_filesz,
 							     PROT_READ | PROT_WRITE | PROT_EXEC);
 				}
-- 
1.6.3.3



More information about the uClibc-cvs mailing list