From 6c66d66b02fa484078b70da84cc2aeb8e4d565ad Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Thu, 5 Dec 2024 15:19:02 +0100 Subject: [BOX32][ELFLOADER] Be less strick when a symbol for R_386_32 relocation is missing --- src/elfs/elfloader32.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') 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)); -- cgit 1.4.1