summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjonathan <jonathan@NetBSD.org>1997-03-03 00:19:29 +0000
committerjonathan <jonathan@NetBSD.org>1997-03-03 00:19:29 +0000
commit72a7ae4ee524bbfa9247f959a2cdcdf1b4eb2a4e (patch)
tree0e62c8c213ac99aa00b1b38de026786414fba2b2
parent1da48281ffda749dd97f2dd52c4f4667ce18e08c (diff)
Add architecture-specific ELf relocs for mips chips.
-rw-r--r--sys/arch/mips/include/elf_machdep.h60
1 files changed, 58 insertions, 2 deletions
diff --git a/sys/arch/mips/include/elf_machdep.h b/sys/arch/mips/include/elf_machdep.h
index b05140c49b2..26ce4c5690c 100644
--- a/sys/arch/mips/include/elf_machdep.h
+++ b/sys/arch/mips/include/elf_machdep.h
@@ -1,4 +1,4 @@
-/* $NetBSD: elf_machdep.h,v 1.2 1996/11/11 20:33:12 jonathan Exp $ */
+/* $NetBSD: elf_machdep.h,v 1.3 1997/03/03 00:19:29 jonathan Exp $ */
#define ELF32_MACHDEP_ID_CASES \
case Elf_em_mips: \
@@ -6,9 +6,65 @@
#define ELF64_MACHDEP_ID_CASES \
/* no 64-bit ELF machine types supported */
+
+
+/* mips relocs. */
+
+#define R_MIPS_NONE 0
+#define R_MIPS_16 1
+#define R_MIPS_32 2
+#define R_MIPS_REL32 3
+#define R_MIPS_REL R_MIPS_REL32
+#define R_MIPS_26 4
+#define R_MIPS_HI16 5 /* high 16 bits of symbol value */
+#define R_MIPS_LO16 6 /* low 16 bits of symbol value */
+#define R_MIPS_GPREL16 7 /* GP-relative reference */
+#define R_MIPS_LITERAL 8 /* Reference to literal section */
+#define R_MIPS_GOT16 9 /* Reference to global offset table */
+#define R_MIPS_GOT R_MIPS_GOT16
+#define R_MIPS_PC16 10 /* 16 bit PC relative reference */
+#define R_MIPS_CALL16 11 /* 16 bit call thru glbl offset tbl */
+#define R_MIPS_CALL R_MIPS_CALL16
+#define R_MIPS_GPREL32 12
+
+/* 13, 14, 15 are not defined at this point. */
+#define R_MIPS_UNUSED1 13
+#define R_MIPS_UNUSED2 14
+#define R_MIPS_UNUSED3 15
+
+/*
+ * The remaining relocs are apparently part of the 64-bit Irix ELF ABI.
+ */
+#define R_MIPS_SHIFT5 16
+#define R_MIPS_SHIFT6 17
+
+#define R_MIPS_64 18
+#define R_MIPS_GOT_DISP 19
+#define R_MIPS_GOT_PAGE 20
+#define R_MIPS_GOT_OFST 21
+#define R_MIPS_GOT_HI16 22
+#define R_MIPS_GOT_LO16 23
+#define R_MIPS_SUB 24
+#define R_MIPS_INSERT_A 25
+#define R_MIPS_INSERT_B 26
+#define R_MIPS_DELETE 27
+#define R_MIPS_HIGHER 28
+#define R_MIPS_HIGHEST 29
+#define R_MIPS_CALL_HI16 30
+#define R_MIPS_CALL_LO16 31
+#define R_MIPS_SCN_DISP 32
+#define R_MIPS_REL16 33
+#define R_MIPS_ADD_IMMEDIATE 34
+#define R_MIPS_PJUMP 35
+#define R_MIPS_RELGOT 36
+
+#define R_MIPS_max 37
+#define R_TYPE(name) __CONCAT(R_MIPS_,name)
+
+
/*
* Tell the kernel ELF exec code not to try relocating the interpreter
- * (ld.so) for dynamically-linked ELF binaries
+ * (ld.so) for dynamically-linked ELF binaries.
*/
#ifdef _KERNEL
#define ELF_INTERP_NON_RELOCATABLE