+2015-12-11 Cary Coutant <ccoutant@gmail.com>
+
+ * target.h (Target::calls_non_split): Add prelocs, reloc_count
+ parameters.
+ (Target::do_calls_non_split): Likewise.
+ * target.cc (Target::do_calls_non_split): Likewise.
+ * reloc.cc (Sized_relobj_file::split_stack_adjust_reltype): Adjust
+ call to Target::calls_non_split.
+ * i386.cc (Target_i386::do_calls_non_split): Add prelocs, reloc_count
+ parameters.
+ * powerpc.cc (Target_powerpc::do_calls_non_split): Likewise.
+ * x86_64.cc (Target_x86_64::do_calls_non_split): Likewise.
+
2015-12-11 Cary Coutant <ccoutant@gmail.com>
* object.cc (Sized_relobj_file::Sized_relobj_file): Initialize
void
do_calls_non_split(Relobj* object, unsigned int shndx,
section_offset_type fnoffset, section_size_type fnsize,
+ const unsigned char* prelocs, size_t reloc_count,
unsigned char* view, section_size_type view_size,
std::string* from, std::string* to) const;
Target_i386::do_calls_non_split(Relobj* object, unsigned int shndx,
section_offset_type fnoffset,
section_size_type fnsize,
+ const unsigned char*,
+ size_t,
unsigned char* view,
section_size_type view_size,
std::string* from,
void
do_calls_non_split(Relobj* object, unsigned int shndx,
section_offset_type fnoffset, section_size_type fnsize,
+ const unsigned char* prelocs, size_t reloc_count,
unsigned char* view, section_size_type view_size,
std::string* from, std::string* to) const;
unsigned int shndx,
section_offset_type fnoffset,
section_size_type fnsize,
+ const unsigned char* prelocs,
+ size_t reloc_count,
unsigned char* view,
section_size_type view_size,
std::string* from,
{
// warn
Target::do_calls_non_split(object, shndx, fnoffset, fnsize,
- view, view_size, from, to);
+ prelocs, reloc_count, view, view_size,
+ from, to);
return;
}
std::string from;
std::string to;
parameters->target().calls_non_split(this, shndx, p->first, p->second,
+ prelocs, reloc_count,
view, view_size, &from, &to);
if (!from.empty())
{
void
Target::do_calls_non_split(Relobj* object, unsigned int, section_offset_type,
- section_size_type, unsigned char*, section_size_type,
+ section_size_type, const unsigned char*, size_t,
+ unsigned char*, section_size_type,
std::string*, std::string*) const
{
static bool warned;
void
calls_non_split(Relobj* object, unsigned int shndx,
section_offset_type fnoffset, section_size_type fnsize,
+ const unsigned char* prelocs, size_t reloc_count,
unsigned char* view, section_size_type view_size,
std::string* from, std::string* to) const
{
- this->do_calls_non_split(object, shndx, fnoffset, fnsize, view, view_size,
+ this->do_calls_non_split(object, shndx, fnoffset, fnsize,
+ prelocs, reloc_count, view, view_size,
from, to);
}
// Virtual function which may be overridden by the child class.
virtual void
do_calls_non_split(Relobj* object, unsigned int, section_offset_type,
- section_size_type, unsigned char*, section_size_type,
+ section_size_type, const unsigned char*, size_t,
+ unsigned char*, section_size_type,
std::string*, std::string*) const;
// make_elf_object hooks. There are four versions of these for
void
do_calls_non_split(Relobj* object, unsigned int shndx,
section_offset_type fnoffset, section_size_type fnsize,
+ const unsigned char* prelocs, size_t reloc_count,
unsigned char* view, section_size_type view_size,
std::string* from, std::string* to) const;
Target_x86_64<size>::do_calls_non_split(Relobj* object, unsigned int shndx,
section_offset_type fnoffset,
section_size_type fnsize,
+ const unsigned char*,
+ size_t,
unsigned char* view,
section_size_type view_size,
std::string* from,