浏览代码

ldso: fix building for FDPIC systems

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@gentoo.org>
Mike Frysinger 16 年之前
父节点
当前提交
3acdf4fa29
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      ldso/ldso/ldso.c

+ 1 - 1
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);
 				}