[all-commits] [llvm/llvm-project] e21b9c: [ELF] Respect output section alignment for AT> (no...

Fangrui Song via All-commits all-commits at lists.llvm.org
Wed Feb 12 08:19:50 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e21b9ca751c525f5927ad313482be9a9c9e4dc9d
      https://github.com/llvm/llvm-project/commit/e21b9ca751c525f5927ad313482be9a9c9e4dc9d
  Author: Fangrui Song <maskray at google.com>
  Date:   2020-02-12 (Wed, 12 Feb 2020)

  Changed paths:
    M lld/ELF/LinkerScript.cpp
    A lld/test/ELF/linkerscript/lma-align.test

  Log Message:
  -----------
  [ELF] Respect output section alignment for AT> (non-null lmaRegion)

When lmaRegion is non-null, respect `sec->alignment`
This rule is analogous to `switchTo(sec)` which advances sh_addr (VMA).

This fixes the p_paddr misalignment issue as reported by
https://android-review.googlesource.com/c/trusty/external/trusted-firmware-a/+/1230058

Note, `sec->alignment` is the maximum of ALIGN and input section alignments. We may overalign LMA than GNU ld.

linkerscript/align-lma.s has a FIXME that demonstrates another bug:
`.bss ... >RAM` should be placed in a different PT_LOAD (GNU ld
behavior) because its lmaRegion (nullptr) is different from the previous
section's lmaRegion (ROM).

Reviewed By: psmith

Differential Revision: https://reviews.llvm.org/D74286




More information about the All-commits mailing list