Skip to content

Commit eb80629

Browse files
authored
elf: Add relocations for PowerPC64 (#484)
Signed-off-by: Jens Reidel <[email protected]>
1 parent fe7ba8e commit eb80629

File tree

1 file changed

+338
-0
lines changed

1 file changed

+338
-0
lines changed

src/elf/constants_relocation.rs

Lines changed: 338 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -987,6 +987,215 @@ pub const R_PPC_EMB_SPE_DOUBLE_SDA: u32 = 213;
987987
pub const R_PPC_EMB_SPE_WORD_SDA: u32 = 214;
988988
pub const R_PPC_EMB_SPE_HALF_SDA: u32 = 215;
989989

990+
/////////////////////
991+
// PowerPC64
992+
// See: https://files.openpower.foundation/s/cfA2oFPXbbZwEBK
993+
/////////////////////
994+
pub const R_PPC64_NONE: u32 = R_PPC_NONE;
995+
/// 32-bit absolute address.
996+
pub const R_PPC64_ADDR32: u32 = R_PPC_ADDR32;
997+
/// 26-bit address, word aligned.
998+
pub const R_PPC64_ADDR24: u32 = R_PPC_ADDR24;
999+
/// 16-bit absolute address.
1000+
pub const R_PPC64_ADDR16: u32 = R_PPC_ADDR16;
1001+
/// Lower 16 bits of absolute address.
1002+
pub const R_PPC64_ADDR16_LO: u32 = R_PPC_ADDR16_LO;
1003+
/// High 16 bits of absolute address.
1004+
pub const R_PPC64_ADDR16_HI: u32 = R_PPC_ADDR16_HI;
1005+
/// Adjusted high 16 bits.
1006+
pub const R_PPC64_ADDR16_HA: u32 = R_PPC_ADDR16_HA;
1007+
/// 16-bit address, word aligned.
1008+
pub const R_PPC64_ADDR14: u32 = R_PPC_ADDR14;
1009+
pub const R_PPC64_ADDR14_BRTAKEN: u32 = R_PPC_ADDR14_BRTAKEN;
1010+
pub const R_PPC64_ADDR14_BRNTAKEN: u32 = R_PPC_ADDR14_BRNTAKEN;
1011+
/// PC relative 26-bit, word aligned.
1012+
pub const R_PPC64_REL24: u32 = R_PPC_REL24;
1013+
/// PC relative 16 bit.
1014+
pub const R_PPC64_REL14: u32 = R_PPC_REL14;
1015+
pub const R_PPC64_REL14_BRTAKEN: u32 = R_PPC_REL14_BRTAKEN;
1016+
pub const R_PPC64_REL14_BRNTAKEN: u32 = R_PPC_REL14_BRNTAKEN;
1017+
pub const R_PPC64_GOT16: u32 = R_PPC_GOT16;
1018+
pub const R_PPC64_GOT16_LO: u32 = R_PPC_GOT16_LO;
1019+
pub const R_PPC64_GOT16_HI: u32 = R_PPC_GOT16_HI;
1020+
pub const R_PPC64_GOT16_HA: u32 = R_PPC_GOT16_HA;
1021+
pub const R_PPC64_COPY: u32 = R_PPC_COPY;
1022+
pub const R_PPC64_GLOB_DAT: u32 = R_PPC_GLOB_DAT;
1023+
pub const R_PPC64_JMP_SLOT: u32 = R_PPC_JMP_SLOT;
1024+
pub const R_PPC64_RELATIVE: u32 = R_PPC_RELATIVE;
1025+
pub const R_PPC64_UADDR32: u32 = R_PPC_UADDR32;
1026+
pub const R_PPC64_UADDR16: u32 = R_PPC_UADDR16;
1027+
pub const R_PPC64_REL32: u32 = R_PPC_REL32;
1028+
pub const R_PPC64_PLT32: u32 = R_PPC_PLT32;
1029+
pub const R_PPC64_PLTREL32: u32 = R_PPC_PLTREL32;
1030+
pub const R_PPC64_PLT16_LO: u32 = R_PPC_PLT16_LO;
1031+
pub const R_PPC64_PLT16_HI: u32 = R_PPC_PLT16_HI;
1032+
pub const R_PPC64_PLT16_HA: u32 = R_PPC_PLT16_HA;
1033+
pub const R_PPC64_SECTOFF: u32 = R_PPC_SECTOFF;
1034+
pub const R_PPC64_SECTOFF_LO: u32 = R_PPC_SECTOFF_LO;
1035+
pub const R_PPC64_SECTOFF_HI: u32 = R_PPC_SECTOFF_HI;
1036+
pub const R_PPC64_SECTOFF_HA: u32 = R_PPC_SECTOFF_HA;
1037+
/// word30 (S + A - P) >> 2.
1038+
pub const R_PPC64_ADDR30: u32 = 37;
1039+
/// doubleword64 S + A.
1040+
pub const R_PPC64_ADDR64: u32 = 38;
1041+
/// half16 #higher(S + A).
1042+
pub const R_PPC64_ADDR16_HIGHER: u32 = 39;
1043+
/// half16 #highera(S + A).
1044+
pub const R_PPC64_ADDR16_HIGHERA: u32 = 40;
1045+
/// half16 #highest(S + A).
1046+
pub const R_PPC64_ADDR16_HIGHEST: u32 = 41;
1047+
/// half16 #highesta(S + A).
1048+
pub const R_PPC64_ADDR16_HIGHESTA: u32 = 42;
1049+
/// doubleword64 S + A.
1050+
pub const R_PPC64_UADDR64: u32 = 43;
1051+
/// doubleword64 S + A - P.
1052+
pub const R_PPC64_REL64: u32 = 44;
1053+
/// doubleword64 L + A.
1054+
pub const R_PPC64_PLT64: u32 = 45;
1055+
/// doubleword64 L + A - P.
1056+
pub const R_PPC64_PLTREL64: u32 = 46;
1057+
/// half16* S + A - .TOC.
1058+
pub const R_PPC64_TOC16: u32 = 47;
1059+
/// half16 #lo(S + A - .TOC).
1060+
pub const R_PPC64_TOC16_LO: u32 = 48;
1061+
/// half16 #hi(S + A - .TOC).
1062+
pub const R_PPC64_TOC16_HI: u32 = 49;
1063+
/// half16 #ha(S + A - .TOC).
1064+
pub const R_PPC64_TOC16_HA: u32 = 50;
1065+
/// doubleword64 .TOC.
1066+
pub const R_PPC64_TOC: u32 = 51;
1067+
/// half16* M + A.
1068+
pub const R_PPC64_PLTGOT16: u32 = 52;
1069+
/// half16 #lo(M + A).
1070+
pub const R_PPC64_PLTGOT16_LO: u32 = 53;
1071+
/// half16 #hi(M + A).
1072+
pub const R_PPC64_PLTGOT16_HI: u32 = 54;
1073+
/// half16 #ha(M + A).
1074+
pub const R_PPC64_PLTGOT16_HA: u32 = 55;
1075+
/// half16ds* (S + A) >> 2.
1076+
pub const R_PPC64_ADDR16_DS: u32 = 56;
1077+
/// half16ds #lo(S + A) >> 2.
1078+
pub const R_PPC64_ADDR16_LO_DS: u32 = 57;
1079+
/// half16ds* (G + A) >> 2.
1080+
pub const R_PPC64_GOT16_DS: u32 = 58;
1081+
/// half16ds #lo(G + A) >> 2.
1082+
pub const R_PPC64_GOT16_LO_DS: u32 = 59;
1083+
/// half16ds #lo(L + A) >> 2.
1084+
pub const R_PPC64_PLT16_LO_DS: u32 = 60;
1085+
/// half16ds* (R + A) >> 2.
1086+
pub const R_PPC64_SECTOFF_DS: u32 = 61;
1087+
/// half16ds #lo(R + A) >> 2.
1088+
pub const R_PPC64_SECTOFF_LO_DS: u32 = 62;
1089+
/// half16ds* (S + A - .TOC.) >> 2.
1090+
pub const R_PPC64_TOC16_DS: u32 = 63;
1091+
/// half16ds #lo(S + A - .TOC.) >> 2.
1092+
pub const R_PPC64_TOC16_LO_DS: u32 = 64;
1093+
/// half16ds* (M + A) >> 2.
1094+
pub const R_PPC64_PLTGOT16_DS: u32 = 65;
1095+
/// half16ds #lo(M + A) >> 2.
1096+
pub const R_PPC64_PLTGOT16_LO_DS: u32 = 66;
1097+
/// none (sym+add)@tls
1098+
pub const R_PPC64_TLS: u32 = 67;
1099+
/// doubleword64 (sym+add)@dtpmod
1100+
pub const R_PPC64_DTPMOD64: u32 = 68;
1101+
/// half16* (sym+add)@tprel
1102+
pub const R_PPC64_TPREL16: u32 = 69;
1103+
/// half16 (sym+add)@tprel@l
1104+
pub const R_PPC64_TPREL16_LO: u32 = 70;
1105+
/// half16 (sym+add)@tprel@h
1106+
pub const R_PPC64_TPREL16_HI: u32 = 71;
1107+
/// half16 (sym+add)@tprel@ha
1108+
pub const R_PPC64_TPREL16_HA: u32 = 72;
1109+
/// doubleword64 (sym+add)@tprel
1110+
pub const R_PPC64_TPREL64: u32 = 73;
1111+
/// half16* (sym+add)@dtprel
1112+
pub const R_PPC64_DTPREL16: u32 = 74;
1113+
/// half16 (sym+add)@dtprel@l
1114+
pub const R_PPC64_DTPREL16_LO: u32 = 75;
1115+
/// half16 (sym+add)@dtprel@h
1116+
pub const R_PPC64_DTPREL16_HI: u32 = 76;
1117+
/// half16 (sym+add)@dtprel@ha
1118+
pub const R_PPC64_DTPREL16_HA: u32 = 77;
1119+
/// doubleword64 (sym+add)@dtprel
1120+
pub const R_PPC64_DTPREL64: u32 = 78;
1121+
/// half16* (sym+add)@got@tlsgd
1122+
pub const R_PPC64_GOT_TLSGD16: u32 = 79;
1123+
/// half16 (sym+add)@got@tlsgd@l
1124+
pub const R_PPC64_GOT_TLSGD16_LO: u32 = 80;
1125+
/// half16 (sym+add)@got@tlsgd@h
1126+
pub const R_PPC64_GOT_TLSGD16_HI: u32 = 81;
1127+
/// half16 (sym+add)@got@tlsgd@ha
1128+
pub const R_PPC64_GOT_TLSGD16_HA: u32 = 82;
1129+
/// half16* (sym+add)@got@tlsld
1130+
pub const R_PPC64_GOT_TLSLD16: u32 = 83;
1131+
/// half16 (sym+add)@got@tlsld@l
1132+
pub const R_PPC64_GOT_TLSLD16_LO: u32 = 84;
1133+
/// half16 (sym+add)@got@tlsld@h
1134+
pub const R_PPC64_GOT_TLSLD16_HI: u32 = 85;
1135+
/// half16 (sym+add)@got@tlsld@ha
1136+
pub const R_PPC64_GOT_TLSLD16_HA: u32 = 86;
1137+
/// half16ds* (sym+add)@got@tprel
1138+
pub const R_PPC64_GOT_TPREL16_DS: u32 = 87;
1139+
/// half16ds (sym+add)@got@tprel@l
1140+
pub const R_PPC64_GOT_TPREL16_LO_DS: u32 = 88;
1141+
/// half16 (sym+add)@got@tprel@h
1142+
pub const R_PPC64_GOT_TPREL16_HI: u32 = 89;
1143+
/// half16 (sym+add)@got@tprel@ha
1144+
pub const R_PPC64_GOT_TPREL16_HA: u32 = 90;
1145+
/// half16ds* (sym+add)@got@dtprel
1146+
pub const R_PPC64_GOT_DTPREL16_DS: u32 = 91;
1147+
/// half16ds (sym+add)@got@dtprel@l
1148+
pub const R_PPC64_GOT_DTPREL16_LO_DS: u32 = 92;
1149+
/// half16 (sym+add)@got@dtprel@h
1150+
pub const R_PPC64_GOT_DTPREL16_HI: u32 = 93;
1151+
/// half16 (sym+add)@got@dtprel@ha
1152+
pub const R_PPC64_GOT_DTPREL16_HA: u32 = 94;
1153+
/// half16ds* (sym+add)@tprel
1154+
pub const R_PPC64_TPREL16_DS: u32 = 95;
1155+
/// half16ds (sym+add)@tprel@l
1156+
pub const R_PPC64_TPREL16_LO_DS: u32 = 96;
1157+
/// half16 (sym+add)@tprel@higher
1158+
pub const R_PPC64_TPREL16_HIGHER: u32 = 97;
1159+
/// half16 (sym+add)@tprel@highera
1160+
pub const R_PPC64_TPREL16_HIGHERA: u32 = 98;
1161+
/// half16 (sym+add)@tprel@highest
1162+
pub const R_PPC64_TPREL16_HIGHEST: u32 = 99;
1163+
/// half16 (sym+add)@tprel@highesta
1164+
pub const R_PPC64_TPREL16_HIGHESTA: u32 = 100;
1165+
/// half16ds* (sym+add)@dtprel
1166+
pub const R_PPC64_DTPREL16_DS: u32 = 101;
1167+
/// half16ds (sym+add)@dtprel@l
1168+
pub const R_PPC64_DTPREL16_LO_DS: u32 = 102;
1169+
/// half16 (sym+add)@dtprel@higher
1170+
pub const R_PPC64_DTPREL16_HIGHER: u32 = 103;
1171+
/// half16 (sym+add)@dtprel@highera
1172+
pub const R_PPC64_DTPREL16_HIGHERA: u32 = 104;
1173+
/// half16 (sym+add)@dtprel@highest
1174+
pub const R_PPC64_DTPREL16_HIGHEST: u32 = 105;
1175+
/// half16 (sym+add)@dtprel@highesta
1176+
pub const R_PPC64_DTPREL16_HIGHESTA: u32 = 106;
1177+
pub const R_PPC64_TLSGD: u32 = 107;
1178+
pub const R_PPC64_TLSLD: u32 = 108;
1179+
pub const R_PPC64_TOCSAVE: u32 = 109;
1180+
pub const R_PPC64_ADDR16_HIGH: u32 = 110;
1181+
pub const R_PPC64_ADDR16_HIGHA: u32 = 111;
1182+
pub const R_PPC64_TPREL16_HIGH: u32 = 112;
1183+
pub const R_PPC64_TPREL16_HIGHA: u32 = 113;
1184+
pub const R_PPC64_DTPREL16_HIGH: u32 = 114;
1185+
pub const R_PPC64_DTPREL16_HIGHA: u32 = 115;
1186+
pub const R_PPC64_REL24_NOTOC: u32 = 116;
1187+
pub const R_PPC64_ADDR64_LOCAL: u32 = 117;
1188+
pub const R_PPC64_ENTRY: u32 = 118;
1189+
pub const R_PPC64_PCREL34: u32 = 132;
1190+
pub const R_PPC64_GOT_PCREL34: u32 = 133;
1191+
pub const R_PPC64_IRELATIVE: u32 = 248;
1192+
pub const R_PPC64_REL16: u32 = 249;
1193+
pub const R_PPC64_REL16_LO: u32 = 250;
1194+
pub const R_PPC64_REL16_HI: u32 = 251;
1195+
pub const R_PPC64_REL16_HA: u32 = 252;
1196+
pub const R_PPC64_GNU_VTINHERIT: u32 = 253;
1197+
pub const R_PPC64_GNU_VTENTRY: u32 = 254;
1198+
9901199
/////////////////////
9911200
// LOONGARCH
9921201
/////////////////////
@@ -1696,6 +1905,135 @@ pub fn r_to_str(typ: u32, machine: u16) -> &'static str {
16961905
R_PPC_EMB_SPE_HALF_SDA => "R_PPC_EMB_SPE_HALF_SDA",
16971906
_ => "R_UNKNOWN_PPC",
16981907
},
1908+
// Power-PC
1909+
EM_PPC64 => match typ {
1910+
R_PPC64_NONE => "R_PPC64_NONE",
1911+
R_PPC64_ADDR32 => "R_PPC64_ADDR32",
1912+
R_PPC64_ADDR24 => "R_PPC64_ADDR24",
1913+
R_PPC64_ADDR16 => "R_PPC64_ADDR16",
1914+
R_PPC64_ADDR16_LO => "R_PPC64_ADDR16_LO",
1915+
R_PPC64_ADDR16_HI => "R_PPC64_ADDR16_HI",
1916+
R_PPC64_ADDR16_HA => "R_PPC64_ADDR16_HA",
1917+
R_PPC64_ADDR14 => "R_PPC64_ADDR14",
1918+
R_PPC64_ADDR14_BRTAKEN => "R_PPC64_ADDR14_BRTAKEN",
1919+
R_PPC64_ADDR14_BRNTAKEN => "R_PPC64_ADDR14_BRNTAKEN",
1920+
R_PPC64_REL24 => "R_PPC64_REL24",
1921+
R_PPC64_REL14 => "R_PPC64_REL14",
1922+
R_PPC64_REL14_BRTAKEN => "R_PPC64_REL14_BRTAKEN",
1923+
R_PPC64_REL14_BRNTAKEN => "R_PPC64_REL14_BRNTAKEN",
1924+
R_PPC64_GOT16 => "R_PPC64_GOT16",
1925+
R_PPC64_GOT16_LO => "R_PPC64_GOT16_LO",
1926+
R_PPC64_GOT16_HI => "R_PPC64_GOT16_HI",
1927+
R_PPC64_GOT16_HA => "R_PPC64_GOT16_HA",
1928+
R_PPC64_COPY => "R_PPC64_COPY",
1929+
R_PPC64_GLOB_DAT => "R_PPC64_GLOB_DAT",
1930+
R_PPC64_JMP_SLOT => "R_PPC64_JMP_SLOT",
1931+
R_PPC64_RELATIVE => "R_PPC64_RELATIVE",
1932+
R_PPC64_UADDR32 => "R_PPC64_UADDR32",
1933+
R_PPC64_UADDR16 => "R_PPC64_UADDR16",
1934+
R_PPC64_REL32 => "R_PPC64_REL32",
1935+
R_PPC64_PLT32 => "R_PPC64_PLT32",
1936+
R_PPC64_PLTREL32 => "R_PPC64_PLTREL32",
1937+
R_PPC64_PLT16_LO => "R_PPC64_PLT16_LO",
1938+
R_PPC64_PLT16_HI => "R_PPC64_PLT16_HI",
1939+
R_PPC64_PLT16_HA => "R_PPC64_PLT16_HA",
1940+
R_PPC64_SECTOFF => "R_PPC64_SECTOFF",
1941+
R_PPC64_SECTOFF_LO => "R_PPC64_SECTOFF_LO",
1942+
R_PPC64_SECTOFF_HI => "R_PPC64_SECTOFF_HI",
1943+
R_PPC64_SECTOFF_HA => "R_PPC64_SECTOFF_HA",
1944+
R_PPC64_ADDR30 => "R_PPC64_ADDR30",
1945+
R_PPC64_ADDR64 => "R_PPC64_ADDR64",
1946+
R_PPC64_ADDR16_HIGHER => "R_PPC64_ADDR16_HIGHER",
1947+
R_PPC64_ADDR16_HIGHERA => "R_PPC64_ADDR16_HIGHERA",
1948+
R_PPC64_ADDR16_HIGHEST => "R_PPC64_ADDR16_HIGHEST",
1949+
R_PPC64_ADDR16_HIGHESTA => "R_PPC64_ADDR16_HIGHESTA",
1950+
R_PPC64_UADDR64 => "R_PPC64_UADDR64",
1951+
R_PPC64_REL64 => "R_PPC64_REL64",
1952+
R_PPC64_PLT64 => "R_PPC64_PLT64",
1953+
R_PPC64_PLTREL64 => "R_PPC64_PLTREL64",
1954+
R_PPC64_TOC16 => "R_PPC64_TOC16",
1955+
R_PPC64_TOC16_LO => "R_PPC64_TOC16_LO",
1956+
R_PPC64_TOC16_HI => "R_PPC64_TOC16_HI",
1957+
R_PPC64_TOC16_HA => "R_PPC64_TOC16_HA",
1958+
R_PPC64_TOC => "R_PPC64_TOC",
1959+
R_PPC64_PLTGOT16 => "R_PPC64_PLTGOT16",
1960+
R_PPC64_PLTGOT16_LO => "R_PPC64_PLTGOT16_LO",
1961+
R_PPC64_PLTGOT16_HI => "R_PPC64_PLTGOT16_HI",
1962+
R_PPC64_PLTGOT16_HA => "R_PPC64_PLTGOT16_HA",
1963+
R_PPC64_ADDR16_DS => "R_PPC64_ADDR16_DS",
1964+
R_PPC64_ADDR16_LO_DS => "R_PPC64_ADDR16_LO_DS",
1965+
R_PPC64_GOT16_DS => "R_PPC64_GOT16_DS",
1966+
R_PPC64_GOT16_LO_DS => "R_PPC64_GOT16_LO_DS",
1967+
R_PPC64_PLT16_LO_DS => "R_PPC64_PLT16_LO_DS",
1968+
R_PPC64_SECTOFF_DS => "R_PPC64_SECTOFF_DS",
1969+
R_PPC64_SECTOFF_LO_DS => "R_PPC64_SECTOFF_LO_DS",
1970+
R_PPC64_TOC16_DS => "R_PPC64_TOC16_DS",
1971+
R_PPC64_TOC16_LO_DS => "R_PPC64_TOC16_LO_DS",
1972+
R_PPC64_PLTGOT16_DS => "R_PPC64_PLTGOT16_DS",
1973+
R_PPC64_PLTGOT16_LO_DS => "R_PPC64_PLTGOT16_LO_DS",
1974+
R_PPC64_TLS => "R_PPC64_TLS",
1975+
R_PPC64_DTPMOD64 => "R_PPC64_DTPMOD64",
1976+
R_PPC64_TPREL16 => "R_PPC64_TPREL16",
1977+
R_PPC64_TPREL16_LO => "R_PPC64_TPREL16_LO",
1978+
R_PPC64_TPREL16_HI => "R_PPC64_TPREL16_HI",
1979+
R_PPC64_TPREL16_HA => "R_PPC64_TPREL16_HA",
1980+
R_PPC64_TPREL64 => "R_PPC64_TPREL64",
1981+
R_PPC64_DTPREL16 => "R_PPC64_DTPREL16",
1982+
R_PPC64_DTPREL16_LO => "R_PPC64_DTPREL16_LO",
1983+
R_PPC64_DTPREL16_HI => "R_PPC64_DTPREL16_HI",
1984+
R_PPC64_DTPREL16_HA => "R_PPC64_DTPREL16_HA",
1985+
R_PPC64_DTPREL64 => "R_PPC64_DTPREL64",
1986+
R_PPC64_GOT_TLSGD16 => "R_PPC64_GOT_TLSGD16",
1987+
R_PPC64_GOT_TLSGD16_LO => "R_PPC64_GOT_TLSGD16_LO",
1988+
R_PPC64_GOT_TLSGD16_HI => "R_PPC64_GOT_TLSGD16_HI",
1989+
R_PPC64_GOT_TLSGD16_HA => "R_PPC64_GOT_TLSGD16_HA",
1990+
R_PPC64_GOT_TLSLD16 => "R_PPC64_GOT_TLSLD16",
1991+
R_PPC64_GOT_TLSLD16_LO => "R_PPC64_GOT_TLSLD16_LO",
1992+
R_PPC64_GOT_TLSLD16_HI => "R_PPC64_GOT_TLSLD16_HI",
1993+
R_PPC64_GOT_TLSLD16_HA => "R_PPC64_GOT_TLSLD16_HA",
1994+
R_PPC64_GOT_TPREL16_DS => "R_PPC64_GOT_TPREL16_DS",
1995+
R_PPC64_GOT_TPREL16_LO_DS => "R_PPC64_GOT_TPREL16_LO_DS",
1996+
R_PPC64_GOT_TPREL16_HI => "R_PPC64_GOT_TPREL16_HI",
1997+
R_PPC64_GOT_TPREL16_HA => "R_PPC64_GOT_TPREL16_HA",
1998+
R_PPC64_GOT_DTPREL16_DS => "R_PPC64_GOT_DTPREL16_DS",
1999+
R_PPC64_GOT_DTPREL16_LO_DS => "R_PPC64_GOT_DTPREL16_LO_DS",
2000+
R_PPC64_GOT_DTPREL16_HI => "R_PPC64_GOT_DTPREL16_HI",
2001+
R_PPC64_GOT_DTPREL16_HA => "R_PPC64_GOT_DTPREL16_HA",
2002+
R_PPC64_TPREL16_DS => "R_PPC64_TPREL16_DS",
2003+
R_PPC64_TPREL16_LO_DS => "R_PPC64_TPREL16_LO_DS",
2004+
R_PPC64_TPREL16_HIGHER => "R_PPC64_TPREL16_HIGHER",
2005+
R_PPC64_TPREL16_HIGHERA => "R_PPC64_TPREL16_HIGHERA",
2006+
R_PPC64_TPREL16_HIGHEST => "R_PPC64_TPREL16_HIGHEST",
2007+
R_PPC64_TPREL16_HIGHESTA => "R_PPC64_TPREL16_HIGHESTA",
2008+
R_PPC64_DTPREL16_DS => "R_PPC64_DTPREL16_DS",
2009+
R_PPC64_DTPREL16_LO_DS => "R_PPC64_DTPREL16_LO_DS",
2010+
R_PPC64_DTPREL16_HIGHER => "R_PPC64_DTPREL16_HIGHER",
2011+
R_PPC64_DTPREL16_HIGHERA => "R_PPC64_DTPREL16_HIGHERA",
2012+
R_PPC64_DTPREL16_HIGHEST => "R_PPC64_DTPREL16_HIGHEST",
2013+
R_PPC64_DTPREL16_HIGHESTA => "R_PPC64_DTPREL16_HIGHESTA",
2014+
R_PPC64_TLSGD => "R_PPC64_TLSGD",
2015+
R_PPC64_TLSLD => "R_PPC64_TLSLD",
2016+
R_PPC64_TOCSAVE => "R_PPC64_TOCSAVE",
2017+
R_PPC64_ADDR16_HIGH => "R_PPC64_ADDR16_HIGH",
2018+
R_PPC64_ADDR16_HIGHA => "R_PPC64_ADDR16_HIGHA",
2019+
R_PPC64_TPREL16_HIGH => "R_PPC64_TPREL16_HIGH",
2020+
R_PPC64_TPREL16_HIGHA => "R_PPC64_TPREL16_HIGHA",
2021+
R_PPC64_DTPREL16_HIGH => "R_PPC64_DTPREL16_HIGH",
2022+
R_PPC64_DTPREL16_HIGHA => "R_PPC64_DTPREL16_HIGHA",
2023+
R_PPC64_REL24_NOTOC => "R_PPC64_REL24_NOTOC",
2024+
R_PPC64_ADDR64_LOCAL => "R_PPC64_ADDR64_LOCAL",
2025+
R_PPC64_ENTRY => "R_PPC64_ENTRY",
2026+
R_PPC64_PCREL34 => "R_PPC64_PCREL34",
2027+
R_PPC64_GOT_PCREL34 => "R_PPC64_GOT_PCREL34",
2028+
R_PPC64_IRELATIVE => "R_PPC64_IRELATIVE",
2029+
R_PPC64_REL16 => "R_PPC64_REL16",
2030+
R_PPC64_REL16_LO => "R_PPC64_REL16_LO",
2031+
R_PPC64_REL16_HI => "R_PPC64_REL16_HI",
2032+
R_PPC64_REL16_HA => "R_PPC64_REL16_HA",
2033+
R_PPC64_GNU_VTINHERIT => "R_PPC64_GNU_VTINHERIT",
2034+
R_PPC64_GNU_VTENTRY => "R_PPC64_GNU_VTENTRY",
2035+
_ => "R_UNKNOWN_PPC64",
2036+
},
16992037
// Loongarch 64
17002038
EM_LOONGARCH => match typ {
17012039
R_LARCH_NONE => "LARCH_NONE",

0 commit comments

Comments
 (0)