diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-02-26 19:22:53 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-02-26 19:22:53 +0100 |
| commit | 13404ed090453ffa1a2b475b004b74db7086ff74 (patch) | |
| tree | 9d1fb5cbad4f90ce1dcd2df7f7220b6dea6d4755 /src/elfs | |
| parent | ff6cc844821439a8f50b68b27e6f1ac5264579c8 (diff) | |
| download | box64-13404ed090453ffa1a2b475b004b74db7086ff74.tar.gz box64-13404ed090453ffa1a2b475b004b74db7086ff74.zip | |
Added ability to staticaly build box64 (for #1045 and #310, maybe a few others tickets)
Diffstat (limited to 'src/elfs')
| -rw-r--r-- | src/elfs/elfloader.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/elfs/elfloader.c b/src/elfs/elfloader.c index 88b204c5..d6f0dc02 100644 --- a/src/elfs/elfloader.c +++ b/src/elfs/elfloader.c @@ -471,7 +471,7 @@ struct tlsdesc }; uintptr_t tlsdescUndefweak = 0; uintptr_t GetSegmentBaseEmu(x64emu_t* emu, int seg); -EXPORT uintptr_t _dl_tlsdesc_undefweak(x64emu_t* emu) +EXPORT uintptr_t my__dl_tlsdesc_undefweak(x64emu_t* emu) { struct tlsdesc *td = (struct tlsdesc *)R_RAX; return td->arg; @@ -763,7 +763,7 @@ int RelocateElfRELA(lib_t *maplib, lib_t *local_maplib, int bindnow, int deepbin printf_dump(LOG_NEVER, "Apply %s R_X86_64_TLSDESC @%p with addend=%zu\n", BindSym(bind), p, rela[i].r_addend); struct tlsdesc volatile *td = (struct tlsdesc volatile *)p; if(!tlsdescUndefweak) - tlsdescUndefweak = AddBridge(my_context->system, pFE, _dl_tlsdesc_undefweak, 0, "_dl_tlsdesc_undefweak"); + tlsdescUndefweak = AddBridge(my_context->system, pFE, my__dl_tlsdesc_undefweak, 0, "_dl_tlsdesc_undefweak"); td->entry = tlsdescUndefweak; td->arg = (uintptr_t)(head->tlsbase + rela[i].r_addend); } else { @@ -916,7 +916,9 @@ void AddSymbols(lib_t *maplib, elfheader_t* h) if(box64_dump && h->DynSym) DumpDynSym(h); if(h==my_context->elfs[0]) GrabX64CopyMainElfReloc(h); + #ifndef STATICBUILD checkHookedSymbols(h); + #endif } /* @@ -1058,7 +1060,11 @@ void MarkElfInitDone(elfheader_t* h) if(h) h->init_done = 1; } +#ifndef STATICBUILD void startMallocHook(); +#else +void startMallocHook() {} +#endif void RunElfInit(elfheader_t* h, x64emu_t *emu) { if(!h || h->init_done) |