Index: test/tools/llvm-objcopy/check-addr-offset-align-binary.test =================================================================== --- test/tools/llvm-objcopy/check-addr-offset-align-binary.test +++ test/tools/llvm-objcopy/check-addr-offset-align-binary.test @@ -18,7 +18,7 @@ - Name: .data Type: SHT_PROGBITS Flags: [ SHF_ALLOC ] - Address: 0x1008 + Address: 0x1010 AddressAlign: 0x0000000000000008 Content: "3232" ProgramHeaders: @@ -31,7 +31,7 @@ - Section: .text - Type: PT_LOAD Flags: [ PF_R, PF_W ] - VAddr: 0x1008 + VAddr: 0x1010 PAddr: 0x1008 Align: 0x1000 Sections: Index: tools/llvm-objcopy/Object.cpp =================================================================== --- tools/llvm-objcopy/Object.cpp +++ tools/llvm-objcopy/Object.cpp @@ -738,7 +738,7 @@ Segment->Offset = Parent->Offset + Segment->OriginalOffset - Parent->OriginalOffset; } else { - Offset = alignToAddr(Offset, Segment->VAddr, Segment->Align); + Offset = alignToAddr(Offset, Segment->PAddr, Segment->Align); Segment->Offset = Offset; } Offset = std::max(Offset, Segment->Offset + Segment->FileSize);