* layout.cc (segment_precedes): Sort segments by their physical
        addresses, if they have been set.
This commit is contained in:
Nick Clifton 2010-08-24 07:24:10 +00:00
parent 9a1ac77684
commit b8fa875047
2 changed files with 13 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2010-08-24 Nick Clifton <nickc@redhat.com>
PR 11899
* layout.cc (segment_precedes): Sort segments by their physical
addresses, if they have been set.
2010-08-23 Cary Coutant <ccoutant@google.com>
* archive.cc (Lib_group::add_symbols): Lock object before deleting its

View File

@ -2457,8 +2457,13 @@ Layout::segment_precedes(const Output_segment* seg1,
if (section_count1 > 0 && section_count2 == 0)
return false;
uint64_t paddr1 = seg1->first_section_load_address();
uint64_t paddr2 = seg2->first_section_load_address();
uint64_t paddr1 = (seg1->are_addresses_set()
? seg1->paddr()
: seg1->first_section_load_address());
uint64_t paddr2 = (seg2->are_addresses_set()
? seg2->paddr()
: seg2->first_section_load_address());
if (paddr1 != paddr2)
return paddr1 < paddr2;
}