X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=bfd%2Felf-linker-x86.h;h=acce1bbbdc0337bfe7345459b5c63b4be474554f;hb=ae95c78d266a3def29258e67fd364264a0579d9d;hp=77e81960ab7fda2a82383a14e59f5925e5bfa4a6;hpb=32930e4edbc06bc6f10c435dbcc63131715df678;p=binutils-gdb.git diff --git a/bfd/elf-linker-x86.h b/bfd/elf-linker-x86.h index 77e81960ab7..acce1bbbdc0 100644 --- a/bfd/elf-linker-x86.h +++ b/bfd/elf-linker-x86.h @@ -1,5 +1,5 @@ /* x86-specific ELF linker support between ld and bfd. - Copyright (C) 2019-2020 Free Software Foundation, Inc. + Copyright (C) 2019-2021 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -18,14 +18,14 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ -/* Missing IBT and SHSTK property report control. */ -enum elf_x86_cet_report +/* Missing IBT, SHSTK and LAM property report control. */ +enum elf_x86_prop_report { - cet_report_none = 0, /* Do nothing. */ - cet_report_warning = 1 << 0, /* Issue a warning. */ - cet_report_error = 1 << 1, /* Issue an error. */ - cet_report_ibt = 1 << 2, /* Report missing IBT property. */ - cet_report_shstk = 1 << 3 /* Report missing SHSTK property. */ + prop_report_none = 0, /* Do nothing. */ + prop_report_warning = 1 << 0, /* Issue a warning. */ + prop_report_error = 1 << 1, /* Issue an error. */ + prop_report_ibt = 1 << 2, /* Report missing IBT property. */ + prop_report_shstk = 1 << 3 /* Report missing SHSTK property. */ }; /* Used to pass x86-specific linker options from ld to bfd. */ @@ -43,6 +43,12 @@ struct elf_linker_x86_params /* TRUE if GNU_PROPERTY_X86_FEATURE_1_SHSTK should be generated. */ unsigned int shstk: 1; + /* TRUE if GNU_PROPERTY_X86_FEATURE_1_LAM_U48 should be generated. */ + unsigned int lam_u48: 1; + + /* TRUE if GNU_PROPERTY_X86_FEATURE_1_LAM_U57 should be generated. */ + unsigned int lam_u57: 1; + /* TRUE if we shouldn't check relocation overflow. */ unsigned int no_reloc_overflow_check: 1; @@ -55,11 +61,20 @@ struct elf_linker_x86_params /* TRUE if --dynamic-linker is passed at command-line. */ unsigned int has_dynamic_linker : 1; + /* Report relative relocations. */ + unsigned int report_relative_reloc : 1; + /* X86-64 ISA level needed. */ unsigned int isa_level; /* Report missing IBT and SHSTK properties. */ - enum elf_x86_cet_report cet_report; + enum elf_x86_prop_report cet_report; + + /* Report missing LAM_U48 property. */ + enum elf_x86_prop_report lam_u48_report; + + /* Report missing LAM_U57 property. */ + enum elf_x86_prop_report lam_u57_report; /* The 1-byte NOP for x86 call instruction. */ char call_nop_byte;