Support 64-bit entry size in SHT_HASH (for s390).
[deliverable/binutils-gdb.git] / gold / target.h
index 95bc57e6aaa91a6d7cc68878853b7ff6938854f2..db093b7fe0011d717ad8200cf438bde8a2a13662 100644 (file)
@@ -455,6 +455,11 @@ class Target
   entry_symbol_name() const
   { return this->pti_->entry_symbol_name; }
 
+  // Return the size in bits of SHT_HASH entry.
+  int
+  hash_entry_size() const
+  { return this->pti_->hash_entry_size; }
+
   // Whether the target has a custom set_dynsym_indexes method.
   bool
   has_custom_set_dynsym_indexes() const
@@ -540,6 +545,9 @@ class Target
     const char* attributes_vendor;
     // Name of the main entry point to the program.
     const char* entry_symbol_name;
+    // Size (in bits) of SHT_HASH entry. Always equal to 32, except for
+    // 64-bit S/390.
+    const int hash_entry_size;
   };
 
   Target(const Target_info* pti)
@@ -1056,9 +1064,9 @@ class Sized_target : public Target
   // and DST_OFF.
   void
   gc_add_reference(Symbol_table* symtab,
-                  Object* src_obj,
+                  Relobj* src_obj,
                   unsigned int src_shndx,
-                  Object* dst_obj,
+                  Relobj* dst_obj,
                   unsigned int dst_shndx,
                   typename elfcpp::Elf_types<size>::Elf_Addr dst_off) const
   {
@@ -1080,8 +1088,8 @@ class Sized_target : public Target
 
   // Handle target specific gc actions when adding a gc reference.
   virtual void
-  do_gc_add_reference(Symbol_table*, Object*, unsigned int,
-                     Object*, unsigned int,
+  do_gc_add_reference(Symbol_table*, Relobj*, unsigned int,
+                     Relobj*, unsigned int,
                      typename elfcpp::Elf_types<size>::Elf_Addr) const
   { }
 
This page took 0.024891 seconds and 4 git commands to generate.