]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - tools/objtool/include/objtool/elf.h
x86,objtool: Create .return_sites
[mirror_ubuntu-jammy-kernel.git] / tools / objtool / include / objtool / elf.h
index 075d8291b8546bda92af6e735cf58ad202c27069..6cdfa401b00092a5bd0574bc793f71487afea8df 100644 (file)
@@ -54,8 +54,12 @@ struct symbol {
        unsigned long offset;
        unsigned int len;
        struct symbol *pfunc, *cfunc, *alias;
-       bool uaccess_safe;
-       bool static_call_tramp;
+       u8 uaccess_safe      : 1;
+       u8 static_call_tramp : 1;
+       u8 retpoline_thunk   : 1;
+       u8 return_thunk      : 1;
+       u8 fentry            : 1;
+       u8 kcov              : 1;
 };
 
 struct reloc {
@@ -69,7 +73,7 @@ struct reloc {
        struct symbol *sym;
        unsigned long offset;
        unsigned int type;
-       int addend;
+       s64 addend;
        int idx;
        bool jump_table_start;
 };
@@ -131,7 +135,7 @@ struct elf *elf_open_read(const char *name, int flags);
 struct section *elf_create_section(struct elf *elf, const char *name, unsigned int sh_flags, size_t entsize, int nr);
 
 int elf_add_reloc(struct elf *elf, struct section *sec, unsigned long offset,
-                 unsigned int type, struct symbol *sym, int addend);
+                 unsigned int type, struct symbol *sym, s64 addend);
 int elf_add_reloc_to_insn(struct elf *elf, struct section *sec,
                          unsigned long offset, unsigned int type,
                          struct section *insn_sec, unsigned long insn_off);
@@ -140,7 +144,6 @@ int elf_write_insn(struct elf *elf, struct section *sec,
                   unsigned long offset, unsigned int len,
                   const char *insn);
 int elf_write_reloc(struct elf *elf, struct reloc *reloc);
-struct symbol *elf_create_undef_symbol(struct elf *elf, const char *name);
 int elf_write(struct elf *elf);
 void elf_close(struct elf *elf);