Revert "kbuild: avoid static_assert for genksyms"
[linux-2.6-microblaze.git] / tools / objtool / orc_gen.c
index 235663b..9ce68b3 100644 (file)
@@ -105,30 +105,11 @@ static int create_orc_entry(struct elf *elf, struct section *u_sec, struct secti
        }
        memset(reloc, 0, sizeof(*reloc));
 
-       if (insn_sec->sym) {
-               reloc->sym = insn_sec->sym;
-               reloc->addend = insn_off;
-       } else {
-               /*
-                * The Clang assembler doesn't produce section symbols, so we
-                * have to reference the function symbol instead:
-                */
-               reloc->sym = find_symbol_containing(insn_sec, insn_off);
-               if (!reloc->sym) {
-                       /*
-                        * Hack alert.  This happens when we need to reference
-                        * the NOP pad insn immediately after the function.
-                        */
-                       reloc->sym = find_symbol_containing(insn_sec,
-                                                          insn_off - 1);
-               }
-               if (!reloc->sym) {
-                       WARN("missing symbol for insn at offset 0x%lx\n",
-                            insn_off);
-                       return -1;
-               }
-
-               reloc->addend = insn_off - reloc->sym->offset;
+       insn_to_reloc_sym_addend(insn_sec, insn_off, reloc);
+       if (!reloc->sym) {
+               WARN("missing symbol for insn at offset 0x%lx",
+                    insn_off);
+               return -1;
        }
 
        reloc->type = R_X86_64_PC32;