summaryrefslogtreecommitdiffstats
path: root/sys/sparc64
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2015-09-27 01:33:43 +0000
committerkib <kib@FreeBSD.org>2015-09-27 01:33:43 +0000
commitb44e8c14438c6602432ef5d490df5fd818d5a1db (patch)
tree606c7d952a5108145e2f9e88a6ecd9c4b0d13664 /sys/sparc64
parent8a6fcabbcf4777957124f6be9ba9dba42b68a9b7 (diff)
downloadFreeBSD-src-b44e8c14438c6602432ef5d490df5fd818d5a1db.zip
FreeBSD-src-b44e8c14438c6602432ef5d490df5fd818d5a1db.tar.gz
MFC r288000:
Add support for weak symbols to the kernel linkers.
Diffstat (limited to 'sys/sparc64')
-rw-r--r--sys/sparc64/sparc64/elf_machdep.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/sparc64/sparc64/elf_machdep.c b/sys/sparc64/sparc64/elf_machdep.c
index 4d55717..621e643 100644
--- a/sys/sparc64/sparc64/elf_machdep.c
+++ b/sys/sparc64/sparc64/elf_machdep.c
@@ -343,6 +343,7 @@ elf_reloc(linker_file_t lf, Elf_Addr relocbase, const void *data, int type,
Elf_Addr value;
Elf_Addr mask;
Elf_Addr addr;
+ int error;
if (type != ELF_RELOC_RELA)
return (-1);
@@ -371,8 +372,8 @@ elf_reloc(linker_file_t lf, Elf_Addr relocbase, const void *data, int type,
value = rela->r_addend;
if (RELOC_RESOLVE_SYMBOL(rtype)) {
- addr = lookup(lf, symidx, 1);
- if (addr == 0)
+ error = lookup(lf, symidx, 1, &addr);
+ if (error != 0)
return (-1);
value += addr;
if (RELOC_BARE_SYMBOL(rtype))
OpenPOWER on IntegriCloud