Lines Matching defs:rsec
272 struct section *rsec;
275 rsec = sec->rsec;
276 if (!rsec)
281 sec_offset_hash(rsec, o)) {
282 if (reloc->sec != rsec)
850 static struct reloc *elf_init_reloc(struct elf *elf, struct section *rsec,
857 if (reloc_idx >= sec_num_entries(rsec)) {
859 __func__, reloc_idx, rsec->name, sec_num_entries(rsec));
863 reloc = &rsec->relocs[reloc_idx];
867 __func__, rsec->name, reloc_idx);
871 reloc->sec = rsec;
915 return elf_init_reloc(elf, sec->rsec, reloc_idx, offset, sym, addend,
931 return elf_init_reloc(elf, sec->rsec, reloc_idx, offset, sym, addend,
938 struct section *rsec;
947 list_for_each_entry(rsec, &elf->sections, list) {
948 if (!is_reloc_sec(rsec))
951 rsec->base = find_section_by_index(elf, rsec->sh.sh_info);
952 if (!rsec->base) {
954 rsec->name);
958 rsec->base->rsec = rsec;
961 rsec->relocs = calloc(sec_num_entries(rsec), sizeof(*reloc));
962 if (!rsec->relocs) {
966 for (i = 0; i < sec_num_entries(rsec); i++) {
967 reloc = &rsec->relocs[i];
969 reloc->sec = rsec;
974 symndx, rsec->name);
1174 struct section *rsec;
1185 rsec = elf_create_section(elf, rsec_name, elf_rela_size(elf), reloc_nr);
1187 if (!rsec)
1190 rsec->data->d_type = ELF_T_RELA;
1191 rsec->sh.sh_type = SHT_RELA;
1192 rsec->sh.sh_addralign = elf_addr_size(elf);
1193 rsec->sh.sh_link = find_section_by_name(elf, ".symtab")->idx;
1194 rsec->sh.sh_info = sec->idx;
1195 rsec->sh.sh_flags = SHF_INFO_LINK;
1197 rsec->relocs = calloc(sec_num_entries(rsec), sizeof(struct reloc));
1198 if (!rsec->relocs) {
1203 sec->rsec = rsec;
1204 rsec->base = sec;
1206 return rsec;