From f088c1cd44866d97994059293c5c7beab8732622 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Wed, 5 Jul 2006 19:31:48 +0000 Subject: patch from Bernd Schmidt to abstract away initializing of prog load addresses --- ldso/include/dl-defs.h | 8 ++++++++ ldso/ldso/ldso.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'ldso') diff --git a/ldso/include/dl-defs.h b/ldso/include/dl-defs.h index 5cf260183..db65f78f6 100644 --- a/ldso/include/dl-defs.h +++ b/ldso/include/dl-defs.h @@ -84,6 +84,14 @@ typedef struct { ((LOADADDR) = (BASEADDR)) #endif +/* Initialize a LOADADDR representing the program. It's called from + * DL_BOOT only. + */ +#ifndef DL_INIT_LOADADDR_PROG +# define DL_INIT_LOADADDR_PROG(LOADADDR, BASEADDR) \ + ((LOADADDR) = (DL_LOADADDR_TYPE)(BASEADDR)) +#endif + /* Test whether a given ADDR is more likely to be within the memory * region mapped to TPNT (a struct elf_resolve *) than to TFROM. * Everywhere that this is used, TFROM is initially NULL, and whenever diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c index 82eb044bb..a6209678e 100644 --- a/ldso/ldso/ldso.c +++ b/ldso/ldso/ldso.c @@ -295,7 +295,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr, for (idx = 0; idx < auxvt[AT_PHNUM].a_un.a_val; idx++, phdr++) if (phdr->p_type == PT_PHDR) { - app_tpnt->loadaddr = (ElfW(Addr)) (auxvt[AT_PHDR].a_un.a_val - phdr->p_vaddr); + DL_INIT_LOADADDR_PROG(app_tpnt->loadaddr, auxvt[AT_PHDR].a_un.a_val - phdr->p_vaddr); break; } -- cgit v1.2.3