gold: Fix 64-bit sparc GOLD crash in gdb-index code.
gold/ * gdb-index.cc (Gdb_index::do_write): Use Swap_unaligned when writing out 64-bit part of ranges.
This commit is contained in:
parent
661d7a80a2
commit
0bc964fc79
2 changed files with 5 additions and 2 deletions
|
@ -1,5 +1,8 @@
|
||||||
2012-04-16 David S. Miller <davem@davemloft.net>
|
2012-04-16 David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
|
* gdb-index.cc (Gdb_index::do_write): Use Swap_unaligned when
|
||||||
|
writing out 64-bit part of ranges.
|
||||||
|
|
||||||
* Makefile.am: Build IFUNC tests with -fPIC and -fPIE instead of
|
* Makefile.am: Build IFUNC tests with -fPIC and -fPIE instead of
|
||||||
-fpic and -fpie respectively.
|
-fpic and -fpie respectively.
|
||||||
* Makefile.in: Regenerate.
|
* Makefile.in: Regenerate.
|
||||||
|
|
|
@ -1166,8 +1166,8 @@ Gdb_index::do_write(Output_file* of)
|
||||||
base = (os->address()
|
base = (os->address()
|
||||||
+ object->output_section_offset(range.shndx));
|
+ object->output_section_offset(range.shndx));
|
||||||
}
|
}
|
||||||
elfcpp::Swap<64, false>::writeval(pov, base + range.start);
|
elfcpp::Swap_unaligned<64, false>::writeval(pov, base + range.start);
|
||||||
elfcpp::Swap<64, false>::writeval(pov + 8, base + range.end);
|
elfcpp::Swap_unaligned<64, false>::writeval(pov + 8, base + range.end);
|
||||||
elfcpp::Swap<32, false>::writeval(pov + 16, cu_index);
|
elfcpp::Swap<32, false>::writeval(pov + 16, cu_index);
|
||||||
pov += 20;
|
pov += 20;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue