[PATCH] D50133: [LLD] Do not overwrite LMAOffset of PT_LOAD header

George Rimar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 1 03:12:05 PDT 2018


grimar added inline comments.


================
Comment at: ELF/LinkerScript.cpp:780
+    if ((Sec == L->FirstSec) ||
+        ((L->FirstSec == Out::ElfHeader) && (L->LastSec == Sec)))
+      L->LMAOffset = Ctx->LMAOffset;
----------------
I think the comment above should be updated to reflect this change.

But also: your test pass if I reduce this to

```
  if (PhdrEntry *L = Ctx->OutSec->PtLoad)
    if (Sec == L->FirstSec)
      L->LMAOffset = Ctx->LMAOffset;
```

Can you add a test/update it accordingly to check the rest?
(Alternatively, we can go with the reduced code in this patch I think, and leave the rest to follow up patch).

Also, I think that `(L->FirstSec == Out::ElfHeader)` condition is not correct. Because
`FirstSec` can be not the `ElfHeader`, but `ProgramHeaders`:
https://github.com/llvm-mirror/lld/blob/master/ELF/LinkerScript.cpp#L1073




Repository:
  rLLD LLVM Linker

https://reviews.llvm.org/D50133





More information about the llvm-commits mailing list