Fix group signature handling for relocatable link, add bootstrap
[deliverable/binutils-gdb.git] / gold / layout.h
index e050df36b925380215b0ce8e891a5897ecb7520e..674956e68891751fac9a47569897b33ad0016370 100644 (file)
@@ -171,6 +171,10 @@ class Layout
   define_script_symbols(Symbol_table* symtab)
   { this->script_options_->add_symbols_to_table(symtab); }
 
+  // Define symbols for group signatures.
+  void
+  define_group_signatures(Symbol_table*);
+
   // Return the Stringpool used for symbol names.
   const Stringpool*
   sympool() const
@@ -332,6 +336,25 @@ class Layout
   static const Linkonce_mapping linkonce_mapping[];
   static const int linkonce_mapping_count;
 
+  // During a relocatable link, a list of group sections and
+  // signatures.
+  struct Group_signature
+  {
+    // The group section.
+    Output_section* section;
+    // The signature.
+    const char* signature;
+
+    Group_signature()
+      : section(NULL), signature(NULL)
+    { }
+
+    Group_signature(Output_section* sectiona, const char* signaturea)
+      : section(sectiona), signature(signaturea)
+    { }
+  };
+  typedef std::vector<Group_signature> Group_signatures;
+
   // Create a .note section for gold.
   void
   create_gold_note();
@@ -537,6 +560,8 @@ class Layout
   Eh_frame* eh_frame_data_;
   // The exception frame header output section if there is one.
   Output_section* eh_frame_hdr_section_;
+  // A list of group sections and their signatures.
+  Group_signatures group_signatures_;
   // The size of the output file.
   off_t output_file_size_;
   // Whether we have seen an object file marked to require an
This page took 0.026355 seconds and 4 git commands to generate.