|
|
|
@@ -34,118 +34,120 @@
|
|
|
|
|
|
|
|
|
|
#ifdef TRACE_ARCH_ELF
|
|
|
|
|
static const char *kRelocations[] = {
|
|
|
|
|
"R_ARM_NONE", //0 Static Miscellaneous
|
|
|
|
|
"R_ARM_PC24", //1 Deprecated ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_ABS32", //2 Static Data (S + A) | T
|
|
|
|
|
"R_ARM_REL32", //3 Static Data ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_LDR_PC_G0", //4 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_ABS16", //5 Static Data S + A
|
|
|
|
|
"R_ARM_ABS12", //6 Static ARM S + A
|
|
|
|
|
"R_ARM_THM_ABS5", //7 Static Thumb16 S + A
|
|
|
|
|
"R_ARM_ABS8", //8 Static Data S + A
|
|
|
|
|
"R_ARM_SBREL32", //9 Static Data ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_THM_CALL", //10 Static Thumb32 ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_THM_PC8", //11 Static Thumb16 S + A ? Pa
|
|
|
|
|
"R_ARM_BREL_ADJ", //12 Dynamic Data ?B(S) + A
|
|
|
|
|
"R_ARM_TLS_DESC", //13 Dynamic Data
|
|
|
|
|
"R_ARM_THM_SWI8", //14 Obsolete
|
|
|
|
|
"R_ARM_XPC25", //15 Obsolete
|
|
|
|
|
"R_ARM_THM_XPC22", //16 Obsolete Encodings reserved for future Dynamic relocations
|
|
|
|
|
"R_ARM_TLS_DTPMOD32", //17 Dynamic Data Module[S]
|
|
|
|
|
"R_ARM_TLS_DTPOFF32", //18 Dynamic Data S + A ? TLS
|
|
|
|
|
"R_ARM_TLS_TPOFF32", //19 Dynamic Data S + A ? tp
|
|
|
|
|
"R_ARM_COPY", //20 Dynamic Miscellaneous
|
|
|
|
|
"R_ARM_GLOB_DAT", //21 Dynamic Data (S + A) | T
|
|
|
|
|
"R_ARM_JUMP_SLOT", //22 Dynamic Data (S + A) | T
|
|
|
|
|
"R_ARM_RELATIVE", //23 Dynamic Data B(S) + A [Note: see Table 4-16]
|
|
|
|
|
"R_ARM_GOTOFF32", //24 Static Data ((S + A) | T) ? GOT_ORG
|
|
|
|
|
"R_ARM_BASE_PREL", //25 Static Data B(S) + A ? P
|
|
|
|
|
"R_ARM_GOT_BREL", //26 Static Data GOT(S) + A ? GOT_ORG
|
|
|
|
|
"R_ARM_PLT32", //27 Deprecated ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_CALL", //28 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_JUMP24", //29 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_THM_JUMP24", //30 Static Thumb32 ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_BASE_ABS", //31 Static Data B(S) + A
|
|
|
|
|
"R_ARM_ALU_PCREL_7_0", //32 Obsolete
|
|
|
|
|
"R_ARM_ALU_PCREL_15_8", //33 Obsolete
|
|
|
|
|
"R_ARM_ALU_PCREL_23_15", //34 Obsolete Note ? Legacy (ARM ELF B02) names have been retained for these obsolete relocations.
|
|
|
|
|
"R_ARM_LDR_SBREL_11_0_NC", //35 Deprecated ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_ALU_SBREL_19_12_NC", //36 Deprecated ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_ALU_SBREL_27_20_CK", //37 Deprecated ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_TARGET1", //38 Static Miscellaneous (S + A) | T or ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_SBREL31", //39 Deprecated Data ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_V4BX", //40 Static Miscellaneous
|
|
|
|
|
"R_ARM_TARGET2", //41 Static Miscellaneous
|
|
|
|
|
"R_ARM_PREL31", //42 Static Data ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_MOVW_ABS_NC", //43 Static ARM (S + A) | T
|
|
|
|
|
"R_ARM_MOVT_ABS", //44 Static ARM S + A
|
|
|
|
|
"R_ARM_MOVW_PREL_NC", //45 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_MOVT_PREL", //46 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_THM_MOVW_ABS_NC", //47 Static Thumb32 (S + A) | T
|
|
|
|
|
"R_ARM_THM_MOVT_ABS", //48 Static Thumb32 S + A
|
|
|
|
|
"R_ARM_THM_MOVW_PREL_NC", //49 Static Thumb32 ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_THM_MOVT_PREL", //50 Static Thumb32 S + A ? P
|
|
|
|
|
"R_ARM_THM_JUMP19", //51 Static Thumb32 ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_THM_JUMP6", //52 Static Thumb16 S + A ? P
|
|
|
|
|
"R_ARM_THM_ALU_PREL_11_0", //53 Static Thumb32 ((S + A) | T) ? Pa
|
|
|
|
|
"R_ARM_THM_PC12", //54 Static Thumb32 S + A ? Pa
|
|
|
|
|
"R_ARM_ABS32_NOI", //55 Static Data S + A
|
|
|
|
|
"R_ARM_REL32_NOI", //56 Static Data S + A ? P
|
|
|
|
|
"R_ARM_ALU_PC_G0_NC", //57 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_ALU_PC_G0", //58 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_ALU_PC_G1_NC", //59 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_ALU_PC_G1", //60 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_ALU_PC_G2", //61 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_LDR_PC_G1", //62 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_LDR_PC_G2", //63 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_LDRS_PC_G0", //64 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_LDRS_PC_G1", //65 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_LDRS_PC_G2", //66 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_LDC_PC_G0", //67 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_LDC_PC_G1", //68 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_LDC_PC_G2", //69 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_ALU_SB_G0_NC", //70 Static ARM ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_ALU_SB_G0", //71 Static ARM ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_ALU_SB_G1_NC", //72 Static ARM ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_ALU_SB_G1", //73 Static ARM ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_ALU_SB_G2", //74 Static ARM ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_LDR_SB_G0", //75 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDR_SB_G1", //76 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDR_SB_G2", //77 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDRS_SB_G0", //78 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDRS_SB_G1", //79 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDRS_SB_G2", //80 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDC_SB_G0", //81 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDC_SB_G1", //82 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDC_SB_G2", //83 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_MOVW_BREL_NC", //84 Static ARM ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_MOVT_BREL", //85 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_MOVW_BREL", //86 Static ARM ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_THM_MOVW_BREL_NC", //87 Static Thumb32 ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_THM_MOVT_BREL", //88 Static Thumb32 S + A ? B(S)
|
|
|
|
|
"R_ARM_THM_MOVW_BREL", //89 Static Thumb32 ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_TLS_GOTDESC", //90 Static Data
|
|
|
|
|
"R_ARM_TLS_CALL", //91 Static ARM
|
|
|
|
|
"R_ARM_TLS_DESCSEQ", //92 Static ARM TLS relaxation
|
|
|
|
|
"R_ARM_THM_TLS_CALL", //93 Static Thumb32
|
|
|
|
|
"R_ARM_PLT32_ABS", //94 Static Data PLT(S) + A
|
|
|
|
|
"R_ARM_GOT_ABS", //95 Static Data GOT(S) + A
|
|
|
|
|
"R_ARM_GOT_PREL", //96 Static Data GOT(S) + A ? P
|
|
|
|
|
"R_ARM_GOT_BREL12", //97 Static ARM GOT(S) + A ? GOT_ORG
|
|
|
|
|
"R_ARM_GOTOFF12", //98 Static ARM S + A ? GOT_ORG
|
|
|
|
|
"R_ARM_GOTRELAX", //99 Static Miscellaneous
|
|
|
|
|
"R_ARM_GNU_VTENTRY", //100 Deprecated Data ???
|
|
|
|
|
"R_ARM_GNU_VTINHERIT", //101 Deprecated Data ???
|
|
|
|
|
"R_ARM_THM_JUMP11", //102 Static Thumb16 S + A ? P
|
|
|
|
|
"R_ARM_THM_JUMP8", //103 Static Thumb16 S + A ? P
|
|
|
|
|
"R_ARM_TLS_GD32", //104 Static Data GOT(S) + A ? P
|
|
|
|
|
"R_ARM_TLS_LDM32", //105 Static Data GOT(S) + A ? P
|
|
|
|
|
"R_ARM_TLS_LDO32", //106 Static Data S + A ? TLS
|
|
|
|
|
"R_ARM_TLS_IE32", //107 Static Data GOT(S) + A ? P
|
|
|
|
|
"R_ARM_TLS_LE32", //108 Static Data S + A ? tp
|
|
|
|
|
"R_ARM_TLS_LDO12", //109 Static ARM S + A ? TLS
|
|
|
|
|
"R_ARM_TLS_LE12", //110 Static ARM S + A ? tp
|
|
|
|
|
"R_ARM_TLS_IE12GP", //111 Static ARM GOT(S) + A ? GOT_ORG
|
|
|
|
|
"R_ARM_NONE", //0 Static Miscellaneous
|
|
|
|
|
"R_ARM_PC24", //1 Deprecated ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_ABS32", //2 Static Data (S + A) | T
|
|
|
|
|
"R_ARM_REL32", //3 Static Data ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_LDR_PC_G0", //4 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_ABS16", //5 Static Data S + A
|
|
|
|
|
"R_ARM_ABS12", //6 Static ARM S + A
|
|
|
|
|
"R_ARM_THM_ABS5", //7 Static Thumb16 S + A
|
|
|
|
|
"R_ARM_ABS8", //8 Static Data S + A
|
|
|
|
|
"R_ARM_SBREL32", //9 Static Data ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_THM_CALL", //10 Static Thumb32 ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_THM_PC8", //11 Static Thumb16 S + A ? Pa
|
|
|
|
|
"R_ARM_BREL_ADJ", //12 Dynamic Data ?B(S) + A
|
|
|
|
|
"R_ARM_TLS_DESC", //13 Dynamic Data
|
|
|
|
|
"R_ARM_THM_SWI8", //14 Obsolete
|
|
|
|
|
"R_ARM_XPC25", //15 Obsolete
|
|
|
|
|
"R_ARM_THM_XPC22", //16 Obsolete Encodings reserved for future
|
|
|
|
|
// Dynamic relocations
|
|
|
|
|
"R_ARM_TLS_DTPMOD32", //17 Dynamic Data Module[S]
|
|
|
|
|
"R_ARM_TLS_DTPOFF32", //18 Dynamic Data S + A ? TLS
|
|
|
|
|
"R_ARM_TLS_TPOFF32", //19 Dynamic Data S + A ? tp
|
|
|
|
|
"R_ARM_COPY", //20 Dynamic Miscellaneous
|
|
|
|
|
"R_ARM_GLOB_DAT", //21 Dynamic Data (S + A) | T
|
|
|
|
|
"R_ARM_JUMP_SLOT", //22 Dynamic Data (S + A) | T
|
|
|
|
|
"R_ARM_RELATIVE", //23 Dynamic Data B(S) + A [Note: see Table 4-16]
|
|
|
|
|
"R_ARM_GOTOFF32", //24 Static Data ((S + A) | T) ? GOT_ORG
|
|
|
|
|
"R_ARM_BASE_PREL", //25 Static Data B(S) + A ? P
|
|
|
|
|
"R_ARM_GOT_BREL", //26 Static Data GOT(S) + A ? GOT_ORG
|
|
|
|
|
"R_ARM_PLT32", //27 Deprecated ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_CALL", //28 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_JUMP24", //29 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_THM_JUMP24", //30 Static Thumb32 ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_BASE_ABS", //31 Static Data B(S) + A
|
|
|
|
|
"R_ARM_ALU_PCREL_7_0", //32 Obsolete
|
|
|
|
|
"R_ARM_ALU_PCREL_15_8", //33 Obsolete
|
|
|
|
|
"R_ARM_ALU_PCREL_23_15", //34 Obsolete Note ? Legacy (ARM ELF B02)
|
|
|
|
|
// names have been retained for these obsolete relocations.
|
|
|
|
|
"R_ARM_LDR_SBREL_11_0_NC", //35 Deprecated ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_ALU_SBREL_19_12_NC", //36 Deprecated ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_ALU_SBREL_27_20_CK", //37 Deprecated ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_TARGET1", //38 Static Miscellaneous (S + A) | T or ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_SBREL31", //39 Deprecated Data ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_V4BX", //40 Static Miscellaneous
|
|
|
|
|
"R_ARM_TARGET2", //41 Static Miscellaneous
|
|
|
|
|
"R_ARM_PREL31", //42 Static Data ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_MOVW_ABS_NC", //43 Static ARM (S + A) | T
|
|
|
|
|
"R_ARM_MOVT_ABS", //44 Static ARM S + A
|
|
|
|
|
"R_ARM_MOVW_PREL_NC", //45 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_MOVT_PREL", //46 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_THM_MOVW_ABS_NC", //47 Static Thumb32 (S + A) | T
|
|
|
|
|
"R_ARM_THM_MOVT_ABS", //48 Static Thumb32 S + A
|
|
|
|
|
"R_ARM_THM_MOVW_PREL_NC", //49 Static Thumb32 ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_THM_MOVT_PREL", //50 Static Thumb32 S + A ? P
|
|
|
|
|
"R_ARM_THM_JUMP19", //51 Static Thumb32 ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_THM_JUMP6", //52 Static Thumb16 S + A ? P
|
|
|
|
|
"R_ARM_THM_ALU_PREL_11_0", //53 Static Thumb32 ((S + A) | T) ? Pa
|
|
|
|
|
"R_ARM_THM_PC12", //54 Static Thumb32 S + A ? Pa
|
|
|
|
|
"R_ARM_ABS32_NOI", //55 Static Data S + A
|
|
|
|
|
"R_ARM_REL32_NOI", //56 Static Data S + A ? P
|
|
|
|
|
"R_ARM_ALU_PC_G0_NC", //57 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_ALU_PC_G0", //58 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_ALU_PC_G1_NC", //59 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_ALU_PC_G1", //60 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_ALU_PC_G2", //61 Static ARM ((S + A) | T) ? P
|
|
|
|
|
"R_ARM_LDR_PC_G1", //62 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_LDR_PC_G2", //63 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_LDRS_PC_G0", //64 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_LDRS_PC_G1", //65 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_LDRS_PC_G2", //66 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_LDC_PC_G0", //67 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_LDC_PC_G1", //68 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_LDC_PC_G2", //69 Static ARM S + A ? P
|
|
|
|
|
"R_ARM_ALU_SB_G0_NC", //70 Static ARM ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_ALU_SB_G0", //71 Static ARM ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_ALU_SB_G1_NC", //72 Static ARM ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_ALU_SB_G1", //73 Static ARM ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_ALU_SB_G2", //74 Static ARM ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_LDR_SB_G0", //75 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDR_SB_G1", //76 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDR_SB_G2", //77 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDRS_SB_G0", //78 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDRS_SB_G1", //79 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDRS_SB_G2", //80 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDC_SB_G0", //81 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDC_SB_G1", //82 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_LDC_SB_G2", //83 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_MOVW_BREL_NC", //84 Static ARM ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_MOVT_BREL", //85 Static ARM S + A ? B(S)
|
|
|
|
|
"R_ARM_MOVW_BREL", //86 Static ARM ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_THM_MOVW_BREL_NC", //87 Static Thumb32 ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_THM_MOVT_BREL", //88 Static Thumb32 S + A ? B(S)
|
|
|
|
|
"R_ARM_THM_MOVW_BREL", //89 Static Thumb32 ((S + A) | T) ? B(S)
|
|
|
|
|
"R_ARM_TLS_GOTDESC", //90 Static Data
|
|
|
|
|
"R_ARM_TLS_CALL", //91 Static ARM
|
|
|
|
|
"R_ARM_TLS_DESCSEQ", //92 Static ARM TLS relaxation
|
|
|
|
|
"R_ARM_THM_TLS_CALL", //93 Static Thumb32
|
|
|
|
|
"R_ARM_PLT32_ABS", //94 Static Data PLT(S) + A
|
|
|
|
|
"R_ARM_GOT_ABS", //95 Static Data GOT(S) + A
|
|
|
|
|
"R_ARM_GOT_PREL", //96 Static Data GOT(S) + A ? P
|
|
|
|
|
"R_ARM_GOT_BREL12", //97 Static ARM GOT(S) + A ? GOT_ORG
|
|
|
|
|
"R_ARM_GOTOFF12", //98 Static ARM S + A ? GOT_ORG
|
|
|
|
|
"R_ARM_GOTRELAX", //99 Static Miscellaneous
|
|
|
|
|
"R_ARM_GNU_VTENTRY", //100 Deprecated Data ???
|
|
|
|
|
"R_ARM_GNU_VTINHERIT", //101 Deprecated Data ???
|
|
|
|
|
"R_ARM_THM_JUMP11", //102 Static Thumb16 S + A ? P
|
|
|
|
|
"R_ARM_THM_JUMP8", //103 Static Thumb16 S + A ? P
|
|
|
|
|
"R_ARM_TLS_GD32", //104 Static Data GOT(S) + A ? P
|
|
|
|
|
"R_ARM_TLS_LDM32", //105 Static Data GOT(S) + A ? P
|
|
|
|
|
"R_ARM_TLS_LDO32", //106 Static Data S + A ? TLS
|
|
|
|
|
"R_ARM_TLS_IE32", //107 Static Data GOT(S) + A ? P
|
|
|
|
|
"R_ARM_TLS_LE32", //108 Static Data S + A ? tp
|
|
|
|
|
"R_ARM_TLS_LDO12", //109 Static ARM S + A ? TLS
|
|
|
|
|
"R_ARM_TLS_LE12", //110 Static ARM S + A ? tp
|
|
|
|
|
"R_ARM_TLS_IE12GP", //111 Static ARM GOT(S) + A ? GOT_ORG
|
|
|
|
|
};
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|