summaryrefslogtreecommitdiffstats
path: root/sys/sys/linker.h
diff options
context:
space:
mode:
authorjake <jake@FreeBSD.org>2003-01-21 02:42:44 +0000
committerjake <jake@FreeBSD.org>2003-01-21 02:42:44 +0000
commitc1e42cc8bb6beb27c070748587d19f1d63fc956a (patch)
treea6736a5694dc3395d090d1d257e111c315fd88a0 /sys/sys/linker.h
parent013247cd19dd036ba508021e0edaba94b2a75960 (diff)
downloadFreeBSD-src-c1e42cc8bb6beb27c070748587d19f1d63fc956a.zip
FreeBSD-src-c1e42cc8bb6beb27c070748587d19f1d63fc956a.tar.gz
Resolve relative relocations in klds before trying to parse the module's
metadata. This fixes module dependency resolution by the kernel linker on sparc64, where the relocations for the metadata are different than on other architectures; the relative offset is in the addend of an Elf_Rela record instead of the original value of the location being patched. Also fix printf formats in debug code. Submitted by: Hartmut Brandt <brandt@fokus.gmd.de> PR: 46732 Tested on: alpha (obrien), i386, sparc64
Diffstat (limited to 'sys/sys/linker.h')
-rw-r--r--sys/sys/linker.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/sys/linker.h b/sys/sys/linker.h
index 5e0a760..a601e3a 100644
--- a/sys/sys/linker.h
+++ b/sys/sys/linker.h
@@ -229,6 +229,7 @@ extern int kld_debug;
/* Support functions */
int elf_reloc(linker_file_t _lf, const void *_rel, int _type);
+int elf_reloc_local(linker_file_t _lf, const void *_rel, int _type);
Elf_Addr elf_lookup(linker_file_t, Elf_Word, int);
const Elf_Sym *elf_get_sym(linker_file_t _lf, Elf_Word _symidx);
const char *elf_get_symname(linker_file_t _lf, Elf_Word _symidx);
OpenPOWER on IntegriCloud