Line 630... |
Line 630... |
unsigned int first_global = symtab_count - isym_count;
|
unsigned int first_global = symtab_count - isym_count;
|
|
|
// Tell the target how big the GOT and PLT sections are.
|
// Tell the target how big the GOT and PLT sections are.
|
unsigned int got_count = got_plt_reader.get_got_entry_count();
|
unsigned int got_count = got_plt_reader.get_got_entry_count();
|
unsigned int plt_count = got_plt_reader.get_plt_entry_count();
|
unsigned int plt_count = got_plt_reader.get_plt_entry_count();
|
Output_data_got<size, big_endian>* got =
|
Output_data_got_base* got =
|
target->init_got_plt_for_update(symtab, layout, got_count, plt_count);
|
target->init_got_plt_for_update(symtab, layout, got_count, plt_count);
|
|
|
// Read the GOT entries from the base file and build the outgoing GOT.
|
// Read the GOT entries from the base file and build the outgoing GOT.
|
for (unsigned int i = 0; i < got_count; ++i)
|
for (unsigned int i = 0; i < got_count; ++i)
|
{
|
{
|
Line 1630... |
Line 1630... |
}
|
}
|
Swap32::writeval(pov, symtab_index);
|
Swap32::writeval(pov, symtab_index);
|
Swap32::writeval(pov + 4, shndx);
|
Swap32::writeval(pov + 4, shndx);
|
Swap32::writeval(pov + 8, chain);
|
Swap32::writeval(pov + 8, chain);
|
Swap32::writeval(pov + 12, nrelocs);
|
Swap32::writeval(pov + 12, nrelocs);
|
Swap32::writeval(pov + 16, first_reloc * 3 * sizeof_addr);
|
Swap32::writeval(pov + 16,
|
|
first_reloc * (8 + 2 * sizeof_addr));
|
pov += 20;
|
pov += 20;
|
}
|
}
|
|
|
// For each kept COMDAT group, write the group signature.
|
// For each kept COMDAT group, write the group signature.
|
for (unsigned int i = 0; i < ncomdat; i++)
|
for (unsigned int i = 0; i < ncomdat; i++)
|