From 81f7256feee5b8f983dee431d768a4c1cbbf44a9 Mon Sep 17 00:00:00 2001 From: twilen Date: Tue, 26 Jun 2012 06:37:24 +0000 Subject: [PATCH] Ignore symbols that don't need relocation (from elf2hunk) git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@45129 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- rom/dos/internalloadseg_elf.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/rom/dos/internalloadseg_elf.c b/rom/dos/internalloadseg_elf.c index 5cdf5c78e1..848d8be485 100644 --- a/rom/dos/internalloadseg_elf.c +++ b/rom/dos/internalloadseg_elf.c @@ -318,12 +318,6 @@ static int relocate switch (shindex) { - case SHN_UNDEF: - D(bug("[ELF Loader] Undefined symbol '%s'\n", - (STRPTR)sh[SHINDEX(shsymtab->link)].addr + sym->name)); - SetIoErr(ERROR_BAD_HUNK); - return 0; - case SHN_COMMON: D(bug("[ELF Loader] COMMON symbol '%s'\n", (STRPTR)sh[SHINDEX(shsymtab->link)].addr + sym->name)); @@ -355,6 +349,15 @@ static int relocate #endif break; + case SHN_UNDEF: + if (ELF_R_TYPE(rel->info) != 0) { + D(bug("[ELF Loader] Undefined symbol '%s'\n", + (STRPTR)sh[SHINDEX(shsymtab->link)].addr + sym->name)); + SetIoErr(ERROR_BAD_HUNK); + return 0; + } + /* fall through */ + default: s = (IPTR)sh[SHINDEX(shindex)].addr + sym->value; } -- 2.11.4.GIT