[llvm] 3ff634d - Revert "ELFObjectWriter: Disable STT_SECTION adjustment for .reloc"

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Sat Apr 12 21:02:32 PDT 2025


Author: Fangrui Song
Date: 2025-04-12T21:02:27-07:00
New Revision: 3ff634dee857c4d71ff665e49d38005e608de8a0

URL: https://github.com/llvm/llvm-project/commit/3ff634dee857c4d71ff665e49d38005e608de8a0
DIFF: https://github.com/llvm/llvm-project/commit/3ff634dee857c4d71ff665e49d38005e608de8a0.diff

LOG: Revert "ELFObjectWriter: Disable STT_SECTION adjustment for .reloc"

This reverts commit 1c5961c0481b9c7421d38e3141d3c5a1e6084234.
Inadvertently pushed.

Added: 
    

Modified: 
    llvm/lib/MC/ELFObjectWriter.cpp
    llvm/test/MC/ELF/reloc-directive.s

Removed: 
    


################################################################################
diff  --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp
index 45fcc6a1de4c8..75450aa7de9d9 100644
--- a/llvm/lib/MC/ELFObjectWriter.cpp
+++ b/llvm/lib/MC/ELFObjectWriter.cpp
@@ -1390,8 +1390,9 @@ void ELFObjectWriter::recordRelocation(MCAssembler &Asm,
   if (UseSectionSym) {
     UseSectionSym = useSectionSymbol(Asm, Target, SymA, C, Type);
 
-    // Disable STT_SECTION adjustment for .reloc directives.
-    UseSectionSym &= Fixup.getKind() >= FirstLiteralRelocationKind;
+    // Disable STT_SECTION adjustment for CG Profile to help with --cg-profile.
+    const auto *Parent = cast<MCSectionELF>(Fragment->getParent());
+    UseSectionSym &= Parent->getType() != ELF::SHT_LLVM_CALL_GRAPH_PROFILE;
   }
 
   uint64_t Addend = UseSectionSym ? C + Asm.getSymbolOffset(*SymA) : C;

diff  --git a/llvm/test/MC/ELF/reloc-directive.s b/llvm/test/MC/ELF/reloc-directive.s
index 42995aa9e7d81..f4121ef071810 100644
--- a/llvm/test/MC/ELF/reloc-directive.s
+++ b/llvm/test/MC/ELF/reloc-directive.s
@@ -8,25 +8,24 @@
 # ASM-NEXT: .Ltmp1:
 # ASM-NEXT:  .reloc .Ltmp1-1, R_X86_64_NONE, foo
 # ASM-NEXT: .Ltmp2:
-# ASM-NEXT:  .reloc 2+.Ltmp2, R_X86_64_NONE, local
+# ASM-NEXT:  .reloc 2+.Ltmp2, R_X86_64_NONE, foo
 # ASM-NEXT:  .reloc 1+foo+3, R_X86_64_NONE, data+1
 # ASM-NEXT: .Ltmp3:
 # ASM-NEXT:  .reloc .Ltmp3, BFD_RELOC_NONE, unused
 
 # CHECK:      0x2 R_X86_64_NONE foo 0x0
 # CHECK-NEXT: 0x0 R_X86_64_NONE foo 0x0
-# CHECK-NEXT: 0x3 R_X86_64_NONE local 0x0
+# CHECK-NEXT: 0x3 R_X86_64_NONE foo 0x0
 # CHECK-NEXT: 0x4 R_X86_64_NONE data 0x1
 # CHECK-NEXT: 0x1 R_X86_64_NONE unused 0x0
 
 .text
 .globl foo
 foo:
-local:
   ret
   .reloc .+3-2, R_X86_64_NONE, foo
   .reloc .-1, R_X86_64_NONE, foo
-  .reloc 2+., R_X86_64_NONE, local
+  .reloc 2+., R_X86_64_NONE, foo
   .reloc 1+foo+3, R_X86_64_NONE, data+1
   .reloc ., BFD_RELOC_NONE, unused
 


        


More information about the llvm-commits mailing list