[uClibc-cvs] CVS update of uClibc/ldso/ldso (dl-startup.c)
Erik Andersen
andersen at codepoet.org
Mon Aug 16 19:17:38 UTC 2004
Date: Monday, August 16, 2004 @ 13:17:38
Author: andersen
Path: /var/cvs/uClibc/ldso/ldso
Modified: dl-startup.c (1.13 -> 1.14)
The pagesize variable used when starting up is _not_ the same
as the _dl_pagesize global, so do not alias the global.
-Erik
Index: uClibc/ldso/ldso/dl-startup.c
diff -u uClibc/ldso/ldso/dl-startup.c:1.13 uClibc/ldso/ldso/dl-startup.c:1.14
--- uClibc/ldso/ldso/dl-startup.c:1.13 Sat Jun 26 19:16:05 2004
+++ uClibc/ldso/ldso/dl-startup.c Mon Aug 16 13:17:37 2004
@@ -133,7 +133,7 @@
Elf32_Dyn *dpnt;
unsigned long *hash_addr;
struct r_debug *debug_addr = NULL;
- size_t _dl_pagesize;
+ size_t pagesize;
int indx;
#if defined(__i386__)
int status = 0;
@@ -290,8 +290,8 @@
/* Call mmap to get a page of writable memory that can be used
* for _dl_malloc throughout the shared lib loader. */
- _dl_pagesize = (auxvt[AT_PAGESZ].a_un.a_val)? auxvt[AT_PAGESZ].a_un.a_val : PAGE_SIZE;
- mmap_zero = malloc_buffer = _dl_mmap((void *) 0, _dl_pagesize,
+ pagesize = (auxvt[AT_PAGESZ].a_un.a_val)? auxvt[AT_PAGESZ].a_un.a_val : PAGE_SIZE;
+ mmap_zero = malloc_buffer = _dl_mmap((void *) 0, pagesize,
PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
if (_dl_mmap_check_error(mmap_zero)) {
SEND_STDERR("dl_boot: mmap of a spare page failed!\n");
@@ -382,7 +382,7 @@
* Even though the program header is marked RWE, the kernel gives
* it to us rx.
*/
- Elf32_Addr mpa = (ppnt->p_vaddr + app_tpnt->loadaddr) & ~(_dl_pagesize - 1);
+ Elf32_Addr mpa = (ppnt->p_vaddr + app_tpnt->loadaddr) & ~(pagesize - 1);
Elf32_Word mps = ((ppnt->p_vaddr + app_tpnt->loadaddr) - mpa) + ppnt->p_memsz;
if(_dl_mprotect(mpa, mps, PROT_READ | PROT_WRITE | PROT_EXEC)) {
SEND_STDERR("Couldn't mprotect .dynamic segment to rwx.\n");
More information about the uClibc-cvs
mailing list