[all-commits] [llvm/llvm-project] 96c45a: [MC] Rename temporary symbols of empty name to ".L...

Fangrui Song via All-commits all-commits at lists.llvm.org
Wed Apr 24 13:16:24 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 96c45a7fa12619c3abd6b81effe4c80f0916b78b
      https://github.com/llvm/llvm-project/commit/96c45a7fa12619c3abd6b81effe4c80f0916b78b
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-24 (Wed, 24 Apr 2024)

  Changed paths:
    M lld/test/ELF/mips-eh_frame-pic.s
    M llvm/include/llvm/Object/ELFObjectFile.h
    M llvm/lib/MC/ELFObjectWriter.cpp
    M llvm/test/CodeGen/RISCV/fixups-diff.ll
    M llvm/test/DebugInfo/LoongArch/dwarf-loongarch-relocs.ll
    M llvm/test/DebugInfo/RISCV/dwarf-riscv-relocs.ll
    M llvm/test/DebugInfo/RISCV/relax-debug-frame.ll
    R llvm/test/DebugInfo/Symbolize/ELF/riscv-empty-name-symbol.s
    A llvm/test/DebugInfo/Symbolize/ELF/riscv-temporary-symbol.s
    M llvm/test/ExecutionEngine/JITLink/RISCV/anonymous_symbol.s
    M llvm/test/MC/ELF/RISCV/gen-dwarf.s
    M llvm/test/MC/RISCV/cfi-advance.s
    M llvm/test/MC/RISCV/fde-reloc.s
    M llvm/test/MC/RISCV/scoped-relaxation.s

  Log Message:
  -----------
  [MC] Rename temporary symbols of empty name to ".L0 " (#89693)

Temporary symbols generated for .eh_frame and .debug_line have an empty
name, which appear in .symtab in the presence of RISC-V style linker
relaxation and will not be discarded by ld/objcopy --discard-locals
(-X).

In contrast, GNU assembler's riscv port assigns a fake name ".L0 " (with
a trailing space) to these symbols so that will be discarded by
ld/objcopy --discard-locals.

This patch matches the GNU behavior. Since Clang's RISC-V targets pass
-X to ld, and GNU ld defaults to -X for RISC-V targets, these ".L0 "
symbols will be discarded after linking by default, as expected by
users.

The llvm-symbolizer special case for RISC-V `SF_FormatSpecific` symbols
https://reviews.llvm.org/D98669 needs to be adjusted.

Note: `"":` in assembly currently crashes.



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