This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [patch][gold][arm]Support IFUNC
- From: Cary Coutant <ccoutant at google dot com>
- To: HÃn ShÄn (ææ) <shenhan at google dot com>
- Cc: Doug Kwan <dougkwan at google dot com>, Jing Yu <jingyu at google dot com>, binutils <binutils at sourceware dot org>, Luis Lozano <llozano at google dot com>, c-compiler-chrome <c-compiler-chrome at google dot com>
- Date: Wed, 28 Jan 2015 16:14:40 -0800
- Subject: Re: [patch][gold][arm]Support IFUNC
- Authentication-results: sourceware.org; auth=none
- References: <CACkGtrh9Ny5zxLdncauEaoxft9k-9O=iR0957-Ao3Q-AAmFBfA at mail dot gmail dot com>
> 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