diff options
author | Patrick Oppenlander <patrick.oppenlander@gmail.com> | 2021-02-01 15:01:25 -0800 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2021-02-01 15:01:25 -0800 |
commit | 93345e825a0733f6a67898f6d6d156ff56db80e7 (patch) | |
tree | c67f56829fd046dc3f9384d99eee005a92b10141 /llvm/tools/llvm-objcopy/ELF/Object.cpp | |
parent | 8e661d3d9c52ea9e5e68cbf699701d9cfa071a8f (diff) | |
download | llvm-93345e825a0733f6a67898f6d6d156ff56db80e7.zip llvm-93345e825a0733f6a67898f6d6d156ff56db80e7.tar.gz llvm-93345e825a0733f6a67898f6d6d156ff56db80e7.tar.bz2 |
[llvm-objcopy] -O binary: consider SHT_NOBITS sections to be empty
This is consistent with BFD objcopy.
Previously llvm objcopy would allocate space for SHT_NOBITS sections
often resulting in enormous binary files.
New test case (binary-paddr.test %t6).
Reviewed By: jhenderson, MaskRay
Differential Revision: https://reviews.llvm.org/D95569
Diffstat (limited to 'llvm/tools/llvm-objcopy/ELF/Object.cpp')
-rw-r--r-- | llvm/tools/llvm-objcopy/ELF/Object.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/tools/llvm-objcopy/ELF/Object.cpp b/llvm/tools/llvm-objcopy/ELF/Object.cpp index 0ff82f9..7faf415 100644 --- a/llvm/tools/llvm-objcopy/ELF/Object.cpp +++ b/llvm/tools/llvm-objcopy/ELF/Object.cpp @@ -2553,7 +2553,7 @@ Error BinaryWriter::finalize() { if (Sec.ParentSegment != nullptr) Sec.Addr = Sec.Offset - Sec.ParentSegment->Offset + Sec.ParentSegment->PAddr; - if (Sec.Size > 0) + if (Sec.Type != SHT_NOBITS && Sec.Size > 0) MinAddr = std::min(MinAddr, Sec.Addr); } |