183 lines
6.0 KiB
Diff
183 lines
6.0 KiB
Diff
|
From d00603517b5b4226d3467765d46628db271ad887 Mon Sep 17 00:00:00 2001
|
||
|
From: Francesco Lavra <francescolavra.fl@gmail.com>
|
||
|
Date: Wed, 3 Apr 2013 11:23:22 +0200
|
||
|
Subject: [PATCH 244/364] * include/grub/elf.h: Add missing ARM
|
||
|
relocation codes and fix existing ones.
|
||
|
|
||
|
---
|
||
|
ChangeLog | 5 +++
|
||
|
include/grub/elf.h | 110 ++++++++++++++++++++++++++++++++++++++++++++---------
|
||
|
2 files changed, 98 insertions(+), 17 deletions(-)
|
||
|
|
||
|
diff --git a/ChangeLog b/ChangeLog
|
||
|
index 5e516dc..56588dd 100644
|
||
|
--- a/ChangeLog
|
||
|
+++ b/ChangeLog
|
||
|
@@ -1,3 +1,8 @@
|
||
|
+2013-04-03 Francesco Lavra <francescolavra.fl@gmail.com>
|
||
|
+
|
||
|
+ * include/grub/elf.h: Add missing ARM relocation codes and fix
|
||
|
+ existing ones.
|
||
|
+
|
||
|
2013-04-03 Vladimir Testov <vladimir.testov@rosalab.ru>
|
||
|
|
||
|
* grub-core/gfxmenu/gui_progress_bar.c: Handle padding sizes.
|
||
|
diff --git a/include/grub/elf.h b/include/grub/elf.h
|
||
|
index d4a2a5f..708cd6a 100644
|
||
|
--- a/include/grub/elf.h
|
||
|
+++ b/include/grub/elf.h
|
||
|
@@ -2067,7 +2067,7 @@ typedef Elf32_Addr Elf32_Conflict;
|
||
|
#define R_ARM_PC24 1 /* PC relative 26 bit branch */
|
||
|
#define R_ARM_ABS32 2 /* Direct 32 bit */
|
||
|
#define R_ARM_REL32 3 /* PC relative 32 bit */
|
||
|
-#define R_ARM_PC13 4
|
||
|
+#define R_ARM_LDR_PC_G0 4
|
||
|
#define R_ARM_ABS16 5 /* Direct 16 bit */
|
||
|
#define R_ARM_ABS12 6 /* Direct 12 bit */
|
||
|
#define R_ARM_THM_ABS5 7
|
||
|
@@ -2075,18 +2075,21 @@ typedef Elf32_Addr Elf32_Conflict;
|
||
|
#define R_ARM_SBREL32 9
|
||
|
#define R_ARM_THM_CALL 10
|
||
|
#define R_ARM_THM_PC8 11
|
||
|
-#define R_ARM_AMP_VCALL9 12
|
||
|
-#define R_ARM_SWI24 13
|
||
|
+#define R_ARM_BREL_ADJ 12
|
||
|
+#define R_ARM_TLS_DESC 13
|
||
|
#define R_ARM_THM_SWI8 14
|
||
|
#define R_ARM_XPC25 15
|
||
|
#define R_ARM_THM_XPC22 16
|
||
|
+#define R_ARM_TLS_DTPMOD32 17
|
||
|
+#define R_ARM_TLS_DTPOFF32 18
|
||
|
+#define R_ARM_TLS_TPOFF32 19
|
||
|
#define R_ARM_COPY 20 /* Copy symbol at runtime */
|
||
|
#define R_ARM_GLOB_DAT 21 /* Create GOT entry */
|
||
|
#define R_ARM_JUMP_SLOT 22 /* Create PLT entry */
|
||
|
#define R_ARM_RELATIVE 23 /* Adjust by program base */
|
||
|
-#define R_ARM_GOTOFF 24 /* 32 bit offset to GOT */
|
||
|
-#define R_ARM_GOTPC 25 /* 32 bit PC relative offset to GOT */
|
||
|
-#define R_ARM_GOT32 26 /* 32 bit GOT entry */
|
||
|
+#define R_ARM_GOTOFF32 24 /* 32 bit offset to GOT */
|
||
|
+#define R_ARM_BASE_PREL 25 /* 32 bit PC relative offset to GOT */
|
||
|
+#define R_ARM_GOT_BREL 26 /* 32 bit GOT entry */
|
||
|
#define R_ARM_PLT32 27 /* 32 bit PLT address */
|
||
|
#define R_ARM_CALL 28
|
||
|
#define R_ARM_JUMP24 29
|
||
|
@@ -2098,14 +2101,72 @@ typedef Elf32_Addr Elf32_Conflict;
|
||
|
#define R_ARM_LDR_SBREL_11_0 35
|
||
|
#define R_ARM_ALU_SBREL_19_12 36
|
||
|
#define R_ARM_ALU_SBREL_27_20 37
|
||
|
+#define R_ARM_TARGET1 38
|
||
|
+#define R_ARM_SBREL31 39
|
||
|
+#define R_ARM_V4BX 40
|
||
|
+#define R_ARM_TARGET2 41
|
||
|
+#define R_ARM_PREL31 42
|
||
|
+#define R_ARM_MOVW_ABS_NC 43
|
||
|
+#define R_ARM_MOVT_ABS 44
|
||
|
+#define R_ARM_MOVW_PREL_NC 45
|
||
|
+#define R_ARM_MOVT_PREL 46
|
||
|
+#define R_ARM_THM_MOVW_ABS_NC 47
|
||
|
+#define R_ARM_THM_MOVT_ABS 48
|
||
|
+#define R_ARM_THM_MOVW_PREL_NC 49
|
||
|
+#define R_ARM_THM_MOVT_PREL 50
|
||
|
+#define R_ARM_THM_JUMP19 51
|
||
|
+#define R_ARM_THM_JUMP6 52
|
||
|
+#define R_ARM_THM_ALU_PREL_11_0 53
|
||
|
+#define R_ARM_THM_PC12 54
|
||
|
+#define R_ARM_ABS32_NOI 55
|
||
|
+#define R_ARM_REL32_NOI 56
|
||
|
+#define R_ARM_ALU_PC_G0_NC 57
|
||
|
+#define R_ARM_ALU_PC_G0 58
|
||
|
+#define R_ARM_ALU_PC_G1_NC 59
|
||
|
+#define R_ARM_ALU_PC_G1 60
|
||
|
+#define R_ARM_ALU_PC_G2 61
|
||
|
+#define R_ARM_LDR_PC_G1 62
|
||
|
+#define R_ARM_LDR_PC_G2 63
|
||
|
+#define R_ARM_LDRS_PC_G0 64
|
||
|
+#define R_ARM_LDRS_PC_G1 65
|
||
|
+#define R_ARM_LDRS_PC_G2 66
|
||
|
+#define R_ARM_LDC_PC_G0 67
|
||
|
+#define R_ARM_LDC_PC_G1 68
|
||
|
+#define R_ARM_LDC_PC_G2 69
|
||
|
+#define R_ARM_ALU_SB_G0_NC 70
|
||
|
+#define R_ARM_ALU_SB_G0 71
|
||
|
+#define R_ARM_ALU_SB_G1_NC 72
|
||
|
+#define R_ARM_ALU_SB_G1 73
|
||
|
+#define R_ARM_ALU_SB_G2 74
|
||
|
+#define R_ARM_LDR_SB_G0 75
|
||
|
+#define R_ARM_LDR_SB_G1 76
|
||
|
+#define R_ARM_LDR_SB_G2 77
|
||
|
+#define R_ARM_LDRS_SB_G0 78
|
||
|
+#define R_ARM_LDRS_SB_G1 79
|
||
|
+#define R_ARM_LDRS_SB_G2 80
|
||
|
+#define R_ARM_LDC_SB_G0 81
|
||
|
+#define R_ARM_LDC_SB_G1 82
|
||
|
+#define R_ARM_LDC_SB_G2 83
|
||
|
+#define R_ARM_MOVW_BREL_NC 84
|
||
|
+#define R_ARM_MOVT_BREL 85
|
||
|
+#define R_ARM_MOVW_BREL 86
|
||
|
+#define R_ARM_THM_MOVW_BREL_NC 87
|
||
|
+#define R_ARM_THM_MOVT_BREL 88
|
||
|
+#define R_ARM_THM_MOVW_BREL 89
|
||
|
#define R_ARM_TLS_GOTDESC 90
|
||
|
#define R_ARM_TLS_CALL 91
|
||
|
#define R_ARM_TLS_DESCSEQ 92
|
||
|
#define R_ARM_THM_TLS_CALL 93
|
||
|
+#define R_ARM_PLT32_ABS 94
|
||
|
+#define R_ARM_GOT_ABS 95
|
||
|
+#define R_ARM_GOT_PREL 96
|
||
|
+#define R_ARM_GOT_BREL12 97
|
||
|
+#define R_ARM_GOTOFF12 98
|
||
|
+#define R_ARM_GOTRELAX 99
|
||
|
#define R_ARM_GNU_VTENTRY 100
|
||
|
#define R_ARM_GNU_VTINHERIT 101
|
||
|
-#define R_ARM_THM_PC11 102 /* thumb unconditional branch */
|
||
|
-#define R_ARM_THM_PC9 103 /* thumb conditional branch */
|
||
|
+#define R_ARM_THM_JUMP11 102 /* thumb unconditional branch */
|
||
|
+#define R_ARM_THM_JUMP8 103 /* thumb conditional branch */
|
||
|
#define R_ARM_TLS_GD32 104 /* PC-rel 32 bit for global dynamic
|
||
|
thread local data */
|
||
|
#define R_ARM_TLS_LDM32 105 /* PC-rel 32 bit for local dynamic
|
||
|
@@ -2116,15 +2177,30 @@ typedef Elf32_Addr Elf32_Conflict;
|
||
|
static TLS block offset */
|
||
|
#define R_ARM_TLS_LE32 108 /* 32 bit offset relative to static
|
||
|
TLS block */
|
||
|
-#define R_ARM_THM_TLS_DESCSEQ 129
|
||
|
-#define R_ARM_IRELATIVE 160
|
||
|
-#define R_ARM_RXPC25 249
|
||
|
-#define R_ARM_RSBREL32 250
|
||
|
-#define R_ARM_THM_RPC22 251
|
||
|
-#define R_ARM_RREL32 252
|
||
|
-#define R_ARM_RABS22 253
|
||
|
-#define R_ARM_RPC24 254
|
||
|
-#define R_ARM_RBASE 255
|
||
|
+#define R_ARM_TLS_LDO12 109
|
||
|
+#define R_ARM_TLS_LE12 110
|
||
|
+#define R_ARM_IE12GP 111
|
||
|
+#define R_ARM_PRIVATE_0 112
|
||
|
+#define R_ARM_PRIVATE_1 113
|
||
|
+#define R_ARM_PRIVATE_2 114
|
||
|
+#define R_ARM_PRIVATE_3 115
|
||
|
+#define R_ARM_PRIVATE_4 116
|
||
|
+#define R_ARM_PRIVATE_5 117
|
||
|
+#define R_ARM_PRIVATE_6 118
|
||
|
+#define R_ARM_PRIVATE_7 119
|
||
|
+#define R_ARM_PRIVATE_8 120
|
||
|
+#define R_ARM_PRIVATE_9 121
|
||
|
+#define R_ARM_PRIVATE_10 122
|
||
|
+#define R_ARM_PRIVATE_11 123
|
||
|
+#define R_ARM_PRIVATE_12 124
|
||
|
+#define R_ARM_PRIVATE_13 125
|
||
|
+#define R_ARM_PRIVATE_14 126
|
||
|
+#define R_ARM_PRIVATE_15 127
|
||
|
+#define R_ARM_ME_TOO 128
|
||
|
+#define R_ARM_THM_TLS_DESCSEQ16 129
|
||
|
+#define R_ARM_THM_TLS_DESCSEQ32 130
|
||
|
+#define R_ARM_THM_GOT_BREL12 131
|
||
|
+#define R_ARM_IRELATIVE 140
|
||
|
/* Keep this the last entry. */
|
||
|
#define R_ARM_NUM 256
|
||
|
|
||
|
--
|
||
|
1.8.1.4
|
||
|
|