[PATCH] D24120: [ELF] Do not omit debug sections when computing build-id

Petr Hosek via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 31 22:38:30 PDT 2016


phosek created this revision.
phosek added a reviewer: ruiu.
phosek added a subscriber: llvm-commits.
phosek added a project: lld.

The primary use of build-id is in debugging, hence omitting debug sections when computing it significantly reduces its usability as changes in debug section content wouldn't alter the build-id.

https://reviews.llvm.org/D24120

Files:
  ELF/Writer.cpp

Index: ELF/Writer.cpp
===================================================================
--- ELF/Writer.cpp
+++ ELF/Writer.cpp
@@ -1320,20 +1320,11 @@
   if (!Out<ELFT>::BuildId)
     return;
 
-  // Compute a hash of all sections except .debug_* sections.
-  // We skip debug sections because they tend to be very large
-  // and their contents are very likely to be the same as long as
-  // other sections are the same.
+  // Compute a hash of all sections.
   uint8_t *Start = Buffer->getBufferStart();
-  uint8_t *Last = Start;
+  uint8_t *End = Start + FileSize;
   std::vector<ArrayRef<uint8_t>> Regions;
-  for (OutputSectionBase<ELFT> *Sec : OutputSections) {
-    uint8_t *End = Start + Sec->getFileOff();
-    if (!Sec->getName().startswith(".debug_"))
-      Regions.push_back({Last, End});
-    Last = End;
-  }
-  Regions.push_back({Last, Start + FileSize});
+  Regions.push_back({Start, End});
   Out<ELFT>::BuildId->writeBuildId(Regions);
 }
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D24120.69945.patch
Type: text/x-patch
Size: 961 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160901/7eb75645/attachment.bin>


More information about the llvm-commits mailing list