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 | |
| 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')
| -rw-r--r-- | src/elfs/elfload_dump.c | 60 | ||||
| -rwxr-xr-x | src/elfs/elfload_dump32.c | 18 | ||||
| -rw-r--r-- | src/elfs/elfloader.c | 28 | ||||
| -rw-r--r-- | src/elfs/elfloader32.c | 18 | ||||
| -rw-r--r-- | src/elfs/elfparser.c | 8 | ||||
| -rwxr-xr-x | src/elfs/elfparser32.c | 6 |
6 files changed, 68 insertions, 70 deletions
diff --git a/src/elfs/elfload_dump.c b/src/elfs/elfload_dump.c index 2ec0d603..fbd24eaa 100644 --- a/src/elfs/elfload_dump.c +++ b/src/elfs/elfload_dump.c @@ -256,7 +256,7 @@ void DumpMainHeader32(Elf32_Ehdr *header, elfheader_t *h) { } #endif void DumpMainHeader64(Elf64_Ehdr *header, elfheader_t *h) { - if(box64_dump) { + if(BOX64ENV(dump)) { printf_dump(LOG_NEVER, "ELF Dump main header\n"); printf_dump(LOG_NEVER, " Entry point = %p\n", (void*)header->e_entry); printf_dump(LOG_NEVER, " Program Header table offset = %p\n", (void*)header->e_phoff); @@ -284,11 +284,11 @@ void DumpSymTab32(elfheader_t *h) { } #endif void DumpSymTab64(elfheader_t *h) { - if(box64_dump && h->SymTab._64) { + if (BOX64ENV(dump) && h->SymTab._64) { const char* name = ElfName(h); printf_dump(LOG_NEVER, "ELF Dump SymTab(%zu)=\n", h->numSymTab); for (size_t i=0; i<h->numSymTab; ++i) - printf_dump(LOG_NEVER, " %s:SymTab[%zu] = \"%s\", value=%p, size=%ld, info/other=%d/%d index=%d\n", name, + printf_dump(LOG_NEVER, " %s:SymTab[%zu] = \"%s\", value=%p, size=%ld, info/other=%d/%d index=%d\n", name, i, h->StrTab+h->SymTab._64[i].st_name, (void*)h->SymTab._64[i].st_value, h->SymTab._64[i].st_size, h->SymTab._64[i].st_info, h->SymTab._64[i].st_other, h->SymTab._64[i].st_shndx); printf_dump(LOG_NEVER, "ELF Dump SymTab=====\n"); @@ -300,7 +300,7 @@ void DumpDynamicSections32(elfheader_t *h) { } #endif void DumpDynamicSections64(elfheader_t *h) { - if(box64_dump && h->Dynamic._64) { + if (BOX64ENV(dump) && h->Dynamic._64) { printf_dump(LOG_NEVER, "ELF Dump Dynamic(%zu)=\n", h->numDynamic); for (size_t i=0; i<h->numDynamic; ++i) printf_dump(LOG_NEVER, " Dynamic %04zu : %s\n", i, DumpDynamic(h->Dynamic._64+i)); @@ -313,7 +313,7 @@ void DumpDynSym32(elfheader_t *h) { } #endif void DumpDynSym64(elfheader_t *h) { - if(box64_dump && h->DynSym._64) { + if (BOX64ENV(dump) && h->DynSym._64) { const char* name = ElfName(h); printf_dump(LOG_NEVER, "ELF Dump DynSym(%zu)=\n", h->numDynSym); for (size_t i=0; i<h->numDynSym; ++i) { @@ -334,40 +334,38 @@ void DumpDynamicNeeded(elfheader_t *h) { if(box64_is32bits) DumpDynamicNeeded32(h); - else - if(box64_dump && h->DynStrTab) { - printf_dump(LOG_NEVER, "ELF Dump DT_NEEDED=====\n"); - for (size_t i=0; i<h->numDynamic; ++i) - if(h->Dynamic._64[i].d_tag==DT_NEEDED) { - printf_dump(LOG_NEVER, " Needed : %s\n", h->DynStrTab+h->Dynamic._64[i].d_un.d_val + h->delta); - } - printf_dump(LOG_NEVER, "ELF Dump DT_NEEDED=====\n"); - } + else if (BOX64ENV(dump) && h->DynStrTab) { + printf_dump(LOG_NEVER, "ELF Dump DT_NEEDED=====\n"); + for (size_t i=0; i<h->numDynamic; ++i) + if(h->Dynamic._64[i].d_tag==DT_NEEDED) { + printf_dump(LOG_NEVER, " Needed : %s\n", h->DynStrTab+h->Dynamic._64[i].d_un.d_val + h->delta); + } + printf_dump(LOG_NEVER, "ELF Dump DT_NEEDED=====\n"); + } } -void DumpDynamicRPath32(elfheader_t *h) +void DumpDynamicRPath32(elfheader_t *h) #ifndef BOX32 -{ } + {} #else - ; + ; #endif void DumpDynamicRPath(elfheader_t *h) { if(box64_is32bits) DumpDynamicRPath32(h); - else - if(box64_dump && h->DynStrTab) { - printf_dump(LOG_NEVER, "ELF Dump DT_RPATH/DT_RUNPATH=====\n"); - for (size_t i=0; i<h->numDynamic; ++i) { - if(h->Dynamic._64[i].d_tag==DT_RPATH) { - printf_dump(LOG_NEVER, " RPATH : %s\n", h->DynStrTab+h->Dynamic._64[i].d_un.d_val + h->delta); - } - if(h->Dynamic._64[i].d_tag==DT_RUNPATH) { - printf_dump(LOG_NEVER, " RUNPATH : %s\n", h->DynStrTab+h->Dynamic._64[i].d_un.d_val + h->delta); - } + else if (BOX64ENV(dump) && h->DynStrTab) { + printf_dump(LOG_NEVER, "ELF Dump DT_RPATH/DT_RUNPATH=====\n"); + for (size_t i=0; i<h->numDynamic; ++i) { + if(h->Dynamic._64[i].d_tag==DT_RPATH) { + printf_dump(LOG_NEVER, " RPATH : %s\n", h->DynStrTab+h->Dynamic._64[i].d_un.d_val + h->delta); + } + if(h->Dynamic._64[i].d_tag==DT_RUNPATH) { + printf_dump(LOG_NEVER, " RUNPATH : %s\n", h->DynStrTab+h->Dynamic._64[i].d_un.d_val + h->delta); } - printf_dump(LOG_NEVER, "=====ELF Dump DT_RPATH/DT_RUNPATH\n"); } + printf_dump(LOG_NEVER, "=====ELF Dump DT_RPATH/DT_RUNPATH\n"); + } } #ifndef BOX32 @@ -375,7 +373,7 @@ void DumpRelTable32(elfheader_t *h, int cnt, Elf32_Rel *rel, const char* name) { #endif void DumpRelTable64(elfheader_t *h, int cnt, Elf64_Rel *rel, const char* name) { - if(box64_dump) { + if (BOX64ENV(dump)) { const char* elfname = ElfName(h); printf_dump(LOG_NEVER, "ELF Dump %s Table(%d) @%p\n", name, cnt, rel); for (int i = 0; i<cnt; ++i) @@ -390,7 +388,7 @@ void DumpRelATable32(elfheader_t *h, int cnt, Elf32_Rela *rela, const char* name #endif void DumpRelATable64(elfheader_t *h, int cnt, Elf64_Rela *rela, const char* name) { - if(box64_dump && h->rela) { + if (BOX64ENV(dump) && h->rela) { const char* elfname = ElfName(h); printf_dump(LOG_NEVER, "ELF Dump %s Table(%d) @%p\n", name, cnt, rela); for (int i = 0; i<cnt; ++i) @@ -407,7 +405,7 @@ void DumpRelRTable32(elfheader_t *h, int cnt, Elf32_Relr *relr, const char *name #endif void DumpRelRTable64(elfheader_t *h, int cnt, Elf64_Relr *relr, const char *name) { - if(box64_dump && h->relr) { + if (BOX64ENV(dump) && h->relr) { const char* elfname = ElfName(h); printf_dump(LOG_NEVER, "ELF Dump %s Table(%d) @%p\n", name, cnt, relr); for (int i = 0; i<cnt; ++i) diff --git a/src/elfs/elfload_dump32.c b/src/elfs/elfload_dump32.c index b6d8df41..43b6b2a2 100755 --- a/src/elfs/elfload_dump32.c +++ b/src/elfs/elfload_dump32.c @@ -223,7 +223,7 @@ static const char* IdxSymName(elfheader_t *h, int sym) void DumpMainHeader32(Elf32_Ehdr *header, elfheader_t *h) { - if(box64_dump) { + if (BOX64ENV(dump)) { printf_dump(LOG_NEVER, "ELF Dump main header\n"); printf_dump(LOG_NEVER, " Entry point = %p\n", from_ptrv(header->e_entry)); printf_dump(LOG_NEVER, " Program Header table offset = %p\n", from_ptrv(header->e_phoff)); @@ -249,7 +249,7 @@ void DumpMainHeader32(Elf32_Ehdr *header, elfheader_t *h) void DumpSymTab32(elfheader_t *h) { - if(box64_dump && h->SymTab._32) { + if (BOX64ENV(dump) && h->SymTab._32) { const char* name = ElfName(h); printf_dump(LOG_NEVER, "ELF Dump SymTab(%d)=\n", h->numSymTab); for (int i=0; i<h->numSymTab; ++i) @@ -262,7 +262,7 @@ void DumpSymTab32(elfheader_t *h) void DumpDynamicSections32(elfheader_t *h) { - if(box64_dump && h->Dynamic._32) { + if (BOX64ENV(dump) && h->Dynamic._32) { printf_dump(LOG_NEVER, "ELF Dump Dynamic(%d)=\n", h->numDynamic); for (int i=0; i<h->numDynamic; ++i) printf_dump(LOG_NEVER, " Dynamic %04d : %s\n", i, DumpDynamic(h->Dynamic._32+i)); @@ -272,7 +272,7 @@ void DumpDynamicSections32(elfheader_t *h) void DumpDynSym32(elfheader_t *h) { - if(box64_dump && h->DynSym._32) { + if (BOX64ENV(dump) && h->DynSym._32) { const char* name = ElfName(h); printf_dump(LOG_NEVER, "ELF Dump DynSym(%d)=\n", h->numDynSym); for (int i=0; i<h->numDynSym; ++i) { @@ -285,7 +285,7 @@ void DumpDynSym32(elfheader_t *h) void DumpDynamicNeeded32(elfheader_t *h) { - if(box64_dump && h->DynStrTab) { + if (BOX64ENV(dump) && h->DynStrTab) { printf_dump(LOG_NEVER, "ELF Dump DT_NEEDED=====\n"); for (int i=0; i<h->numDynamic; ++i) if(h->Dynamic._32[i].d_tag==DT_NEEDED) { @@ -297,7 +297,7 @@ void DumpDynamicNeeded32(elfheader_t *h) void DumpDynamicRPath32(elfheader_t *h) { - if(box64_dump && h->DynStrTab) { + if (BOX64ENV(dump) && h->DynStrTab) { printf_dump(LOG_NEVER, "ELF Dump DT_RPATH/DT_RUNPATH=====\n"); for (int i=0; i<h->numDynamic; ++i) { if(h->Dynamic._32[i].d_tag==DT_RPATH) { @@ -313,7 +313,7 @@ void DumpDynamicRPath32(elfheader_t *h) void DumpRelTable32(elfheader_t *h, int cnt, Elf32_Rel *rel, const char* name) { - if(box64_dump) { + if (BOX64ENV(dump)) { const char* elfname = ElfName(h); printf_dump(LOG_NEVER, "ELF Dump %s Table(%d) @%p\n", name, cnt, rel); for (int i = 0; i<cnt; ++i) @@ -326,7 +326,7 @@ void DumpRelTable32(elfheader_t *h, int cnt, Elf32_Rel *rel, const char* name) void DumpRelATable32(elfheader_t *h, int cnt, Elf32_Rela *rela, const char* name) { - if(box64_dump && h->rela) { + if (BOX64ENV(dump) && h->rela) { const char* elfname = ElfName(h); printf_dump(LOG_NEVER, "ELF Dump %s Table(%d) @%p\n", name, cnt, rela); for (int i = 0; i<cnt; ++i) @@ -340,7 +340,7 @@ void DumpRelATable32(elfheader_t *h, int cnt, Elf32_Rela *rela, const char* name void DumpRelRTable32(elfheader_t *h, int cnt, Elf32_Relr *relr, const char* name) { - if(box64_dump && h->relr) { + if (BOX64ENV(dump) && h->relr) { const char* elfname = ElfName(h); printf_dump(LOG_NEVER, "ELF Dump %s Table(%d) @%p\n", name, cnt, relr); for (int i = 0; i<cnt; ++i) diff --git a/src/elfs/elfloader.c b/src/elfs/elfloader.c index 9d54ac10..3a979ed5 100644 --- a/src/elfs/elfloader.c +++ b/src/elfs/elfloader.c @@ -214,7 +214,7 @@ int AllocLoadElfMemory(box64context_t* context, elfheader_t* head, int mainbin) return AllocLoadElfMemory32(context, head, mainbin); uintptr_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 = head->align-1; @@ -223,10 +223,10 @@ int AllocLoadElfMemory(box64context_t* context, elfheader_t* head, int mainbin) ++head->multiblock_n; } - if(!head->vaddr && box64_load_addr) { - offs = (uintptr_t)find47bitBlockNearHint((void*)((box64_load_addr+max_align)&~max_align), head->memsz+head->align, max_align); - box64_load_addr = offs + head->memsz; - box64_load_addr = (box64_load_addr+0x10ffffffLL)&~0xffffffLL; + if(!head->vaddr && BOX64ENV(load_addr)) { + offs = (uintptr_t)find47bitBlockNearHint((void*)((BOX64ENV(load_addr)+max_align)&~max_align), head->memsz+head->align, max_align); + BOX64ENV(load_addr) = offs + head->memsz; + BOX64ENV(load_addr) = (BOX64ENV(load_addr)+0x10ffffffLL)&~0xffffffLL; } if(!offs && !head->vaddr) offs = (uintptr_t)find47bitBlockElf(head->memsz+head->align, mainbin, max_align); // limit to 47bits... @@ -393,7 +393,7 @@ int AllocLoadElfMemory(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); } @@ -433,7 +433,7 @@ void FreeElfMemory(elfheader_t* head) #ifdef DYNAREC for(int i=0; i<head->multiblock_n; ++i) { dynarec_log(LOG_INFO, "Free DynaBlocks %p-%p for %s\n", head->multiblocks[i].p, head->multiblocks[i].p+head->multiblocks[i].asize, head->path); - if(box64_dynarec) + if(BOX64ENV(dynarec)) cleanDBFromAddressRange((uintptr_t)head->multiblocks[i].p, head->multiblocks[i].asize, 1); freeProtection((uintptr_t)head->multiblocks[i].p, head->multiblocks[i].asize); } @@ -948,7 +948,7 @@ uintptr_t GetEntryPoint(lib_t* maplib, elfheader_t* h) (void)maplib; uintptr_t ep = h->entrypoint + h->delta; printf_log(LOG_DEBUG, "Entry Point is %p\n", (void*)ep); - if(box64_dump) { + if (BOX64ENV(dump)) { printf_dump(LOG_NEVER, "(short) Dump of Entry point\n"); int sz = 64; uintptr_t lastbyte = GetLastByte(h); @@ -980,10 +980,10 @@ void AddSymbols(lib_t *maplib, elfheader_t* h) if(box64_is32bits) { AddSymbols32(maplib, h); } else { - //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._64) DumpDynSym64(h); - if(h==my_context->elfs[0]) + // 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._64) DumpDynSym64(h); + if (h==my_context->elfs[0]) GrabX64CopyMainElfReloc(h); } #ifndef STATICBUILD @@ -1102,7 +1102,7 @@ int LoadNeededLibs(elfheader_t* h, lib_t *maplib, int local, int bindnow, int de // TODO: Add LD_LIBRARY_PATH and RPATH handling if(AddNeededLib(maplib, local, bindnow, deepbind, h->needed, h, box64, emu)) { printf_log(LOG_INFO, "Error loading one of needed lib\n"); - if(!allow_missing_libs) + if(!BOX64ENV(allow_missing_libs)) return 1; //error... } return 0; @@ -1460,7 +1460,7 @@ dynablock_t* GetDynablocksFromAddress(box64context_t *context, uintptr_t addr) if(ret) { return ret; }*/ - if(box64_dynarec_forced) { + if(BOX64ENV(dynarec_forced)) { addDBFromAddressRange(addr, 1); return getDB(addr); } 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); } diff --git a/src/elfs/elfparser.c b/src/elfs/elfparser.c index 618b55d0..7f88a8a6 100644 --- a/src/elfs/elfparser.c +++ b/src/elfs/elfparser.c @@ -188,14 +188,14 @@ elfheader_t* ParseElfHeader64(FILE* f, const char* name, int exec) FreeElfHeader(&h); return NULL; } - if(box64_dump) DumpMainHeader64(&header, h); + if (BOX64ENV(dump)) DumpMainHeader64(&header, h); LoadNamedSection(f, h->SHEntries._64, h->numSHEntries, h->SHStrTab, ".strtab", "SymTab Strings", SHT_STRTAB, (void**)&h->StrTab, NULL); LoadNamedSection(f, h->SHEntries._64, h->numSHEntries, h->SHStrTab, ".symtab", "SymTab", SHT_SYMTAB, (void**)&h->SymTab._64, &h->numSymTab); - if(box64_dump && h->SymTab._64) DumpSymTab64(h); + if (BOX64ENV(dump) && h->SymTab._64) DumpSymTab64(h); LoadNamedSection(f, h->SHEntries._64, h->numSHEntries, h->SHStrTab, ".dynamic", "Dynamic", SHT_DYNAMIC, (void**)&h->Dynamic._64, &h->numDynamic); - if(box64_dump && h->Dynamic._64) DumpDynamicSections64(h); + if (BOX64ENV(dump) && h->Dynamic._64) DumpDynamicSections64(h); // grab DT_REL & DT_RELA stuffs // also grab the DT_STRTAB string table { @@ -393,7 +393,7 @@ elfheader_t* ParseElfHeader64(FILE* f, const char* name, int exec) LoadNamedSection(f, h->SHEntries._64, h->numSHEntries, h->SHStrTab, ".dynstr", "DynSym Strings", SHT_STRTAB, (void**)&h->DynStr, NULL); LoadNamedSection(f, h->SHEntries._64, h->numSHEntries, h->SHStrTab, ".dynsym", "DynSym", SHT_DYNSYM, (void**)&h->DynSym, &h->numDynSym); } - + return h; } diff --git a/src/elfs/elfparser32.c b/src/elfs/elfparser32.c index c12ab40d..f8a0dca0 100755 --- a/src/elfs/elfparser32.c +++ b/src/elfs/elfparser32.c @@ -178,14 +178,14 @@ elfheader_t* ParseElfHeader32(FILE* f, const char* name, int exec) FreeElfHeader(&h); return NULL; } - if(box64_dump) DumpMainHeader32(&header, h); + if (BOX64ENV(dump)) DumpMainHeader32(&header, h); LoadNamedSection(f, h->SHEntries._32, h->numSHEntries, h->SHStrTab, ".strtab", "SymTab Strings", SHT_STRTAB, (void**)&h->StrTab, NULL); LoadNamedSection(f, h->SHEntries._32, h->numSHEntries, h->SHStrTab, ".symtab", "SymTab", SHT_SYMTAB, (void**)&h->SymTab._32, &h->numSymTab); - if(box64_dump && h->SymTab._32) DumpSymTab32(h); + if (BOX64ENV(dump) && h->SymTab._32) DumpSymTab32(h); LoadNamedSection(f, h->SHEntries._32, h->numSHEntries, h->SHStrTab, ".dynamic", "Dynamic", SHT_DYNAMIC, (void**)&h->Dynamic._32, &h->numDynamic); - if(box64_dump && h->Dynamic._32) DumpDynamicSections32(h); + if (BOX64ENV(dump) && h->Dynamic._32) DumpDynamicSections32(h); // grab DT_REL & DT_RELA stuffs // also grab the DT_STRTAB string table { |