[PATCH] D39242: [ELF] - Stop naming relocation sections with first input section name.
George Rimar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 26 03:49:10 PDT 2017
grimar updated this revision to Diff 120389.
grimar added a comment.
- Used code suggested.
https://reviews.llvm.org/D39242
Files:
ELF/Writer.cpp
test/ELF/emit-relocs-merge.s
test/ELF/emit-relocs.s
Index: test/ELF/emit-relocs.s
===================================================================
--- test/ELF/emit-relocs.s
+++ test/ELF/emit-relocs.s
@@ -83,7 +83,7 @@
# CHECK-NEXT: }
# CHECK-NEXT: ]
-.section .text,"ax", at progbits,unique,0
+.section .text.fn,"ax", at progbits,unique,0
.globl fn
.type fn, at function
fn:
@@ -94,7 +94,7 @@
callq fn at PLT
nop
-.section .text,"ax", at progbits,unique,1
+.section .text.fn2,"ax", at progbits,unique,1
.globl fn2
.type fn2, at function
fn2:
Index: test/ELF/emit-relocs-merge.s
===================================================================
--- test/ELF/emit-relocs-merge.s
+++ test/ELF/emit-relocs-merge.s
@@ -8,7 +8,7 @@
# CHECK-NEXT: 0x1000 R_X86_64_64 zed 0x0
# CHECK-NEXT: 0x1008 R_X86_64_64 zed 0x0
# CHECK-NEXT: }
-# CHECK-NEXT: Section ({{.*}}) .rela.data.foo {
+# CHECK-NEXT: Section ({{.*}}) .rela.data {
# CHECK-NEXT: 0x1000 R_X86_64_64 zed 0x0
# CHECK-NEXT: 0x1008 R_X86_64_64 zed 0x0
# CHECK-NEXT: }
Index: ELF/Writer.cpp
===================================================================
--- ELF/Writer.cpp
+++ ELF/Writer.cpp
@@ -98,6 +98,14 @@
if (Config->Relocatable)
return Name;
+ // This is normally used for --emit-relocs. With that we want
+ // to name relocation section similar to it's target section.
+ // That makes output cleaner and consistent with GNU linkers.
+ if (Name.startswith(".rel."))
+ return Saver.save(".rel" + getOutputSectionName(Name.substr(4)));
+ if (Name.startswith(".rela."))
+ return Saver.save(".rela" + getOutputSectionName(Name.substr(5)));
+
for (StringRef V :
{".text.", ".rodata.", ".data.rel.ro.", ".data.", ".bss.rel.ro.",
".bss.", ".init_array.", ".fini_array.", ".ctors.", ".dtors.", ".tbss.",
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D39242.120389.patch
Type: text/x-patch
Size: 1779 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171026/ac6ee4b1/attachment.bin>
More information about the llvm-commits
mailing list