Automatic date update in version.in
[binutils-gdb.git] / bfd / elf-linker-x86.h
index 77e81960ab7fda2a82383a14e59f5925e5bfa4a6..acce1bbbdc0337bfe7345459b5c63b4be474554f 100644 (file)
@@ -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.
 
    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;