aboutsummaryrefslogtreecommitdiff
path: root/gold/target.h
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-10-29 08:47:12 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-10-29 09:26:41 -0700
commit41e83f2b16ec57fb7e163c19fc315c86e4994b2e (patch)
treea122ed8dc81d79368cbda588ef7ba9363ed31f15 /gold/target.h
parentb10a8bc7de0087b5c509b4b0831e606b56b6702c (diff)
downloadgdb-41e83f2b16ec57fb7e163c19fc315c86e4994b2e.zip
gdb-41e83f2b16ec57fb7e163c19fc315c86e4994b2e.tar.gz
gdb-41e83f2b16ec57fb7e163c19fc315c86e4994b2e.tar.bz2
Make GOT entry size target-dependent
The GOT entry size is target-dependent. This patch adds a got_entry_size function to Sized_target class so that a target can provide a value different from default. PR gold/19184 * incremental.cc (Got_plt_view_info): Add got_entry_size. (Local_got_offset_visitor::visit): Replace got_entry_size_ with info_.got_entry_size. (Local_got_offset_visitor::got_entry_size_): Removed. (Global_got_offset_visitor::visit): Replace got_entry_size_ with info_.got_entry_size. (Global_got_offset_visitor::got_entry_size_): Removed. (Output_section_incremental_inputs::write_got_plt): Initialize view_info.got_entry_size. * target.h (Sized_target::got_entry_size): New virtual function. * x86_64.cc (Target_x86_64::got_entry_size): New function.
Diffstat (limited to 'gold/target.h')
-rw-r--r--gold/target.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/gold/target.h b/gold/target.h
index db093b7..b21c56a 100644
--- a/gold/target.h
+++ b/gold/target.h
@@ -1004,6 +1004,14 @@ class Sized_target : public Target
plt_entry_size() const
{ gold_unreachable(); }
+ // Return the size of each GOT entry. This is only used for
+ // laying out the incremental link info sections. A target needs
+ // to implement this if its GOT size is different.
+
+ virtual unsigned int
+ got_entry_size() const
+ { return size / 8; }
+
// Create the GOT and PLT sections for an incremental update.
// A target needs to implement this to support incremental linking.