diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-07-12 13:41:05 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-07-12 13:41:05 +0200 |
| commit | 6d7c0f75e74f16fe3f63199a589c4828c1ab1f55 (patch) | |
| tree | 87af2d6248424e9081b32b7698a964ea731b3d08 /src/include | |
| parent | 81a7eca5ef17a9805a3e894046f2148e0974eeda (diff) | |
| download | box64-6d7c0f75e74f16fe3f63199a589c4828c1ab1f55.tar.gz box64-6d7c0f75e74f16fe3f63199a589c4828c1ab1f55.zip | |
Handling of flag RTLD_NOW in dlopen
Diffstat (limited to 'src/include')
| -rwxr-xr-x | src/include/elfloader.h | 6 | ||||
| -rwxr-xr-x | src/include/librarian.h | 2 | ||||
| -rwxr-xr-x | src/include/library.h | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/src/include/elfloader.h b/src/include/elfloader.h index df745aa2..afef7981 100755 --- a/src/include/elfloader.h +++ b/src/include/elfloader.h @@ -24,13 +24,13 @@ int AllocElfMemory(box64context_t* context, elfheader_t* head, int mainbin); void FreeElfMemory(elfheader_t* head); int LoadElfMemory(FILE* f, box64context_t* context, elfheader_t* head); int ReloadElfMemory(FILE* f, box64context_t* context, elfheader_t* head); -int RelocateElf(lib_t *maplib, lib_t* local_maplib, elfheader_t* head); -int RelocateElfPlt(lib_t *maplib, lib_t* local_maplib, elfheader_t* head); +int RelocateElf(lib_t *maplib, lib_t* local_maplib, int bindnow, elfheader_t* head); +int RelocateElfPlt(lib_t *maplib, lib_t* local_maplib, int bindnow, elfheader_t* head); void CalcStack(elfheader_t* h, uint64_t* stacksz, size_t* stackalign); uintptr_t GetEntryPoint(lib_t* maplib, elfheader_t* h); uintptr_t GetLastByte(elfheader_t* h); void AddSymbols(lib_t *maplib, kh_mapsymbols_t* mapsymbols, kh_mapsymbols_t* weaksymbols, kh_mapsymbols_t* localsymbols, elfheader_t* h); -int LoadNeededLibs(elfheader_t* h, lib_t *maplib, needed_libs_t* neededlibs, library_t *deplib, int local, box64context_t *box64, x64emu_t* emu); +int LoadNeededLibs(elfheader_t* h, lib_t *maplib, needed_libs_t* neededlibs, library_t *deplib, int local, int bindnow, box64context_t *box64, x64emu_t* emu); uintptr_t GetElfInit(elfheader_t* h); uintptr_t GetElfFini(elfheader_t* h); void RunElfInit(elfheader_t* h, x64emu_t *emu); diff --git a/src/include/librarian.h b/src/include/librarian.h index 522c98b6..a135edf5 100755 --- a/src/include/librarian.h +++ b/src/include/librarian.h @@ -24,7 +24,7 @@ kh_mapsymbols_t* GetMapSymbol(lib_t* maplib); kh_mapsymbols_t* GetWeakSymbol(lib_t* maplib); kh_mapsymbols_t* GetLocalSymbol(lib_t* maplib); kh_mapsymbols_t* GetGlobalData(lib_t* maplib); -int AddNeededLib(lib_t* maplib, needed_libs_t* neededlibs, library_t *deplib, int local, const char** paths, int npath, box64context_t* box64, x64emu_t* emu); // 0=success, 1=error +int AddNeededLib(lib_t* maplib, needed_libs_t* neededlibs, library_t *deplib, int local, int bindnow, const char** paths, int npath, box64context_t* box64, x64emu_t* emu); // 0=success, 1=error library_t* GetLibMapLib(lib_t* maplib, const char* name); library_t* GetLibInternal(const char* name); uintptr_t FindGlobalSymbol(lib_t *maplib, const char* name, int version, const char* vername); diff --git a/src/include/library.h b/src/include/library.h index 64f376ec..006e61f4 100755 --- a/src/include/library.h +++ b/src/include/library.h @@ -12,7 +12,7 @@ typedef struct needed_libs_s needed_libs_t; library_t *NewLibrary(const char* path, box64context_t* box64); int AddSymbolsLibrary(lib_t* maplib, library_t* lib, x64emu_t* emu); -int FinalizeLibrary(library_t* lib, lib_t* local_maplib, x64emu_t* emu); +int FinalizeLibrary(library_t* lib, lib_t* local_maplib, int bindnow, x64emu_t* emu); int ReloadLibrary(library_t* lib, x64emu_t* emu); void InactiveLibrary(library_t* lib); void Free1Library(library_t **lib, x64emu_t* emu); |