f74b50e380
Signed-off-by: Peter Jones <pjones@redhat.com>
183 lines
6.0 KiB
Diff
183 lines
6.0 KiB
Diff
From 58e08a1795d63ba85b006c54dc7bbfe0afd624a7 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 245/482] * 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.2.1
|
|
|