[patch][gold][arm]Support IFUNC

Cary Coutant ccoutant@google.com
Thu Jan 29 00:14:00 GMT 2015


> This patch adds IFUNC support for arm gold backend, which is a
> required feature in chromeos  arm development work.

+  // Unlike aarch64, which records symbol value in "addend" field of
relocations
+  // and could be done at the same time an IRelative reloc is created for the
+  // symbol, arm puts the symbol value into "GOT" table, which, however, is
+  // issued later in Output_data_plt_arm::do_write(). So we have a struct here
+  // to keep necessary symbol information for later use in do_write. We usually
+  // have only a very limited number of ifuncs, so the extra data required here
+  // is also limited.
+
+   struct IRelative_data
+  {

"struct" is indented one space too many.

   // Set the final size.
   void
   set_final_data_size()
   {
     this->set_data_size(this->first_plt_entry_offset()
+                       + (this->count_ + this->irelative_count_)
+                       * this->get_plt_entry_size());
  }

Please add another pair of parentheses around the multiplication
expression, and indent the "*" accordingly.

This is OK with those changes. Thanks!

-cary



More information about the Binutils mailing list