diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-01-21 23:13:51 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-21 16:13:51 +0100 |
| commit | 044dec0bfa0f3f8f62f7703d6b0a8600c1354dc5 (patch) | |
| tree | dc41c611965cec299dcb62185c5fba4935b6251f /src/elfs/elfloader32.c | |
| parent | ed8b6fe9db863a8d9e473a645e84700c7291bb06 (diff) | |
| download | box64-044dec0bfa0f3f8f62f7703d6b0a8600c1354dc5.tar.gz box64-044dec0bfa0f3f8f62f7703d6b0a8600c1354dc5.zip | |
[ENV] Initial refactor of env variables infrastructure (#2274)
* [ENV] Initial refactor of env variables infrastructure * Ported BOX64_DYNAREC_LOG * Ported more options * Ported BOX64_MALLOC_HACK * Ported BOX64_DYNAREC_TEST * Ported more options * Ported more options * Ported more options * Ported all options * Removed old rcfile parser * Fix * review * fix * fix * more fixes
Diffstat (limited to 'src/elfs/elfloader32.c')
| -rw-r--r-- | src/elfs/elfloader32.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/elfs/elfloader32.c b/src/elfs/elfloader32.c index 2fbef7d5..513eec4d 100644 --- a/src/elfs/elfloader32.c +++ b/src/elfs/elfloader32.c @@ -118,9 +118,9 @@ static void GrabX32CopyMainElfReloc(elfheader_t* head) void checkHookedSymbols(elfheader_t* h); void AddSymbols32(lib_t *maplib, elfheader_t* h) { - //if(box64_dump && h->hash) old_elf_hash_dump(h); - //if(box64_dump && h->gnu_hash) new_elf_hash_dump(h); - if(box64_dump && h->DynSym._32) DumpDynSym32(h); + // if(BOX64ENV(dump) && h->hash) old_elf_hash_dump(h); + // if(BOX64ENV(dump) && h->gnu_hash) new_elf_hash_dump(h); + if (BOX64ENV(dump) && h->DynSym._32) DumpDynSym32(h); if(h==my_context->elfs[0]) GrabX32CopyMainElfReloc(h); #ifndef STATICBUILD @@ -132,7 +132,7 @@ int AllocLoadElfMemory32(box64context_t* context, elfheader_t* head, int mainbin { ptr_t offs = 0; loadProtectionFromMap(); - int log_level = box64_load_addr?LOG_INFO:LOG_DEBUG; + int log_level = BOX64ENV(load_addr)?LOG_INFO:LOG_DEBUG; head->multiblock_n = 0; // count PHEntrie with LOAD uintptr_t max_align = (box64_pagesize-1); @@ -141,10 +141,10 @@ int AllocLoadElfMemory32(box64context_t* context, elfheader_t* head, int mainbin ++head->multiblock_n; } - if(!head->vaddr && box64_load_addr) { - offs = to_ptrv(find31bitBlockNearHint((void*)box64_load_addr, head->memsz, max_align)); - box64_load_addr = offs + head->memsz; - box64_load_addr = (box64_load_addr+0x10ffffff)&~0xffffff; + if(!head->vaddr && BOX64ENV(load_addr)) { + offs = to_ptrv(find31bitBlockNearHint((void*)BOX64ENV(load_addr), head->memsz, max_align)); + BOX64ENV(load_addr) = offs + head->memsz; + BOX64ENV(load_addr) = (BOX64ENV(load_addr)+0x10ffffff)&~0xffffff; } if(!offs && !head->vaddr) offs = (uintptr_t)find31bitBlockElf(head->memsz, mainbin, max_align); @@ -311,7 +311,7 @@ int AllocLoadElfMemory32(box64context_t* context, elfheader_t* head, int mainbin mprotect((void*)paddr, asize, prot); } #ifdef DYNAREC - if(box64_dynarec && (e->p_flags & PF_X)) { + if(BOX64ENV(dynarec) && (e->p_flags & PF_X)) { dynarec_log(LOG_DEBUG, "Add ELF eXecutable Memory %p:%p\n", head->multiblocks[n].p, (void*)head->multiblocks[n].asize); addDBFromAddressRange((uintptr_t)head->multiblocks[n].p, head->multiblocks[n].asize); } |