Lines Matching defs:rela

935 static int soinfo_relocate(soinfo* si, ElfW(Rela)* rela, unsigned count, soinfo* needed[]) {
939 for (size_t idx = 0; idx < count; ++idx, ++rela) {
940 unsigned type = ELFW(R_TYPE)(rela->r_info);
941 unsigned sym = ELFW(R_SYM)(rela->r_info);
942 ElfW(Addr) reloc = static_cast<ElfW(Addr)>(rela->r_offset + si->load_bias);
1000 DL_ERR("unknown weak reloc type %d @ %p (%zu)", type, rela, idx);
1016 MARK(rela->r_offset);
1018 reloc, (sym_addr + rela->r_addend), sym_name);
1019 *reinterpret_cast<ElfW(Addr)*>(reloc) = (sym_addr + rela->r_addend);
1023 MARK(rela->r_offset);
1025 reloc, (sym_addr + rela->r_addend), sym_name);
1026 *reinterpret_cast<ElfW(Addr)*>(reloc) = (sym_addr + rela->r_addend);
1030 MARK(rela->r_offset);
1032 reloc, (sym_addr + rela->r_addend), sym_name);
1033 *reinterpret_cast<ElfW(Addr)*>(reloc) += (sym_addr + rela->r_addend);
1037 MARK(rela->r_offset);
1039 reloc, (sym_addr + rela->r_addend), sym_name);
1040 if ((static_cast<ElfW(Addr)>(INT32_MIN) <= (*reinterpret_cast<ElfW(Addr)*>(reloc) + (sym_addr + rela->r_addend))) &&
1041 ((*reinterpret_cast<ElfW(Addr)*>(reloc) + (sym_addr + rela->r_addend)) <= static_cast<ElfW(Addr)>(UINT32_MAX))) {
1042 *reinterpret_cast<ElfW(Addr)*>(reloc) += (sym_addr + rela->r_addend);
1045 (*reinterpret_cast<ElfW(Addr)*>(reloc) + (sym_addr + rela->r_addend)),
1053 MARK(rela->r_offset);
1055 reloc, (sym_addr + rela->r_addend), sym_name);
1056 if ((static_cast<ElfW(Addr)>(INT16_MIN) <= (*reinterpret_cast<ElfW(Addr)*>(reloc) + (sym_addr + rela->r_addend))) &&
1057 ((*reinterpret_cast<ElfW(Addr)*>(reloc) + (sym_addr + rela->r_addend)) <= static_cast<ElfW(Addr)>(UINT16_MAX))) {
1058 *reinterpret_cast<ElfW(Addr)*>(reloc) += (sym_addr + rela->r_addend);
1061 (*reinterpret_cast<ElfW(Addr)*>(reloc) + (sym_addr + rela->r_addend)),
1069 MARK(rela->r_offset);
1071 reloc, (sym_addr + rela->r_addend), rela->r_offset, sym_name);
1072 *reinterpret_cast<ElfW(Addr)*>(reloc) += (sym_addr + rela->r_addend) - rela->r_offset;
1076 MARK(rela->r_offset);
1078 reloc, (sym_addr + rela->r_addend), rela->r_offset, sym_name);
1079 if ((static_cast<ElfW(Addr)>(INT32_MIN) <= (*reinterpret_cast<ElfW(Addr)*>(reloc) + ((sym_addr + rela->r_addend) - rela->r_offset))) &&
1080 ((*reinterpret_cast<ElfW(Addr)*>(reloc) + ((sym_addr + rela->r_addend) - rela->r_offset)) <= static_cast<ElfW(Addr)>(UINT32_MAX))) {
1081 *reinterpret_cast<ElfW(Addr)*>(reloc) += ((sym_addr + rela->r_addend) - rela->r_offset);
1084 (*reinterpret_cast<ElfW(Addr)*>(reloc) + ((sym_addr + rela->r_addend) - rela->r_offset)),
1092 MARK(rela->r_offset);
1094 reloc, (sym_addr + rela->r_addend), rela->r_offset, sym_name);
1095 if ((static_cast<ElfW(Addr)>(INT16_MIN) <= (*reinterpret_cast<ElfW(Addr)*>(reloc) + ((sym_addr + rela->r_addend) - rela->r_offset))) &&
1096 ((*reinterpret_cast<ElfW(Addr)*>(reloc) + ((sym_addr + rela->r_addend) - rela->r_offset)) <= static_cast<ElfW(Addr)>(UINT16_MAX))) {
1097 *reinterpret_cast<ElfW(Addr)*>(reloc) += ((sym_addr + rela->r_addend) - rela->r_offset);
1100 (*reinterpret_cast<ElfW(Addr)*>(reloc) + ((sym_addr + rela->r_addend) - rela->r_offset)),
1109 MARK(rela->r_offset);
1115 reloc, (si->base + rela->r_addend));
1116 *reinterpret_cast<ElfW(Addr)*>(reloc) = (si->base + rela->r_addend);
1133 reloc, (sym_addr + rela->r_addend), rela->r_offset);
1137 reloc, (sym_addr + rela->r_addend), rela->r_offset);
1142 MARK(rela->r_offset);
1144 static_cast<size_t>(sym_addr + rela->r_addend), sym_name);
1145 *reinterpret_cast<ElfW(Addr)*>(reloc) = sym_addr + rela->r_addend;
1149 MARK(rela->r_offset);
1151 static_cast<size_t>(sym_addr + rela->r_addend), sym_name);
1152 *reinterpret_cast<ElfW(Addr)*>(reloc) = sym_addr + rela->r_addend;
1156 MARK(rela->r_offset);
1163 *reinterpret_cast<ElfW(Addr)*>(reloc) = si->base + rela->r_addend;
1167 MARK(rela->r_offset);
1170 *reinterpret_cast<ElfW(Addr)*>(reloc) = sym_addr + rela->r_addend;
1174 MARK(rela->r_offset);
1177 *reinterpret_cast<ElfW(Addr)*>(reloc) = sym_addr + rela->r_addend;
1181 MARK(rela->r_offset);
1185 *reinterpret_cast<ElfW(Addr)*>(reloc) = sym_addr + rela->r_addend - reloc;
1190 DL_ERR("unknown reloc type %d @ %p (%zu)", type, rela, idx);
1768 si->rela = reinterpret_cast<ElfW(Rela)*>(base + d->d_un.d_ptr);
1963 if (si->rela != NULL) {
1965 if (soinfo_relocate(si, si->rela, si->rela_count, needed)) {