[all-commits] [llvm/llvm-project] 7db143: [ELF] Emit synthetic local in symbol table for non...

Jessica Clarke via All-commits all-commits at lists.llvm.org
Sun Jul 19 09:59:15 PDT 2026


  Branch: refs/heads/users/jrtc27/lld-handleNonPreemptibleIfunc-addSyntheticLocal
  Home:   https://github.com/llvm/llvm-project
  Commit: 7db1430c6ddcebb7e500100316ac66a16e0394fe
      https://github.com/llvm/llvm-project/commit/7db1430c6ddcebb7e500100316ac66a16e0394fe
  Author: Jessica Clarke <jrtc27 at jrtc27.com>
  Date:   2026-07-19 (Sun, 19 Jul 2026)

  Changed paths:
    M lld/ELF/Relocations.cpp
    M lld/ELF/SyntheticSections.cpp
    M lld/ELF/SyntheticSections.h
    M lld/test/ELF/gnu-ifunc-i386.s
    M lld/test/ELF/ppc32-ifunc-nonpreemptible-nopic.s
    M lld/test/ELF/ppc32-ifunc-nonpreemptible-pic.s

  Log Message:
  -----------
  [ELF] Emit synthetic local in symbol table for non-preemptible IFUNC

Currently we create an internal alias of the original symbol and then
rewrite the latter to point to the IPLT entry, which means we lose
symbol table information for the actual resolver. In practice compilers
also emit a normal function symbol for the resolver due to how IFUNCs
are represented in GNU C so that at least shows up, but we shouldn't be
relying on it. By emitting a synthetic local we can keep having a symbol
for the resolver whilst still redirecting references to the IPLT entry.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list