forked from OSchip/llvm-project
d28c6d51d1
.text sh_address=0x1000 sh_offset=0x1000 .data sh_address=0x3000 sh_offset=0x2000 In an objcopy -O binary output, the distance between two sections equal their LMA differences (0x3000-0x1000), instead of their sh_offset differences (0x2000-0x1000). This patch changes our behavior to match GNU. This rule gets more complex when the containing PT_LOAD has p_vaddr!=p_paddr. GNU objcopy essentially computes sh_offset-p_offset+p_paddr for each candidate section, and removes the gap before the first address. Added tests to binary-paddr.test to catch the compatibility problem. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D71035 |
||
---|---|---|
.. | ||
COFF | ||
ELF | ||
MachO | ||
Buffer.cpp | ||
Buffer.h | ||
CMakeLists.txt | ||
CommonOpts.td | ||
CopyConfig.cpp | ||
CopyConfig.h | ||
InstallNameToolOpts.td | ||
LLVMBuild.txt | ||
ObjcopyOpts.td | ||
StripOpts.td | ||
llvm-objcopy.cpp | ||
llvm-objcopy.h |