mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-22 03:48:57 +00:00
Write relocations in the end of the file. This matches what gas does and
makes files easier to diff. llvm-svn: 114898
This commit is contained in:
parent
0d15b006f7
commit
c4d0ee0b96
@ -839,8 +839,6 @@ void ELFObjectWriterImpl::CreateMetadataSections(MCAssembler &Asm,
|
||||
MCContext &Ctx = Asm.getContext();
|
||||
MCDataFragment *F;
|
||||
|
||||
WriteRelocations(Asm, Layout);
|
||||
|
||||
const MCSection *SymtabSection;
|
||||
unsigned EntrySize = Is64Bit ? ELF::SYMENTRY_SIZE64 : ELF::SYMENTRY_SIZE32;
|
||||
|
||||
@ -867,6 +865,7 @@ void ELFObjectWriterImpl::CreateMetadataSections(MCAssembler &Asm,
|
||||
StrtabSD.setAlignment(1);
|
||||
StringTableIndex = Asm.size();
|
||||
|
||||
WriteRelocations(Asm, Layout);
|
||||
|
||||
// Symbol table
|
||||
F = new MCDataFragment(&SymtabSD);
|
||||
|
@ -20,6 +20,24 @@ declare i32 @puts(i8* nocapture) nounwind
|
||||
; 32: (('sh_name', 0) # ''
|
||||
|
||||
; 32: # '.text'
|
||||
|
||||
; 32: ('st_bind', 0)
|
||||
; 32: ('st_type', 3)
|
||||
|
||||
; 32: ('st_bind', 0)
|
||||
; 32: ('st_type', 3)
|
||||
|
||||
; 32: ('st_bind', 0)
|
||||
; 32: ('st_type', 3)
|
||||
|
||||
; 32: # 'main'
|
||||
; 32: ('st_bind', 1)
|
||||
; 32-NEXT: ('st_type', 2)
|
||||
|
||||
; 32: # 'puts'
|
||||
; 32: ('st_bind', 1)
|
||||
; 32-NEXT: ('st_type', 0)
|
||||
|
||||
; 32: # '.rel.text'
|
||||
|
||||
; 32: ('_relocations', [
|
||||
@ -41,24 +59,6 @@ declare i32 @puts(i8* nocapture) nounwind
|
||||
; 32: ),
|
||||
; 32: ])
|
||||
|
||||
; 32: ('st_bind', 0)
|
||||
; 32: ('st_type', 3)
|
||||
|
||||
; 32: ('st_bind', 0)
|
||||
; 32: ('st_type', 3)
|
||||
|
||||
; 32: ('st_bind', 0)
|
||||
; 32: ('st_type', 3)
|
||||
|
||||
; 32: # 'main'
|
||||
; 32: ('st_bind', 1)
|
||||
; 32-NEXT: ('st_type', 2)
|
||||
|
||||
; 32: # 'puts'
|
||||
; 32: ('st_bind', 1)
|
||||
; 32-NEXT: ('st_type', 0)
|
||||
|
||||
|
||||
; 64: ('e_indent[EI_CLASS]', 2)
|
||||
; 64: ('e_indent[EI_DATA]', 1)
|
||||
; 64: ('e_indent[EI_VERSION]', 1)
|
||||
@ -67,6 +67,24 @@ declare i32 @puts(i8* nocapture) nounwind
|
||||
; 64: (('sh_name', 0) # ''
|
||||
|
||||
; 64: # '.text'
|
||||
|
||||
; 64: ('st_bind', 0)
|
||||
; 64: ('st_type', 3)
|
||||
|
||||
; 64: ('st_bind', 0)
|
||||
; 64: ('st_type', 3)
|
||||
|
||||
; 64: ('st_bind', 0)
|
||||
; 64: ('st_type', 3)
|
||||
|
||||
; 64: # 'main'
|
||||
; 64-NEXT: ('st_bind', 1)
|
||||
; 64-NEXT: ('st_type', 2)
|
||||
|
||||
; 64: # 'puts'
|
||||
; 64-NEXT: ('st_bind', 1)
|
||||
; 64-NEXT: ('st_type', 0)
|
||||
|
||||
; 64: # '.rela.text'
|
||||
|
||||
; 64: ('_relocations', [
|
||||
@ -91,20 +109,3 @@ declare i32 @puts(i8* nocapture) nounwind
|
||||
; 64: ('r_addend', -4)
|
||||
; 64: ),
|
||||
; 64: ])
|
||||
|
||||
; 64: ('st_bind', 0)
|
||||
; 64: ('st_type', 3)
|
||||
|
||||
; 64: ('st_bind', 0)
|
||||
; 64: ('st_type', 3)
|
||||
|
||||
; 64: ('st_bind', 0)
|
||||
; 64: ('st_type', 3)
|
||||
|
||||
; 64: # 'main'
|
||||
; 64-NEXT: ('st_bind', 1)
|
||||
; 64-NEXT: ('st_type', 2)
|
||||
|
||||
; 64: # 'puts'
|
||||
; 64-NEXT: ('st_bind', 1)
|
||||
; 64-NEXT: ('st_type', 0)
|
||||
|
@ -10,6 +10,15 @@ foo:
|
||||
// CHECK: # Section 1
|
||||
// CHECK-next: (('sh_name', 1) # '.text'
|
||||
|
||||
// Symbol number 2 is section number 1
|
||||
// CHECK: # Symbol 2
|
||||
// CHECK-NEXT: (('st_name', 0) # ''
|
||||
// CHECK-NEXT: ('st_bind', 0)
|
||||
// CHECK-NEXT: ('st_type', 3)
|
||||
// CHECK-NEXT: ('st_other', 0)
|
||||
// CHECK-NEXT: ('st_shndx', 1)
|
||||
// CHECK-NEXT: ('st_value', 0)
|
||||
// CHECK-NEXT: ('st_size', 0)
|
||||
|
||||
// Relocation refers to symbol number 2
|
||||
// CHECK: ('_relocations', [
|
||||
@ -20,13 +29,3 @@ foo:
|
||||
// CHECK-NEXT: ('r_addend',
|
||||
// CHECK-NEXT: ),
|
||||
// CHECK-NEXT: ])
|
||||
|
||||
// Symbol number 2 is section number 1
|
||||
// CHECK: # Symbol 2
|
||||
// CHECK-NEXT: (('st_name', 0) # ''
|
||||
// CHECK-NEXT: ('st_bind', 0)
|
||||
// CHECK-NEXT: ('st_type', 3)
|
||||
// CHECK-NEXT: ('st_other', 0)
|
||||
// CHECK-NEXT: ('st_shndx', 1)
|
||||
// CHECK-NEXT: ('st_value', 0)
|
||||
// CHECK-NEXT: ('st_size', 0)
|
||||
|
@ -9,6 +9,11 @@
|
||||
.text
|
||||
movsd .Lfoo(%rip), %xmm1
|
||||
|
||||
// Symbol number 1 is .Lfoo
|
||||
|
||||
// CHECK: # Symbol 1
|
||||
// CHECK-NEXT: (('st_name', 1) # '.Lfoo'
|
||||
|
||||
// Relocation refers to symbol 1
|
||||
|
||||
// CHECK: ('_relocations', [
|
||||
@ -19,8 +24,3 @@
|
||||
// CHECK-NEXT: ('r_addend',
|
||||
// CHECK-NEXT: ),
|
||||
// CHECK-NEXT: ])
|
||||
|
||||
// Symbol number 1 is .Lfoo
|
||||
|
||||
// CHECK: # Symbol 1
|
||||
// CHECK-NEXT: (('st_name', 1) # '.Lfoo'
|
||||
|
Loading…
x
Reference in New Issue
Block a user