* output.h (Output_data_got::add_constant): Tidy.
(Output_data_got::add_constant_pair): New function. * powerpc.cc (Output_data_got_powerpc): Override all Output_data_got methods used so as to first call reserve_ent().
This commit is contained in:
parent
0b76b0cedb
commit
e84fe78fbc
@ -1,3 +1,10 @@
|
||||
2013-10-14 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* output.h (Output_data_got::add_constant): Tidy.
|
||||
(Output_data_got::add_constant_pair): New function.
|
||||
* powerpc.cc (Output_data_got_powerpc): Override all Output_data_got
|
||||
methods used so as to first call reserve_ent().
|
||||
|
||||
2013-10-11 Roland McGrath <mcgrathr@google.com>
|
||||
|
||||
* powerpc.cc (Output_data_got_powerpc): Remove unused methods
|
||||
|
@ -2380,10 +2380,13 @@ class Output_data_got : public Output_data_got_base
|
||||
// entry from the start of the GOT.
|
||||
unsigned int
|
||||
add_constant(Valtype constant)
|
||||
{
|
||||
unsigned int got_offset = this->add_got_entry(Got_entry(constant));
|
||||
return got_offset;
|
||||
}
|
||||
{ return this->add_got_entry(Got_entry(constant)); }
|
||||
|
||||
// Add a pair of constants to the GOT. This returns the offset of
|
||||
// the new entry from the start of the GOT.
|
||||
unsigned int
|
||||
add_constant_pair(Valtype c1, Valtype c2)
|
||||
{ return this->add_got_entry_pair(Got_entry(c1), Got_entry(c2)); }
|
||||
|
||||
// Replace GOT entry I with a new constant.
|
||||
void
|
||||
|
@ -1987,13 +1987,88 @@ public:
|
||||
header_index_(size == 32 ? 0x2000 : 0)
|
||||
{ }
|
||||
|
||||
// Override all the Output_data_got methods we use so as to first call
|
||||
// reserve_ent().
|
||||
bool
|
||||
add_global(Symbol* gsym, unsigned int got_type)
|
||||
{
|
||||
this->reserve_ent();
|
||||
return Output_data_got<size, big_endian>::add_global(gsym, got_type);
|
||||
}
|
||||
|
||||
bool
|
||||
add_global_plt(Symbol* gsym, unsigned int got_type)
|
||||
{
|
||||
this->reserve_ent();
|
||||
return Output_data_got<size, big_endian>::add_global_plt(gsym, got_type);
|
||||
}
|
||||
|
||||
bool
|
||||
add_global_tls(Symbol* gsym, unsigned int got_type)
|
||||
{ return this->add_global_plt(gsym, got_type); }
|
||||
|
||||
void
|
||||
add_global_with_rel(Symbol* gsym, unsigned int got_type,
|
||||
Output_data_reloc_generic* rel_dyn, unsigned int r_type)
|
||||
{
|
||||
this->reserve_ent();
|
||||
Output_data_got<size, big_endian>::
|
||||
add_global_with_rel(gsym, got_type, rel_dyn, r_type);
|
||||
}
|
||||
|
||||
void
|
||||
add_global_pair_with_rel(Symbol* gsym, unsigned int got_type,
|
||||
Output_data_reloc_generic* rel_dyn,
|
||||
unsigned int r_type_1, unsigned int r_type_2)
|
||||
{
|
||||
this->reserve_ent(2);
|
||||
Output_data_got<size, big_endian>::
|
||||
add_global_pair_with_rel(gsym, got_type, rel_dyn, r_type_1, r_type_2);
|
||||
}
|
||||
|
||||
bool
|
||||
add_local(Relobj* object, unsigned int sym_index, unsigned int got_type)
|
||||
{
|
||||
this->reserve_ent();
|
||||
return Output_data_got<size, big_endian>::add_local(object, sym_index,
|
||||
got_type);
|
||||
}
|
||||
|
||||
bool
|
||||
add_local_plt(Relobj* object, unsigned int sym_index, unsigned int got_type)
|
||||
{
|
||||
this->reserve_ent();
|
||||
return Output_data_got<size, big_endian>::add_local_plt(object, sym_index,
|
||||
got_type);
|
||||
}
|
||||
|
||||
bool
|
||||
add_local_tls(Relobj* object, unsigned int sym_index, unsigned int got_type)
|
||||
{ return this->add_local_plt(object, sym_index, got_type); }
|
||||
|
||||
void
|
||||
add_local_tls_pair(Relobj* object, unsigned int sym_index,
|
||||
unsigned int got_type,
|
||||
Output_data_reloc_generic* rel_dyn,
|
||||
unsigned int r_type)
|
||||
{
|
||||
this->reserve_ent(2);
|
||||
Output_data_got<size, big_endian>::
|
||||
add_local_tls_pair(object, sym_index, got_type, rel_dyn, r_type);
|
||||
}
|
||||
|
||||
unsigned int
|
||||
add_constant(Valtype constant)
|
||||
{
|
||||
this->reserve_ent();
|
||||
return Output_data_got<size, big_endian>::add_constant(constant);
|
||||
}
|
||||
|
||||
unsigned int
|
||||
add_constant_pair(Valtype c1, Valtype c2)
|
||||
{
|
||||
this->reserve_ent(2);
|
||||
unsigned int got_offset = this->add_constant(c1);
|
||||
this->add_constant(c2);
|
||||
return got_offset;
|
||||
return Output_data_got<size, big_endian>::add_constant_pair(c1, c2);
|
||||
}
|
||||
|
||||
// Offset of _GLOBAL_OFFSET_TABLE_.
|
||||
|
Loading…
Reference in New Issue
Block a user