[all-commits] [llvm/llvm-project] 0fbe22: [MC][ELF] Make linked-to symbol name part of ELFSe...

Fangrui Song via All-commits all-commits at lists.llvm.org
Fri Feb 14 20:03:56 PST 2020


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

  Changed paths:
    M llvm/include/llvm/MC/MCContext.h
    M llvm/lib/MC/MCContext.cpp
    M llvm/test/CodeGen/AArch64/patchable-function-entry-bti.ll
    M llvm/test/CodeGen/AArch64/patchable-function-entry.ll
    M llvm/test/CodeGen/X86/patchable-function-entry-ibt.ll
    M llvm/test/CodeGen/X86/patchable-function-entry.ll
    R llvm/test/MC/ELF/comdat-dup-group-name.s
    A llvm/test/MC/ELF/section-combine.s

  Log Message:
  -----------
  [MC][ELF] Make linked-to symbol name part of ELFSectionKey

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

This rule has been implemented by GNU as https://sourceware.org/ml/binutils/2020-02/msg00028.html (binutils >= 2.35)

It allows us to simplify

```
.section .foo,"o",foo,unique,0
.section .foo,"o",bar,unique,1  # different section
```

to

```
.section .foo,"o",foo
.section .foo,"o",bar  # different section
```

We consider the two `.foo` different even if the linked-to symbols foo and bar
are defined in the same section.  This is a deliberate choice so that we don't
need to know the section where foo and bar are defined beforehand.

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




More information about the All-commits mailing list