mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-14 00:32:55 +00:00
Put ELF COMDAT relocations into the relevant COMDAT group.
Patch from Игорь Пашев (I do hope we support utf-8 commit messages; I also hope he'll forgive me for transliterating it as Igor Pashev in case things go horribly wrong). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186034 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
75d13065fd
commit
f5b1c5043d
@ -1002,11 +1002,18 @@ void ELFObjectWriter::CreateRelocationSections(MCAssembler &Asm,
|
||||
else
|
||||
EntrySize = is64Bit() ? sizeof(ELF::Elf64_Rel) : sizeof(ELF::Elf32_Rel);
|
||||
|
||||
unsigned Flags = 0;
|
||||
StringRef Group = "";
|
||||
if (Section.getFlags() & ELF::SHF_GROUP) {
|
||||
Flags = ELF::SHF_GROUP;
|
||||
Group = Section.getGroup()->getName();
|
||||
}
|
||||
|
||||
const MCSectionELF *RelaSection =
|
||||
Ctx.getELFSection(RelaSectionName, hasRelocationAddend() ?
|
||||
ELF::SHT_RELA : ELF::SHT_REL, 0,
|
||||
ELF::SHT_RELA : ELF::SHT_REL, Flags,
|
||||
SectionKind::getReadOnly(),
|
||||
EntrySize, "");
|
||||
EntrySize, Group);
|
||||
RelMap[&Section] = RelaSection;
|
||||
Asm.getOrCreateSectionData(*RelaSection);
|
||||
}
|
||||
|
29
test/MC/ELF/comdat-reloc.s
Normal file
29
test/MC/ELF/comdat-reloc.s
Normal file
@ -0,0 +1,29 @@
|
||||
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sd | FileCheck %s
|
||||
|
||||
.text
|
||||
.globl hello
|
||||
.type hello,@function
|
||||
hello:
|
||||
call world
|
||||
ret
|
||||
|
||||
.section .text.world,"axG",@progbits,world,comdat
|
||||
.type world,@function
|
||||
world:
|
||||
call doctor
|
||||
ret
|
||||
|
||||
// CHECK: Name: .group
|
||||
// CHECK-NOT: SectionData
|
||||
// CHECK: SectionData
|
||||
// CHECK-NEXT: 0000: 01000000 06000000 07000000
|
||||
|
||||
// CHECK: Index: 6
|
||||
// CHECK-NEXT: Name: .text.world
|
||||
// CHECK-NOT: Section {
|
||||
// CHECK: SHF_GROUP
|
||||
|
||||
// CHECK: Index: 7
|
||||
// CHECK-NEXT: Name: .rela.text.world
|
||||
// CHECK-NOT: Section {
|
||||
// CHECK: SHF_GROUP
|
@ -39,7 +39,7 @@
|
||||
// CHECK-NEXT: ]
|
||||
// CHECK-NEXT: Address: 0x0
|
||||
// CHECK-NEXT: Offset: 0x54
|
||||
// CHECK-NEXT: Size: 8
|
||||
// CHECK-NEXT: Size: 12
|
||||
// CHECK-NEXT: Link: 13
|
||||
// CHECK-NEXT: Info: 13
|
||||
// CHECK-NEXT: AddressAlignment: 4
|
||||
|
Loading…
x
Reference in New Issue
Block a user