[llvm-size][libobject] Add explicit "inTextSegment" methods similar to "isText" section methods to calculate size correctly.
Summary: llvm-size uses "isText()" etc. which seem to indicate whether the section contains code-like things, not whether or not it will actually go in the text segment when in a fully linked executable. The unit test added (elf-sizes.test) shows some types of sections that cause discrepencies versus the GNU size tool. llvm-size is not correctly reporting sizes of things mapping to text/data segments, at least for ELF files. This fixes pr38723. Reviewers: echristo, Bigcheese, MaskRay Reviewed By: MaskRay Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D54369 llvm-svn: 349074
This commit is contained in:
@@ -77,6 +77,14 @@ bool ObjectFile::isSectionBitcode(DataRefImpl Sec) const {
|
||||
|
||||
bool ObjectFile::isSectionStripped(DataRefImpl Sec) const { return false; }
|
||||
|
||||
bool ObjectFile::isBerkeleyText(DataRefImpl Sec) const {
|
||||
return isSectionText(Sec);
|
||||
}
|
||||
|
||||
bool ObjectFile::isBerkeleyData(DataRefImpl Sec) const {
|
||||
return isSectionData(Sec);
|
||||
}
|
||||
|
||||
section_iterator ObjectFile::getRelocatedSection(DataRefImpl Sec) const {
|
||||
return section_iterator(SectionRef(Sec, this));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user