From b65c7b2c79debcb9017e31913e01eeaa280106fb Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 22 Nov 2009 23:54:40 -0500 Subject: ldso: let people disable the implicit path search Signed-off-by: Mike Frysinger --- ldso/ldso/ldso.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'ldso/ldso/ldso.c') diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c index 021f109cd..45d499574 100644 --- a/ldso/ldso/ldso.c +++ b/ldso/ldso/ldso.c @@ -490,6 +490,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr, tpnt->libname = (char *) DL_RELOC_ADDR(app_tpnt->loadaddr, ppnt->p_vaddr); +#ifdef __LDSO_SEARCH_INTERP_PATH__ /* Store the path where the shared lib loader was found * for later use */ @@ -499,6 +500,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr, *ptmp = '\0'; _dl_debug_early("Lib Loader: (%x) %s\n", (unsigned) DL_LOADADDR_BASE(tpnt->loadaddr), tpnt->libname); +#endif } /* Discover any TLS sections if the target supports them. */ -- cgit v1.2.3 From 00673f93826bf1fbde728d202c319a684bb87150 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Mon, 23 Nov 2009 21:35:34 -0500 Subject: nommu: use MAP_UNINITIALIZE for mallocs Now that the kernel supports MAP_UNINITIALIZE, have the malloc places use it to get real uninitialized memory on no-mmu systems. This avoids a lot of normally useless overhead involved in zeroing out all of the memory (sometimes multiple times). Signed-off-by: Mike Frysinger --- ldso/ldso/ldso.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ldso/ldso/ldso.c') diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c index 45d499574..01e707166 100644 --- a/ldso/ldso/ldso.c +++ b/ldso/ldso/ldso.c @@ -193,7 +193,7 @@ void *_dl_malloc(size_t size) _dl_debug_early("mmapping more memory\n"); _dl_mmap_zero = _dl_malloc_addr = _dl_mmap((void *) 0, rounded_size, - PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZE, -1, 0); if (_dl_mmap_check_error(_dl_mmap_zero)) { _dl_dprintf(_dl_debug_file, "%s: mmap of a spare page failed!\n", _dl_progname); _dl_exit(20); -- cgit v1.2.3 From 8d845a64e8d01f6b8e818f627b985122ca1d3984 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Wed, 25 Nov 2009 10:59:31 +0100 Subject: avoid warning about unused variable If LDSO_SEARCH_INTERP_PATH is off then ptmp wasn't used. Signed-off-by: Bernhard Reutner-Fischer --- ldso/ldso/ldso.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'ldso/ldso/ldso.c') diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c index 01e707166..bb414b14a 100644 --- a/ldso/ldso/ldso.c +++ b/ldso/ldso/ldso.c @@ -486,19 +486,18 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr, /* OK, fill this in - we did not have this before */ if (ppnt->p_type == PT_INTERP) { - char *ptmp; - tpnt->libname = (char *) DL_RELOC_ADDR(app_tpnt->loadaddr, ppnt->p_vaddr); - #ifdef __LDSO_SEARCH_INTERP_PATH__ - /* Store the path where the shared lib loader was found - * for later use - */ - _dl_ldsopath = _dl_strdup(tpnt->libname); - ptmp = _dl_strrchr(_dl_ldsopath, '/'); - if (ptmp != _dl_ldsopath) - *ptmp = '\0'; - + { + char *ptmp; + /* Store the path where the shared lib loader was found + * for later use + */ + _dl_ldsopath = _dl_strdup(tpnt->libname); + ptmp = _dl_strrchr(_dl_ldsopath, '/'); + if (ptmp != _dl_ldsopath) + *ptmp = '\0'; + } _dl_debug_early("Lib Loader: (%x) %s\n", (unsigned) DL_LOADADDR_BASE(tpnt->loadaddr), tpnt->libname); #endif } -- cgit v1.2.3