[PATCH] D66426: [lld] Enable a watermark of loadable sections to be generated and placed in a note section

Jordan Rupprecht via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 21 10:44:12 PDT 2019


rupprecht added a comment.

> Whether or not this change is justified to be made into LLD, I think you'll need a llvm-readobj change to dump the note.

Namely, please add another case here: https://github.com/llvm/llvm-project/blob/master/llvm/tools/llvm-readobj/ELFDumper.cpp#L4495 (and similarly for LLVMStyle::printNotes). I imagine you can repurpose the `getGNUBuildId` method.

> It may be worth a llvm-objcopy change, too. One justification is that this watermark can be used to verify llvm-objcopy does not break things (does not alter SHF_ALLOC sections).

Interesting idea. What patch are you suggesting here?



================
Comment at: lld/ELF/SyntheticSections.cpp:347
+void lld::elf::WatermarkSection::writeTo(uint8_t *buf) {
+  write32(buf, 5);                     // Name size
+  write32(buf + 4, watermarkSize);     // Content size
----------------
MaskRay wrote:
> 5 -> 8, otherwise it is incorrect to use `watermarkBuf = buf + 20;`
http://www.sco.com/developers/gabi/1998-04-29/ch5.pheader.html#note_section
I think 5 is the correct value for namesz; padding exists in the note but is not included in the value of namesz


================
Comment at: lld/ELF/SyntheticSections.cpp:348
+  write32(buf, 5);                     // Name size
+  write32(buf + 4, watermarkSize);     // Content size
+  write32(buf + 8, NT_LLVM_WATERMARK); // Type
----------------
Content -> Descriptor


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

https://reviews.llvm.org/D66426





More information about the llvm-commits mailing list