summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2005-09-27 18:18:23 +0000
committerpeter <peter@FreeBSD.org>2005-09-27 18:18:23 +0000
commit257c4e08635298f28b9c903698008c16f3fd1cd4 (patch)
tree036e1cde785e3f5a9b72fb7222e077ff2e90dd78
parent9a8dd5b1cf5893468f306cb8a9ba5abb53ef4d6b (diff)
downloadFreeBSD-src-257c4e08635298f28b9c903698008c16f3fd1cd4.zip
FreeBSD-src-257c4e08635298f28b9c903698008c16f3fd1cd4.tar.gz
Add a bare minimum (but wrong) R_X86_64_JMP_SLOT relocation type for
kernel modules. We actually need to include any addends and the symbol offset value, but for gcc/binutils didn't set it anywhere I've found on 'cc -fpic -shared' kernel modules.
-rw-r--r--sys/amd64/amd64/elf_machdep.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/amd64/amd64/elf_machdep.c b/sys/amd64/amd64/elf_machdep.c
index 11a71a5..7396503 100644
--- a/sys/amd64/amd64/elf_machdep.c
+++ b/sys/amd64/amd64/elf_machdep.c
@@ -195,6 +195,7 @@ elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data,
break;
case R_X86_64_GLOB_DAT: /* S */
+ case R_X86_64_JMP_SLOT: /* XXX need addend + offset */
addr = lookup(lf, symidx, 1);
if (addr == 0)
return -1;
OpenPOWER on IntegriCloud