[PATCH] D65539: [llvm-objcopy][MachO] Implement a layout algorithm for executables

Alexander Shaposhnikov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 14 12:57:05 PDT 2019


alexshap added a comment.

in general i like the approach, i have added a few minor comments and one question (maybe I'm missing smth).



================
Comment at: llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp:20
   for (const auto &LC : O.LoadCommands) {
     auto &MLC = LC.MachOLoadCommand;
     auto cmd = MLC.load_command_data.cmd;
----------------
const auto &MLC


================
Comment at: llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp:104
       Is64Bit ? sizeof(MachO::mach_header_64) : sizeof(MachO::mach_header);
-  auto Offset = HeaderSize + O.Header.SizeOfCmds;
-
-  // Lay out sections.
+  bool IsObjectFile = O.Header.FileType == MachO::HeaderFileType::MH_OBJECT;
+  uint64_t Offset = IsObjectFile ? (HeaderSize + O.Header.SizeOfCmds) : 0;
----------------
const bool


================
Comment at: llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp:151
+        }
+        VMSize = std::max(VMSize, Sec.Addr + Sec.Size);
+      } else {
----------------
khm, maybe I'm missing smth, but why do we have Sec.Addr + Sec.Size here ?



Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65539/new/

https://reviews.llvm.org/D65539





More information about the llvm-commits mailing list