gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gold / layout.h
index d71d291b7c07997aa42d3ee587caab80b27f5bc0..fd5878da18bc7d97e2c763f7263bac209d66e83a 100644 (file)
@@ -1,6 +1,6 @@
 // layout.h -- lay out output file sections for gold  -*- C++ -*-
 
-// Copyright (C) 2006-2018 Free Software Foundation, Inc.
+// Copyright (C) 2006-2020 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
@@ -593,6 +593,14 @@ class Layout
   set_unique_segment_for_sections_specified()
   { this->unique_segment_for_sections_specified_ = true; }
 
+  bool
+  is_lto_slim_object () const
+  { return this->lto_slim_object_; }
+
+  void
+  set_lto_slim_object ()
+  { this->lto_slim_object_ = true; }
+
   // For incremental updates, allocate a block of memory from the
   // free list.  Find a block starting at or after MINOFF.
   off_t
@@ -666,12 +674,10 @@ class Layout
                       size_t cie_length, const unsigned char* fde_data,
                       size_t fde_length);
 
-  // Remove .eh_frame information for a PLT.  FDEs using the CIE must
-  // be removed in reverse order to the order they were added.
+  // Remove all post-map .eh_frame information for a PLT.
   void
   remove_eh_frame_for_plt(Output_data* plt, const unsigned char* cie_data,
-                         size_t cie_length, const unsigned char* fde_data,
-                         size_t fde_length);
+                         size_t cie_length);
 
   // Scan a .debug_info or .debug_types section, and add summary
   // information to the .gdb_index section.
@@ -701,6 +707,17 @@ class Layout
                      const unsigned char* pr_data,
                      const Object* object);
 
+  // Merge per-object properties with program properties.
+  void
+  merge_gnu_properties(const Object* object);
+
+  // Add a target-specific property for the output .note.gnu.property section.
+  void
+  add_gnu_property(unsigned int note_type,
+                  unsigned int pr_type,
+                  size_t pr_datasz,
+                  const unsigned char* pr_data);
+
   // Add an Output_section_data to the layout.  This is used for
   // special sections like the GOT section.  ORDER is where the
   // section should wind up in the output segment.  IS_RELRO is true
@@ -1359,7 +1376,7 @@ class Layout
     std::vector<Section_info> section_infos_;
   };
 
-  // Program properties from .note.gnu.properties sections.
+  // Program properties from .note.gnu.property sections.
   struct Gnu_property
   {
     size_t pr_datasz;
@@ -1471,6 +1488,8 @@ class Layout
   Incremental_inputs* incremental_inputs_;
   // Whether we record output section data created in script
   bool record_output_section_data_from_script_;
+  // Set if this is a slim LTO object not loaded with a compiler plugin
+  bool lto_slim_object_;
   // List of output data that needs to be removed at relaxation clean up.
   Output_section_data_list script_output_section_data_list_;
   // Structure to save segment states before entering the relaxation loop.
This page took 0.027069 seconds and 4 git commands to generate.