Lines Matching refs:name

108     def __init__(self, name, mpy_feature, qstr_entry_size, word_size, arch_got, asm_jump):  argument
109 self.name = name
115 self.separate_rodata = name == "EM_XTENSA" and qstr_entry_size == 4
269 def __init__(self, name, data, alignment, filename=None): argument
271 self.name = name
280 return Section(elfsec.name, elfsec.data(), elfsec.data_alignment, filename)
284 def __init__(self, name, sym, link_addr=0): argument
285 self.name = name
319 if arch_name != self.arch.name:
325 log(LOG_LEVEL_2, " {:08x} {} size={}".format(sec.addr, sec.name, len(sec.data)))
327 def find_addr(self, name): argument
328 if name in self.known_syms:
329 s = self.known_syms[name]
331 raise LinkError("unknown symbol: {}".format(name))
346 assert s.name
347 if s.name in env.got_entries:
349 env.got_entries[s.name] = GOTEntry(s.name, s)
372 name = "{}+0x{:x}".format(s.section.name, existing)
375 name = s.name
377 name = "{}+0x{:x}".format(name, r["r_addend"])
379 env.xt_literals[idx] = name
380 if name in env.got_entries:
383 env.got_entries[name] = GOTEntry(name, s, existing)
408 got_entry.sec_name = sec.name
429 if got_entry.name == "mp_fun_table":
431 elif got_entry.name.startswith("mp_fun_table+0x"):
432 dest = int(got_entry.name.split("+")[1], 16) // env.arch.word_size
442 assert 0, (got_entry.name, got_entry.sec_name)
450 " {:08x} {} -> {}+{:08x}".format(g.offset, g.name, g.sec_name, g.link_addr),
482 env.arch.name == "EM_386"
484 or env.arch.name == "EM_X86_64"
486 or env.arch.name == "EM_ARM"
489 and env.arch.name == "EM_XTENSA"
498 if env.arch.separate_rodata and sec.name.startswith(".rodata"):
501 if sec.name.startswith(".bss"):
506 if sec.name.startswith(".external"):
508 "{}: fixed relocation to external symbol: {}".format(s.filename, s.name)
521 env.arch.name == "EM_386"
523 or env.arch.name == "EM_ARM"
527 assert s.name == "_GLOBAL_OFFSET_TABLE_"
532 env.arch.name == "EM_386"
534 or env.arch.name == "EM_ARM"
538 reloc = addr = env.got_entries[s.name].offset
540 elif env.arch.name == "EM_X86_64" and r_info_type in (
545 got_entry = env.got_entries[s.name]
549 elif env.arch.name == "EM_386" and r_info_type == R_386_GOTOFF:
554 elif env.arch.name == "EM_XTENSA" and r_info_type == R_XTENSA_SLOT0_OP:
557 if sec.name.startswith(".text"):
560 assert sec.name.startswith(".literal"), sec.name
572 elif env.arch.name == "EM_XTENSA" and r_info_type == R_XTENSA_DIFF32:
573 if s.section.name.startswith(".text"):
608 log_name = s.section.name
610 log_name = s.name
626 env.arch.name == "EM_386"
628 or env.arch.name == "EM_X86_64"
630 or env.arch.name == "EM_ARM"
632 or env.arch.name == "EM_XTENSA"
644 log_name = sec.name
646 log_name = s.name
653 if sec.name.startswith((".text", ".rodata", ".data.rel.ro", ".bss")):
655 kind = sec.name
656 elif sec.name == ".external.mp_fun_table":
660 assert 0, sec.name
687 elif s.name.startswith((".literal", ".text", ".rodata", ".data.rel.ro", ".bss")):
690 if s.name.startswith(".literal"):
694 elif s.name.startswith(".data"):
695 raise LinkError("{}: {} non-empty".format(felf, s.name))
703 sec.reloc_name = s.name
717 if sym.name in env.known_syms and not sym.name.startswith(
720 raise LinkError("duplicate symbol: {}".format(sym.name))
721 env.known_syms[sym.name] = sym
729 if env.arch.name == "EM_XTENSA":
737 if env.arch.name == "EM_XTENSA":
743 if env.arch.name == "EM_XTENSA":
786 if sym.name == "_GLOBAL_OFFSET_TABLE_":
788 elif sym.name == "mp_fun_table":
790 elif sym.name == "mp_native_qstr_val_table":
792 elif sym.name == "mp_native_qstr_obj_table":
794 elif sym.name in env.known_syms:
795 sym.resolved = env.known_syms[sym.name]
797 if sym.name in fun_table:
799 sym.mp_fun_table_offset = fun_table[sym.name]
801 raise LinkError("{}: undefined symbol: {}".format(sym.filename, sym.name))
808 if env.arch.separate_rodata and sec.name.startswith((".rodata", ".data.rel.ro")):
810 elif sec.name.startswith(".bss"):
821 if env.arch.name == "EM_XTENSA":
830 "{}: {} relocations via {}:".format(sec.filename, sec.name, sec.reloc_name),
833 if sec.name.startswith((".text", ".rodata")):
835 elif sec.name.startswith(".data.rel.ro"):
838 assert 0, sec.name
900 log(LOG_LEVEL_1, "arch: {}".format(env.arch.name))