mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-01-19 07:24:48 +00:00
* resolve.cc (Symbol_table::resolve): When merging common symbols,
keep the larger alignment.
This commit is contained in:
parent
87b0bb13cb
commit
fd32500759
@ -1,3 +1,8 @@
|
|||||||
|
2012-03-13 Ian Lance Taylor <iant@google.com>
|
||||||
|
|
||||||
|
* resolve.cc (Symbol_table::resolve): When merging common symbols,
|
||||||
|
keep the larger alignment.
|
||||||
|
|
||||||
2012-03-12 Cary Coutant <ccoutant@google.com>
|
2012-03-12 Cary Coutant <ccoutant@google.com>
|
||||||
|
|
||||||
* dwarf_reader.cc (Sized_dwarf_line_info::process_one_opcode): Fix
|
* dwarf_reader.cc (Sized_dwarf_line_info::process_one_opcode): Fix
|
||||||
|
@ -356,9 +356,15 @@ Symbol_table::resolve(Sized_symbol<size>* to,
|
|||||||
&adjust_dyndef))
|
&adjust_dyndef))
|
||||||
{
|
{
|
||||||
elfcpp::STB tobinding = to->binding();
|
elfcpp::STB tobinding = to->binding();
|
||||||
|
typename Sized_symbol<size>::Value_type tovalue = to->value();
|
||||||
this->override(to, sym, st_shndx, is_ordinary, object, version);
|
this->override(to, sym, st_shndx, is_ordinary, object, version);
|
||||||
if (adjust_common_sizes && tosize > to->symsize())
|
if (adjust_common_sizes)
|
||||||
to->set_symsize(tosize);
|
{
|
||||||
|
if (tosize > to->symsize())
|
||||||
|
to->set_symsize(tosize);
|
||||||
|
if (tovalue > to->value())
|
||||||
|
to->set_value(tovalue);
|
||||||
|
}
|
||||||
if (adjust_dyndef)
|
if (adjust_dyndef)
|
||||||
{
|
{
|
||||||
// We are overriding an UNDEF or WEAK UNDEF with a DYN DEF.
|
// We are overriding an UNDEF or WEAK UNDEF with a DYN DEF.
|
||||||
@ -368,8 +374,13 @@ Symbol_table::resolve(Sized_symbol<size>* to,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (adjust_common_sizes && sym.get_st_size() > tosize)
|
if (adjust_common_sizes)
|
||||||
to->set_symsize(sym.get_st_size());
|
{
|
||||||
|
if (sym.get_st_size() > tosize)
|
||||||
|
to->set_symsize(sym.get_st_size());
|
||||||
|
if (sym.get_st_value() > to->value())
|
||||||
|
to->set_value(sym.get_st_value());
|
||||||
|
}
|
||||||
if (adjust_dyndef)
|
if (adjust_dyndef)
|
||||||
{
|
{
|
||||||
// We are keeping a DYN DEF after seeing an UNDEF or WEAK UNDEF.
|
// We are keeping a DYN DEF after seeing an UNDEF or WEAK UNDEF.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user