[lld] r251988 - Handle 0 sized sections like any other section.
Rui Ueyama via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 3 14:15:00 PST 2015
Thank you for doing this. The code to check for section size was the piece
of code that I didn't really understand. I'm happy to see that's removed.
On Tue, Nov 3, 2015 at 2:08 PM, Rafael Espindola via llvm-commits <
llvm-commits at lists.llvm.org> wrote:
> Author: rafael
> Date: Tue Nov 3 16:08:08 2015
> New Revision: 251988
>
> URL: http://llvm.org/viewvc/llvm-project?rev=251988&view=rev
> Log:
> Handle 0 sized sections like any other section.
>
> This is a case where there is inconsistency among ELF linkers:
>
> * The spec says nothing special about empty sections.
> * BFD ld removes them.
> * Gold handles them like regular sections.
>
> We were outputting them but sometimes ignoring them. This would create
> odd looking outputs where a rw section could be in a ro segment for
> example.
>
> The bfd way of doing things is also strange for the case where a symbol
> points to the empty section.
>
> Now we match gold and what seems to be the intention of the spec.
>
> Modified:
> lld/trunk/ELF/Writer.cpp
> lld/trunk/test/elf2/basic-mips.s
> lld/trunk/test/elf2/discard-locals.s
> lld/trunk/test/elf2/discard-none.s
> lld/trunk/test/elf2/emulation.s
> lld/trunk/test/elf2/gnu-hash-table.s
> lld/trunk/test/elf2/local-dynamic.s
> lld/trunk/test/elf2/local.s
> lld/trunk/test/elf2/merge-string-align.s
> lld/trunk/test/elf2/merge-string.s
> lld/trunk/test/elf2/merge-sym.s
> lld/trunk/test/elf2/program-header-layout.s
> lld/trunk/test/elf2/string-table.s
>
> Modified: lld/trunk/ELF/Writer.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Writer.cpp?rev=251988&r1=251987&r2=251988&view=diff
>
> ==============================================================================
> --- lld/trunk/ELF/Writer.cpp (original)
> +++ lld/trunk/ELF/Writer.cpp Tue Nov 3 16:08:08 2015
> @@ -698,27 +698,24 @@ template <class ELFT> void Writer<ELFT>:
> // Create phdrs as we assign VAs and file offsets to all output
> sections.
> SmallPtrSet<Elf_Phdr *, 8> Closed;
> for (OutputSectionBase<ELFT> *Sec : OutputSections) {
> - if (Sec->getSize()) {
> - uintX_t Flags = toPhdrFlags(Sec->getFlags());
> - Elf_Phdr *Last = &Phdrs[PhdrIdx];
> - if (Last->p_flags != Flags || !needsPhdr<ELFT>(Sec)) {
> - // Flags changed. End current Phdr and potentially create a new
> one.
> - if (Closed.insert(Last).second) {
> - Last->p_filesz = FileOff - Last->p_offset;
> - Last->p_memsz = VA - Last->p_vaddr;
> - }
> -
> - if (needsPhdr<ELFT>(Sec)) {
> - VA = RoundUpToAlignment(VA, Target->getPageSize());
> - FileOff = RoundUpToAlignment(FileOff, Target->getPageSize());
> - Elf_Phdr *PH = &Phdrs[++PhdrIdx];
> - setPhdr(PH, PT_LOAD, Flags, FileOff, VA, 0,
> Target->getPageSize());
> - }
> + uintX_t Flags = toPhdrFlags(Sec->getFlags());
> + Elf_Phdr *Last = &Phdrs[PhdrIdx];
> + if (Last->p_flags != Flags || !needsPhdr<ELFT>(Sec)) {
> + // Flags changed. End current Phdr and potentially create a new one.
> + if (Closed.insert(Last).second) {
> + Last->p_filesz = FileOff - Last->p_offset;
> + Last->p_memsz = VA - Last->p_vaddr;
> + }
> +
> + if (needsPhdr<ELFT>(Sec)) {
> + VA = RoundUpToAlignment(VA, Target->getPageSize());
> + FileOff = RoundUpToAlignment(FileOff, Target->getPageSize());
> + Elf_Phdr *PH = &Phdrs[++PhdrIdx];
> + setPhdr(PH, PT_LOAD, Flags, FileOff, VA, 0,
> Target->getPageSize());
> }
> }
>
> - if (Sec->getSize() && (Sec->getFlags() & SHF_ALLOC) &&
> - (Sec->getFlags() & SHF_TLS)) {
> + if ((Sec->getFlags() & SHF_ALLOC) && (Sec->getFlags() & SHF_TLS)) {
> if (!TlsPhdr.p_vaddr)
> setPhdr(&TlsPhdr, PT_TLS, PF_R, FileOff, VA, 0, Sec->getAlign());
> if (Sec->getType() != SHT_NOBITS)
> @@ -776,7 +773,7 @@ template <class ELFT> int Writer<ELFT>::
> ++I;
> uintX_t Last = PF_R;
> for (OutputSectionBase<ELFT> *Sec : OutputSections) {
> - if (!Sec->getSize() || !needsPhdr<ELFT>(Sec))
> + if (!needsPhdr<ELFT>(Sec))
> continue;
> if (Sec->getFlags() & SHF_TLS)
> Tls = true;
>
> Modified: lld/trunk/test/elf2/basic-mips.s
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/basic-mips.s?rev=251988&r1=251987&r2=251988&view=diff
>
> ==============================================================================
> --- lld/trunk/test/elf2/basic-mips.s (original)
> +++ lld/trunk/test/elf2/basic-mips.s Tue Nov 3 16:08:08 2015
> @@ -27,12 +27,12 @@ __start:
> # CHECK-NEXT: Version: 1
> # CHECK-NEXT: Entry: 0x20000
> # CHECK-NEXT: ProgramHeaderOffset: 0x34
> -# CHECK-NEXT: SectionHeaderOffset: 0x10080
> +# CHECK-NEXT: SectionHeaderOffset: 0x20070
> # CHECK-NEXT: Flags [ (0x0)
> # CHECK-NEXT: ]
> # CHECK-NEXT: HeaderSize: 52
> # CHECK-NEXT: ProgramHeaderEntrySize: 32
> -# CHECK-NEXT: ProgramHeaderCount: 3
> +# CHECK-NEXT: ProgramHeaderCount: 4
> # CHECK-NEXT: SectionHeaderEntrySize: 40
> # CHECK-NEXT: SectionHeaderCount: 9
> # CHECK-NEXT: StringTableSectionIndex: 7
> @@ -59,8 +59,8 @@ __start:
> # CHECK-NEXT: Flags [ (0x2)
> # CHECK-NEXT: SHF_ALLOC (0x2)
> # CHECK-NEXT: ]
> -# CHECK-NEXT: Address: 0x10094
> -# CHECK-NEXT: Offset: 0x94
> +# CHECK-NEXT: Address: 0x100B4
> +# CHECK-NEXT: Offset: 0xB4
> # CHECK-NEXT: Size: 24
> # CHECK-NEXT: Link: 0
> # CHECK-NEXT: Info: 0
> @@ -74,8 +74,8 @@ __start:
> # CHECK-NEXT: Flags [ (0x2)
> # CHECK-NEXT: SHF_ALLOC (0x2)
> # CHECK-NEXT: ]
> -# CHECK-NEXT: Address: 0x100B0
> -# CHECK-NEXT: Offset: 0xB0
> +# CHECK-NEXT: Address: 0x100D0
> +# CHECK-NEXT: Offset: 0xD0
> # CHECK-NEXT: Size: 24
> # CHECK-NEXT: Link: 0
> # CHECK-NEXT: Info: 0
> @@ -106,8 +106,8 @@ __start:
> # CHECK-NEXT: SHF_ALLOC (0x2)
> # CHECK-NEXT: SHF_WRITE (0x1)
> # CHECK-NEXT: ]
> -# CHECK-NEXT: Address: 0x20010
> -# CHECK-NEXT: Offset: 0x10010
> +# CHECK-NEXT: Address: 0x30000
> +# CHECK-NEXT: Offset: 0x20000
> # CHECK-NEXT: Size: 0
> # CHECK-NEXT: Link: 0
> # CHECK-NEXT: Info: 0
> @@ -122,8 +122,8 @@ __start:
> # CHECK-NEXT: SHF_ALLOC (0x2)
> # CHECK-NEXT: SHF_WRITE (0x1)
> # CHECK-NEXT: ]
> -# CHECK-NEXT: Address: 0x20010
> -# CHECK-NEXT: Offset: 0x10010
> +# CHECK-NEXT: Address: 0x30000
> +# CHECK-NEXT: Offset: 0x20000
> # CHECK-NEXT: Size: 0
> # CHECK-NEXT: Link: 0
> # CHECK-NEXT: Info: 0
> @@ -137,7 +137,7 @@ __start:
> # CHECK-NEXT: Flags [ (0x0)
> # CHECK-NEXT: ]
> # CHECK-NEXT: Address: 0x0
> -# CHECK-NEXT: Offset: 0x10010
> +# CHECK-NEXT: Offset: 0x20000
> # CHECK-NEXT: Size: 32
> # CHECK-NEXT: Link: 8
> # CHECK-NEXT: Info: 1
> @@ -151,7 +151,7 @@ __start:
> # CHECK-NEXT: Flags [ (0x0)
> # CHECK-NEXT: ]
> # CHECK-NEXT: Address: 0x0
> -# CHECK-NEXT: Offset: 0x10030
> +# CHECK-NEXT: Offset: 0x20020
> # CHECK-NEXT: Size: 68
> # CHECK-NEXT: Link: 0
> # CHECK-NEXT: Info: 0
> @@ -165,7 +165,7 @@ __start:
> # CHECK-NEXT: Flags [ (0x0)
> # CHECK-NEXT: ]
> # CHECK-NEXT: Address: 0x0
> -# CHECK-NEXT: Offset: 0x10074
> +# CHECK-NEXT: Offset: 0x20064
> # CHECK-NEXT: Size: 9
> # CHECK-NEXT: Link: 0
> # CHECK-NEXT: Info: 0
> @@ -199,8 +199,8 @@ __start:
> # CHECK-NEXT: Offset: 0x34
> # CHECK-NEXT: VirtualAddress: 0x10034
> # CHECK-NEXT: PhysicalAddress: 0x10034
> -# CHECK-NEXT: FileSize: 96
> -# CHECK-NEXT: MemSize: 96
> +# CHECK-NEXT: FileSize: 128
> +# CHECK-NEXT: MemSize: 128
> # CHECK-NEXT: Flags [ (0x4)
> # CHECK-NEXT: PF_R (0x4)
> # CHECK-NEXT: ]
> @@ -211,8 +211,8 @@ __start:
> # CHECK-NEXT: Offset: 0x0
> # CHECK-NEXT: VirtualAddress: 0x10000
> # CHECK-NEXT: PhysicalAddress: 0x10000
> -# CHECK-NEXT: FileSize: 200
> -# CHECK-NEXT: MemSize: 200
> +# CHECK-NEXT: FileSize: 232
> +# CHECK-NEXT: MemSize: 232
> # CHECK-NEXT: Flags [ (0x4)
> # CHECK-NEXT: PF_R (0x4)
> # CHECK-NEXT: ]
> @@ -223,12 +223,25 @@ __start:
> # CHECK-NEXT: Offset: 0x10000
> # CHECK-NEXT: VirtualAddress: 0x20000
> # CHECK-NEXT: PhysicalAddress: 0x20000
> -# CHECK-NEXT: FileSize: 16
> -# CHECK-NEXT: MemSize: 16
> +# CHECK-NEXT: FileSize: 12
> +# CHECK-NEXT: MemSize: 12
> # CHECK-NEXT: Flags [ (0x5)
> # CHECK-NEXT: PF_R (0x4)
> # CHECK-NEXT: PF_X (0x1)
> # CHECK-NEXT: ]
> # CHECK-NEXT: Alignment: 65536
> # CHECK-NEXT: }
> +# CHECK-NEXT: ProgramHeader {
> +# CHECK-NEXT: Type: PT_LOAD (0x1)
> +# CHECK-NEXT: Offset: 0x20000
> +# CHECK-NEXT: VirtualAddress: 0x30000
> +# CHECK-NEXT: PhysicalAddress: 0x30000
> +# CHECK-NEXT: FileSize: 0
> +# CHECK-NEXT: MemSize: 0
> +# CHECK-NEXT: Flags [
> +# CHECK-NEXT: PF_R
> +# CHECK-NEXT: PF_W
> +# CHECK-NEXT: ]
> +# CHECK-NEXT: Alignment: 65536
> +# CHECK-NEXT: }
> # CHECK-NEXT: ]
>
> Modified: lld/trunk/test/elf2/discard-locals.s
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/discard-locals.s?rev=251988&r1=251987&r2=251988&view=diff
>
> ==============================================================================
> --- lld/trunk/test/elf2/discard-locals.s (original)
> +++ lld/trunk/test/elf2/discard-locals.s Tue Nov 3 16:08:08 2015
> @@ -40,7 +40,7 @@ _start:
> // CHECK-NEXT: }
> // CHECK-NEXT: Symbol {
> // CHECK-NEXT: Name: _start
> -// CHECK-NEXT: Value: 0x100B0
> +// CHECK-NEXT: Value: 0x11000
> // CHECK-NEXT: Size: 0
> // CHECK-NEXT: Binding: Global
> // CHECK-NEXT: Type: None
>
> Modified: lld/trunk/test/elf2/discard-none.s
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/discard-none.s?rev=251988&r1=251987&r2=251988&view=diff
>
> ==============================================================================
> --- lld/trunk/test/elf2/discard-none.s (original)
> +++ lld/trunk/test/elf2/discard-none.s Tue Nov 3 16:08:08 2015
> @@ -36,7 +36,7 @@
> // CHECK-NEXT: }
> // CHECK-NEXT: Symbol {
> // CHECK-NEXT: Name: .Lmyothervar
> -// CHECK-NEXT: Value: 0x14C
> +// CHECK-NEXT: Value: 0x1000
> // CHECK-NEXT: Size: 0
> // CHECK-NEXT: Binding: Local
> // CHECK-NEXT: Type: None
> @@ -45,7 +45,7 @@
> // CHECK-NEXT: }
> // CHECK-NEXT: Symbol {
> // CHECK-NEXT: Name: .Lmyvar
> -// CHECK-NEXT: Value: 0x14C
> +// CHECK-NEXT: Value: 0x1000
> // CHECK-NEXT: Size: 0
> // CHECK-NEXT: Binding: Local
> // CHECK-NEXT: Type: None
>
> Modified: lld/trunk/test/elf2/emulation.s
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/emulation.s?rev=251988&r1=251987&r2=251988&view=diff
>
> ==============================================================================
> --- lld/trunk/test/elf2/emulation.s (original)
> +++ lld/trunk/test/elf2/emulation.s Tue Nov 3 16:08:08 2015
> @@ -16,14 +16,14 @@
> # X86-64-NEXT: Type: Executable (0x2)
> # X86-64-NEXT: Machine: EM_X86_64 (0x3E)
> # X86-64-NEXT: Version: 1
> -# X86-64-NEXT: Entry: 0x100B0
> +# X86-64-NEXT: Entry:
> # X86-64-NEXT: ProgramHeaderOffset: 0x40
> # X86-64-NEXT: SectionHeaderOffset:
> # X86-64-NEXT: Flags [ (0x0)
> # X86-64-NEXT: ]
> # X86-64-NEXT: HeaderSize: 64
> # X86-64-NEXT: ProgramHeaderEntrySize: 56
> -# X86-64-NEXT: ProgramHeaderCount: 2
> +# X86-64-NEXT: ProgramHeaderCount:
> # X86-64-NEXT: SectionHeaderEntrySize: 64
> # X86-64-NEXT: SectionHeaderCount:
> # X86-64-NEXT: StringTableSectionIndex:
> @@ -47,14 +47,14 @@
> # X86-NEXT: Type: Executable (0x2)
> # X86-NEXT: Machine: EM_386 (0x3)
> # X86-NEXT: Version: 1
> -# X86-NEXT: Entry: 0x10074
> +# X86-NEXT: Entry:
> # X86-NEXT: ProgramHeaderOffset: 0x34
> # X86-NEXT: SectionHeaderOffset:
> # X86-NEXT: Flags [ (0x0)
> # X86-NEXT: ]
> # X86-NEXT: HeaderSize: 52
> # X86-NEXT: ProgramHeaderEntrySize: 32
> -# X86-NEXT: ProgramHeaderCount: 2
> +# X86-NEXT: ProgramHeaderCount:
> # X86-NEXT: SectionHeaderEntrySize: 40
> # X86-NEXT: SectionHeaderCount:
> # X86-NEXT: StringTableSectionIndex:
> @@ -78,14 +78,14 @@
> # PPC64-NEXT: Type: Executable (0x2)
> # PPC64-NEXT: Machine: EM_PPC64 (0x15)
> # PPC64-NEXT: Version: 1
> -# PPC64-NEXT: Entry: 0x100000B0
> +# PPC64-NEXT: Entry:
> # PPC64-NEXT: ProgramHeaderOffset: 0x40
> # PPC64-NEXT: SectionHeaderOffset:
> # PPC64-NEXT: Flags [ (0x0)
> # PPC64-NEXT: ]
> # PPC64-NEXT: HeaderSize: 64
> # PPC64-NEXT: ProgramHeaderEntrySize: 56
> -# PPC64-NEXT: ProgramHeaderCount: 2
> +# PPC64-NEXT: ProgramHeaderCount:
> # PPC64-NEXT: SectionHeaderEntrySize: 64
> # PPC64-NEXT: SectionHeaderCount:
> # PPC64-NEXT: StringTableSectionIndex:
> @@ -109,9 +109,9 @@
> # MIPS-NEXT: Type: Executable (0x2)
> # MIPS-NEXT: Machine: EM_MIPS (0x8)
> # MIPS-NEXT: Version: 1
> -# MIPS-NEXT: Entry: 0x100B0
> +# MIPS-NEXT: Entry:
> # MIPS-NEXT: ProgramHeaderOffset: 0x34
> -# MIPS-NEXT: SectionHeaderOffset: 0x11C
> +# MIPS-NEXT: SectionHeaderOffset:
> # MIPS-NEXT: Flags [ (0x0)
> # MIPS-NEXT: ]
>
> @@ -135,9 +135,9 @@
> # MIPSEL-NEXT: Type: Executable (0x2)
> # MIPSEL-NEXT: Machine: EM_MIPS (0x8)
> # MIPSEL-NEXT: Version: 1
> -# MIPSEL-NEXT: Entry: 0x100B0
> +# MIPSEL-NEXT: Entry:
> # MIPSEL-NEXT: ProgramHeaderOffset: 0x34
> -# MIPSEL-NEXT: SectionHeaderOffset: 0x11C
> +# MIPSEL-NEXT: SectionHeaderOffset:
> # MIPSEL-NEXT: Flags [ (0x0)
> # MIPSEL-NEXT: ]
>
>
> Modified: lld/trunk/test/elf2/gnu-hash-table.s
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/gnu-hash-table.s?rev=251988&r1=251987&r2=251988&view=diff
>
> ==============================================================================
> --- lld/trunk/test/elf2/gnu-hash-table.s (original)
> +++ lld/trunk/test/elf2/gnu-hash-table.s Tue Nov 3 16:08:08 2015
> @@ -149,8 +149,8 @@
> # PPC64-NEXT: Flags [
> # PPC64-NEXT: SHF_ALLOC
> # PPC64-NEXT: ]
> -# PPC64-NEXT: Address: 0x180
> -# PPC64-NEXT: Offset: 0x180
> +# PPC64-NEXT: Address: 0x1B8
> +# PPC64-NEXT: Offset: 0x1B8
> # PPC64-NEXT: Size: 36
> # PPC64-NEXT: Link: 1
> # PPC64-NEXT: Info: 0
>
> Modified: lld/trunk/test/elf2/local-dynamic.s
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/local-dynamic.s?rev=251988&r1=251987&r2=251988&view=diff
>
> ==============================================================================
> --- lld/trunk/test/elf2/local-dynamic.s (original)
> +++ lld/trunk/test/elf2/local-dynamic.s Tue Nov 3 16:08:08 2015
> @@ -16,7 +16,7 @@
> // CHECK-NEXT: }
> // CHECK-NEXT: Symbol {
> // CHECK-NEXT: Name: blah
> -// CHECK-NEXT: Value: 0x170
> +// CHECK-NEXT: Value: 0x1000
> // CHECK-NEXT: Size: 0
> // CHECK-NEXT: Binding: Local
> // CHECK-NEXT: Type: None
> @@ -25,7 +25,7 @@
> // CHECK-NEXT: }
> // CHECK-NEXT: Symbol {
> // CHECK-NEXT: Name: foo
> -// CHECK-NEXT: Value: 0x170
> +// CHECK-NEXT: Value: 0x1000
> // CHECK-NEXT: Size: 0
> // CHECK-NEXT: Binding: Local
> // CHECK-NEXT: Type: None
> @@ -34,7 +34,7 @@
> // CHECK-NEXT: }
> // CHECK-NEXT: Symbol {
> // CHECK-NEXT: Name: goo
> -// CHECK-NEXT: Value: 0x170
> +// CHECK-NEXT: Value: 0x1000
> // CHECK-NEXT: Size: 0
> // CHECK-NEXT: Binding: Local
> // CHECK-NEXT: Type: None
> @@ -43,7 +43,7 @@
> // CHECK-NEXT: }
> // CHECK-NEXT: Symbol {
> // CHECK-NEXT: Name: _start
> -// CHECK-NEXT: Value: 0x170
> +// CHECK-NEXT: Value: 0x1000
> // CHECK-NEXT: Size: 0
> // CHECK-NEXT: Binding: Global
> // CHECK-NEXT: Type: None
> @@ -64,7 +64,7 @@
> // CHECK-NEXT: }
> // CHECK-NEXT: Symbol {
> // CHECK-NEXT: Name: _start@
> -// CHECK-NEXT: Value: 0x170
> +// CHECK-NEXT: Value: 0x1000
> // CHECK-NEXT: Size: 0
> // CHECK-NEXT: Binding: Global
> // CHECK-NEXT: Type: None
>
> Modified: lld/trunk/test/elf2/local.s
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/local.s?rev=251988&r1=251987&r2=251988&view=diff
>
> ==============================================================================
> --- lld/trunk/test/elf2/local.s (original)
> +++ lld/trunk/test/elf2/local.s Tue Nov 3 16:08:08 2015
> @@ -37,7 +37,7 @@
> // CHECK-NEXT: }
> // CHECK-NEXT: Symbol {
> // CHECK-NEXT: Name: blah
> -// CHECK-NEXT: Value: 0x100B0
> +// CHECK-NEXT: Value: 0x11000
> // CHECK-NEXT: Size: 0
> // CHECK-NEXT: Binding: Local
> // CHECK-NEXT: Type: None
> @@ -46,7 +46,7 @@
> // CHECK-NEXT: }
> // CHECK-NEXT: Symbol {
> // CHECK-NEXT: Name: foo
> -// CHECK-NEXT: Value: 0x100B0
> +// CHECK-NEXT: Value: 0x11000
> // CHECK-NEXT: Size: 0
> // CHECK-NEXT: Binding: Local
> // CHECK-NEXT: Type: None
> @@ -55,7 +55,7 @@
> // CHECK-NEXT: }
> // CHECK-NEXT: Symbol {
> // CHECK-NEXT: Name: goo
> -// CHECK-NEXT: Value: 0x100B0
> +// CHECK-NEXT: Value: 0x11000
> // CHECK-NEXT: Size: 0
> // CHECK-NEXT: Binding: Local
> // CHECK-NEXT: Type: None
> @@ -64,7 +64,7 @@
> // CHECK-NEXT: }
> // CHECK-NEXT: Symbol {
> // CHECK-NEXT: Name: _start
> -// CHECK-NEXT: Value: 0x100B0
> +// CHECK-NEXT: Value: 0x11000
> // CHECK-NEXT: Size: 0
> // CHECK-NEXT: Binding: Global
> // CHECK-NEXT: Type: None
>
> Modified: lld/trunk/test/elf2/merge-string-align.s
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/merge-string-align.s?rev=251988&r1=251987&r2=251988&view=diff
>
> ==============================================================================
> --- lld/trunk/test/elf2/merge-string-align.s (original)
> +++ lld/trunk/test/elf2/merge-string-align.s Tue Nov 3 16:08:08 2015
> @@ -17,8 +17,8 @@
> // CHECK-NEXT: SHF_MERGE
> // CHECK-NEXT: SHF_STRINGS
> // CHECK-NEXT: ]
> -// CHECK-NEXT: Address: 0x120
> -// CHECK-NEXT: Offset: 0x120
> +// CHECK-NEXT: Address:
> +// CHECK-NEXT: Offset:
> // CHECK-NEXT: Size: 4
> // CHECK-NEXT: Link: 0
> // CHECK-NEXT: Info: 0
> @@ -31,8 +31,8 @@
> // CHECK-NEXT: SHF_MERGE
> // CHECK-NEXT: SHF_STRINGS
> // CHECK-NEXT: ]
> -// CHECK-NEXT: Address: 0x124
> -// CHECK-NEXT: Offset: 0x124
> +// CHECK-NEXT: Address:
> +// CHECK-NEXT: Offset:
> // CHECK-NEXT: Size: 4
> // CHECK-NEXT: Link: 0
> // CHECK-NEXT: Info: 0
>
> Modified: lld/trunk/test/elf2/merge-string.s
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/merge-string.s?rev=251988&r1=251987&r2=251988&view=diff
>
> ==============================================================================
> --- lld/trunk/test/elf2/merge-string.s (original)
> +++ lld/trunk/test/elf2/merge-string.s Tue Nov 3 16:08:08 2015
> @@ -26,8 +26,8 @@ zed:
> // CHECK-NEXT: SHF_MERGE
> // CHECK-NEXT: SHF_STRINGS
> // CHECK-NEXT: ]
> -// CHECK-NEXT: Address: 0x120
> -// CHECK-NEXT: Offset: 0x120
> +// CHECK-NEXT: Address: 0x158
> +// CHECK-NEXT: Offset: 0x158
> // CHECK-NEXT: Size: 4
> // CHECK-NEXT: Link: 0
> // CHECK-NEXT: Info: 0
> @@ -44,8 +44,8 @@ zed:
> // NOTAIL-NEXT: SHF_MERGE
> // NOTAIL-NEXT: SHF_STRINGS
> // NOTAIL-NEXT: ]
> -// NOTAIL-NEXT: Address: 0x120
> -// NOTAIL-NEXT: Offset: 0x120
> +// NOTAIL-NEXT: Address: 0x158
> +// NOTAIL-NEXT: Offset: 0x158
> // NOTAIL-NEXT: Size: 7
> // NOTAIL-NEXT: Link: 0
> // NOTAIL-NEXT: Info: 0
> @@ -62,8 +62,8 @@ zed:
> // CHECK-NEXT: SHF_MERGE
> // CHECK-NEXT: SHF_STRINGS
> // CHECK-NEXT: ]
> -// CHECK-NEXT: Address: 0x124
> -// CHECK-NEXT: Offset: 0x124
> +// CHECK-NEXT: Address: 0x15C
> +// CHECK-NEXT: Offset: 0x15C
> // CHECK-NEXT: Size: 4
> // CHECK-NEXT: Link: 0
> // CHECK-NEXT: Info: 0
> @@ -75,11 +75,11 @@ zed:
>
>
> // CHECK: Name: bar
> -// CHECK-NEXT: Value: 0x121
> +// CHECK-NEXT: Value: 0x159
>
> // CHECK: Name: foo
> -// CHECK-NEXT: Value: 0x120
> +// CHECK-NEXT: Value: 0x158
>
> // CHECK: Name: zed
> -// CHECK-NEXT: Value: 0x124
> +// CHECK-NEXT: Value: 0x15C
> // CHECK-NEXT: Size: 0
>
> Modified: lld/trunk/test/elf2/merge-sym.s
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/merge-sym.s?rev=251988&r1=251987&r2=251988&view=diff
>
> ==============================================================================
> --- lld/trunk/test/elf2/merge-sym.s (original)
> +++ lld/trunk/test/elf2/merge-sym.s Tue Nov 3 16:08:08 2015
> @@ -15,7 +15,7 @@ foo:
> // CHECK-NEXT: SHF_ALLOC
> // CHECK-NEXT: SHF_MERGE
> // CHECK-NEXT: ]
> -// CHECK-NEXT: Address: 0x120
> +// CHECK-NEXT: Address: 0x158
>
> // CHECK: Name: foo
> -// CHECK-NEXT: Value: 0x122
> +// CHECK-NEXT: Value: 0x15A
>
> Modified: lld/trunk/test/elf2/program-header-layout.s
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/program-header-layout.s?rev=251988&r1=251987&r2=251988&view=diff
>
> ==============================================================================
> --- lld/trunk/test/elf2/program-header-layout.s (original)
> +++ lld/trunk/test/elf2/program-header-layout.s Tue Nov 3 16:08:08 2015
> @@ -23,7 +23,7 @@ _start:
> # CHECK-NEXT: SHF_ALLOC
> # CHECK-NEXT: ]
> # CHECK-NEXT: Address:
> -# CHECK-NEXT: Offset: 0xE8
> +# CHECK-NEXT: Offset: 0x120
> # CHECK-NEXT: Size:
> # CHECK-NEXT: Link:
> # CHECK-NEXT: Info:
> @@ -37,8 +37,8 @@ _start:
> # CHECK-NEXT: Offset: 0x40
> # CHECK-NEXT: VirtualAddress: 0x10040
> # CHECK-NEXT: PhysicalAddress: 0x10040
> -# CHECK-NEXT: FileSize: 168
> -# CHECK-NEXT: MemSize: 168
> +# CHECK-NEXT: FileSize: 224
> +# CHECK-NEXT: MemSize: 224
> # CHECK-NEXT: Flags [ (0x4)
> # CHECK-NEXT: PF_R (0x4)
> # CHECK-NEXT: ]
> @@ -49,13 +49,26 @@ _start:
> # CHECK-NEXT: Offset: 0x0
> # CHECK-NEXT: VirtualAddress:
> # CHECK-NEXT: PhysicalAddress:
> -# CHECK-NEXT: FileSize: 240
> -# CHECK-NEXT: MemSize: 240
> +# CHECK-NEXT: FileSize: 296
> +# CHECK-NEXT: MemSize: 296
> # CHECK-NEXT: Flags [
> # CHECK-NEXT: PF_R
> # CHECK-NEXT: ]
> # CHECK-NEXT: Alignment:
> # CHECK-NEXT: }
> +# CHECK-NEXT: ProgramHeader {
> +# CHECK-NEXT: Type: PT_LOAD
> +# CHECK-NEXT: Offset:
> +# CHECK-NEXT: VirtualAddress:
> +# CHECK-NEXT: PhysicalAddress:
> +# CHECK-NEXT: FileSize: 0
> +# CHECK-NEXT: MemSize: 0
> +# CHECK-NEXT: Flags [
> +# CHECK-NEXT: PF_R
> +# CHECK-NEXT: PF_X
> +# CHECK-NEXT: ]
> +# CHECK-NEXT: Alignment:
> +# CHECK-NEXT: }
> # CHECK-NEXT: ProgramHeader {
> # CHECK-NEXT: Type: PT_LOAD
> # CHECK-NEXT: Offset:
>
> Modified: lld/trunk/test/elf2/string-table.s
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/string-table.s?rev=251988&r1=251987&r2=251988&view=diff
>
> ==============================================================================
> --- lld/trunk/test/elf2/string-table.s (original)
> +++ lld/trunk/test/elf2/string-table.s Tue Nov 3 16:08:08 2015
> @@ -19,7 +19,7 @@ _start:
> // CHECK-NEXT: Flags [
> // CHECK-NEXT: SHF_ALLOC
> // CHECK-NEXT: ]
> -// CHECK-NEXT: Address: 0x100B0
> +// CHECK-NEXT: Address: 0x100E8
>
> // CHECK: Name: foobar
> // CHECK-NEXT: Type: SHT_PROGBITS
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151103/dee3b4e6/attachment.html>
More information about the llvm-commits
mailing list