+2021-01-03 Alan Modra <amodra@gmail.com>
+
+ PR 27140
+ * powerpc.cc (Target_powerpc::Branch_info::make_stub): Only access
+ object->st_other() when 64-bit.
+ (Stub_table::add_long_branch_entry): Ignore "other" when 32-bit.
+
2021-01-01 Nicolas Boulenguez <nicolas@debian.org>
* tilegx.cc: Correct comment spelling.
from += (this->object_->output_section(this->shndx_)->address()
+ this->offset_);
Address to;
- unsigned int other;
+ unsigned int other = 0;
if (gsym != NULL)
{
switch (gsym->source())
to = symtab->compute_final_value<size>(gsym, &status);
if (status != Symbol_table::CFVS_OK)
return true;
- other = gsym->nonvis() >> 3;
+ if (size == 64)
+ other = gsym->nonvis() >> 3;
}
else
{
|| !symval.has_output_value())
return true;
to = symval.value(this->object_, 0);
- other = this->object_->st_other(this->r_sym_) >> 5;
+ if (size == 64)
+ other = this->object_->st_other(this->r_sym_) >> 5;
}
if (!(size == 32 && this->r_type_ == elfcpp::R_PPC_PLTREL24))
to += this->addend_;
this->need_resize_ = true;
p.first->second.toc_ = true;
}
- if (p.first->second.other_ == 0)
+ if (size == 64 && p.first->second.other_ == 0)
p.first->second.other_ = other;
gold_assert(save_res == p.first->second.save_res_);
if (p.second || (this->resizing_ && !p.first->second.iter_))