[all-commits] [llvm/llvm-project] c135a6: [LLD][ELF] - Do not produce an invalid dynamic rel...

Georgii Rymar via All-commits all-commits at lists.llvm.org
Mon Aug 17 04:47:28 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: c135a68d426fd69d26454658bfa62102993f12a7
      https://github.com/llvm/llvm-project/commit/c135a68d426fd69d26454658bfa62102993f12a7
  Author: Georgii Rymar <grimar at accesssoftek.com>
  Date:   2020-08-17 (Mon, 17 Aug 2020)

  Changed paths:
    M lld/ELF/Writer.cpp
    M lld/test/ELF/gnu-ifunc-plt.s

  Log Message:
  -----------
  [LLD][ELF] - Do not produce an invalid dynamic relocation order with --shuffle-sections.

Normally (when not on android with android relocation packing enabled),
we put IRelative relocations to ".rel[a].dyn", after other relocations,
to ensure that IRelatives are processed last by the dynamic loader.

To achieve that we add the `in.relaIplt` after the `part.relaDyn`:
https://github.com/llvm/llvm-project/blob/master/lld/ELF/Writer.cpp#L540

The problem is that `--shuffle-sections` might break the sections order.
This patch fixes it.

Fixes https://bugs.llvm.org/show_bug.cgi?id=47056.

Differential revision: https://reviews.llvm.org/D85651




More information about the All-commits mailing list