diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-12-05 15:19:02 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-12-05 15:19:02 +0100 |
| commit | 6c66d66b02fa484078b70da84cc2aeb8e4d565ad (patch) | |
| tree | 589c42c580c59a7e08beb7c397bf165d8e148a7f /src/elfs | |
| parent | 85d694b36e5f795b4e4c101569fdc683f2f0fb79 (diff) | |
| download | box64-6c66d66b02fa484078b70da84cc2aeb8e4d565ad.tar.gz box64-6c66d66b02fa484078b70da84cc2aeb8e4d565ad.zip | |
[BOX32][ELFLOADER] Be less strick when a symbol for R_386_32 relocation is missing
Diffstat (limited to 'src/elfs')
| -rw-r--r-- | src/elfs/elfloader32.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/elfs/elfloader32.c b/src/elfs/elfloader32.c index cdddb9a1..53fc595e 100644 --- a/src/elfs/elfloader32.c +++ b/src/elfs/elfloader32.c @@ -591,8 +591,9 @@ static int RelocateElfREL(lib_t *maplib, lib_t *local_maplib, int bindnow, int d } if (!offs) { if(strcmp(symname, "__gmon_start__") && strcmp(symname, "data_start") && strcmp(symname, "__data_start")) { - printf_log(LOG_NONE, "Error: Symbol sym=%s(%s%s%s/version %d) not found, cannot apply R_386_32 %p (%p) in %s\n", symname, symname, vername?"@":"", vername?vername:"", version, p, from_ptrv(*p), head->name); - ret_ok = 1; + printf_log(LOG_NONE, "%s: Symbol sym=%s(%s%s%s/version %d) not found, cannot apply R_386_32 %p (%p) in %s\n", (bind==STB_GLOBAL)?"Error":"Warning", symname, symname, vername?"@":"", vername?vername:"", version, p, from_ptrv(*p), head->name); + if(bind==STB_GLOBAL) + ret_ok = 1; } } else { printf_dump(LOG_NEVER, "Apply %s R_386_32 %p with sym=%s (ver=%d/%s) (%p -> %p)\n", (bind==STB_LOCAL)?"Local":((bind==STB_WEAK)?"Weak":"Global"), p, symname, version, vername?vername:"(none)", from_ptrv(*p), from_ptrv(offs+*p)); |