* object.cc (Sized_relobj::write_local_symbols): Don't write out
local symbols when stripping all symbols.
This commit is contained in:
parent
91e22acdfa
commit
99e9a495d5
|
@ -1,6 +1,11 @@
|
||||||
|
2009-01-15 Ian Lance Taylor <iant@google.com>
|
||||||
|
|
||||||
|
* object.cc (Sized_relobj::write_local_symbols): Don't write out
|
||||||
|
local symbols when stripping all symbols.
|
||||||
|
|
||||||
2009-01-14 Cary Coutant <ccoutant@google.com>
|
2009-01-14 Cary Coutant <ccoutant@google.com>
|
||||||
|
|
||||||
* output.cc (Output_reloc): Add explicit instantiations.
|
* output.cc (Output_reloc): Add explicit instantiations.
|
||||||
|
|
||||||
2009-01-14 Cary Coutant <ccoutant@google.com>
|
2009-01-14 Cary Coutant <ccoutant@google.com>
|
||||||
|
|
||||||
|
|
|
@ -1416,9 +1416,13 @@ Sized_relobj<size, big_endian>::write_local_symbols(
|
||||||
Output_symtab_xindex* symtab_xindex,
|
Output_symtab_xindex* symtab_xindex,
|
||||||
Output_symtab_xindex* dynsym_xindex)
|
Output_symtab_xindex* dynsym_xindex)
|
||||||
{
|
{
|
||||||
if (parameters->options().strip_all()
|
const bool strip_all = parameters->options().strip_all();
|
||||||
&& this->output_local_dynsym_count_ == 0)
|
if (strip_all)
|
||||||
return;
|
{
|
||||||
|
if (this->output_local_dynsym_count_ == 0)
|
||||||
|
return;
|
||||||
|
this->output_local_symbol_count_ = 0;
|
||||||
|
}
|
||||||
|
|
||||||
gold_assert(this->symtab_shndx_ != -1U);
|
gold_assert(this->symtab_shndx_ != -1U);
|
||||||
if (this->symtab_shndx_ == 0)
|
if (this->symtab_shndx_ == 0)
|
||||||
|
@ -1487,7 +1491,7 @@ Sized_relobj<size, big_endian>::write_local_symbols(
|
||||||
st_shndx = out_sections[st_shndx]->out_shndx();
|
st_shndx = out_sections[st_shndx]->out_shndx();
|
||||||
if (st_shndx >= elfcpp::SHN_LORESERVE)
|
if (st_shndx >= elfcpp::SHN_LORESERVE)
|
||||||
{
|
{
|
||||||
if (lv.needs_output_symtab_entry())
|
if (lv.needs_output_symtab_entry() && !strip_all)
|
||||||
symtab_xindex->add(lv.output_symtab_index(), st_shndx);
|
symtab_xindex->add(lv.output_symtab_index(), st_shndx);
|
||||||
if (lv.needs_output_dynsym_entry())
|
if (lv.needs_output_dynsym_entry())
|
||||||
dynsym_xindex->add(lv.output_dynsym_index(), st_shndx);
|
dynsym_xindex->add(lv.output_dynsym_index(), st_shndx);
|
||||||
|
@ -1496,8 +1500,7 @@ Sized_relobj<size, big_endian>::write_local_symbols(
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write the symbol to the output symbol table.
|
// Write the symbol to the output symbol table.
|
||||||
if (!parameters->options().strip_all()
|
if (!strip_all && lv.needs_output_symtab_entry())
|
||||||
&& lv.needs_output_symtab_entry())
|
|
||||||
{
|
{
|
||||||
elfcpp::Sym_write<size, big_endian> osym(ov);
|
elfcpp::Sym_write<size, big_endian> osym(ov);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue