From 9a41e59c1fd927a66e57f4cdf5e17a84068d0e58 Mon Sep 17 00:00:00 2001 From: Steven Wu Date: Thu, 2 Feb 2017 00:00:13 +0000 Subject: [PATCH] [dsymutil] Fix __LINKEDIT vmsize in dsymutil upgrade path Summary: dsymutil upgrade path can change the size of segment and it needs to update the vmsize of the segment to reflect the size change. rdar://problem/30290714 Reviewers: friss Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29433 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293842 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/dsymutil/MachOUtils.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/dsymutil/MachOUtils.cpp b/tools/dsymutil/MachOUtils.cpp index 8a730a1d0c8a..c1422f6eaab5 100644 --- a/tools/dsymutil/MachOUtils.cpp +++ b/tools/dsymutil/MachOUtils.cpp @@ -236,6 +236,8 @@ static void transferSegmentAndSections( if (StringRef("__LINKEDIT") == Segment.segname) { Segment.fileoff = LinkeditOffset; Segment.filesize = LinkeditSize; + // Resize vmsize by rounding to the page size. + Segment.vmsize = alignTo(LinkeditSize, 0x1000); } // Check if the end address of the last segment and our current