[lld] r249957 - ELF2: Write .interp section on the first page in the exectuable.

Rafael EspĂ­ndola via llvm-commits llvm-commits at lists.llvm.org
Sun Oct 11 12:16:38 PDT 2015


Thanks!

On 10 October 2015 at 19:25, Rui Ueyama via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: ruiu
> Date: Sat Oct 10 18:25:39 2015
> New Revision: 249957
>
> URL: http://llvm.org/viewvc/llvm-project?rev=249957&view=rev
> Log:
> ELF2: Write .interp section on the first page in the exectuable.
>
> Previously, we reserved the first page for the program header, so no
> sections would be written to very beginning of the output file.
> FreeBSD requires .interp section be exist on the first page, so that
> was not good.
>
> This patch calculates the size of the program header and then assign
> addresses to the sections. Now the first section is located next to
> the program header. Because the first section is .interp, it's very
> likely to be on the first page.
>
> Modified:
>     lld/trunk/ELF/Writer.cpp
>     lld/trunk/test/elf2/aarch64-data-relocs.s
>     lld/trunk/test/elf2/basic-mips.s
>     lld/trunk/test/elf2/comdat.s
>     lld/trunk/test/elf2/discard-locals.s
>     lld/trunk/test/elf2/discard-none.s
>     lld/trunk/test/elf2/dynamic-reloc-index.s
>     lld/trunk/test/elf2/emulation.s
>     lld/trunk/test/elf2/got.s
>     lld/trunk/test/elf2/local-dynamic.s
>     lld/trunk/test/elf2/local-got-shared.s
>     lld/trunk/test/elf2/local-got.s
>     lld/trunk/test/elf2/local.s
>     lld/trunk/test/elf2/plt-i686.s
>     lld/trunk/test/elf2/plt.s
>     lld/trunk/test/elf2/pre_init_fini_array.s
>     lld/trunk/test/elf2/program-header-layout.s
>     lld/trunk/test/elf2/relative-dynamic-reloc.s
>     lld/trunk/test/elf2/relocation-i686.s
>     lld/trunk/test/elf2/relocation-local.s
>     lld/trunk/test/elf2/relocation.s
>     lld/trunk/test/elf2/shared.s
>     lld/trunk/test/elf2/string-table.s
>     lld/trunk/test/elf2/symbols.s
>
> Modified: lld/trunk/ELF/Writer.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Writer.cpp?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/ELF/Writer.cpp (original)
> +++ lld/trunk/ELF/Writer.cpp Sat Oct 10 18:25:39 2015
> @@ -329,6 +329,10 @@ static void addCommonSymbols(std::vector
>
>  // Create output section objects and add them to OutputSections.
>  template <class ELFT> void Writer<ELFT>::createSections() {
> +  // .interp needs to be on the first page in the output file.
> +  if (needsInterpSection())
> +    OutputSections.push_back(Out<ELFT>::Interp);
> +
>    SmallDenseMap<SectionKey<ELFT::Is64Bits>, OutputSection<ELFT> *> Map;
>
>    OutputSections.push_back(Out<ELFT>::Bss);
> @@ -414,8 +418,6 @@ template <class ELFT> void Writer<ELFT>:
>
>    OutputSections.push_back(Out<ELFT>::SymTab);
>    if (needsDynamicSections()) {
> -    if (needsInterpSection())
> -      OutputSections.push_back(Out<ELFT>::Interp);
>      OutputSections.push_back(Out<ELFT>::DynSymTab);
>      OutputSections.push_back(Out<ELFT>::HashTab);
>      OutputSections.push_back(Out<ELFT>::Dynamic);
> @@ -465,8 +467,23 @@ template <class ELFT> void Writer<ELFT>:
>    phdrSet(&PhdrPhdr, PT_PHDR, PF_R, FileOff, VA, /*Align=*/8);
>
>    // Reserve space for Phdrs.
> -  FileOff = RoundUpToAlignment(FileOff, Target->getPageSize());
> -  VA = RoundUpToAlignment(VA, Target->getPageSize());
> +  int NumPhdrs = 2;   // 2 for PhdrPhdr and FileHeaderPhdr
> +  if (needsInterpSection())
> +    ++NumPhdrs;
> +  if (needsDynamicSections())
> +    ++NumPhdrs;
> +  uintX_t Last = PF_R;
> +  for (OutputSectionBase<ELFT::Is64Bits> *Sec : OutputSections) {
> +    if (!Sec->getSize() || !needsPhdr<ELFT>(Sec))
> +      continue;
> +    uintX_t Flags = toPhdrFlags(Sec->getFlags());
> +    if (Last != Flags) {
> +      Last = Flags;
> +      ++NumPhdrs;
> +    }
> +  }
> +  FileOff += sizeof(Elf_Phdr) * NumPhdrs;
> +  VA += sizeof(Elf_Phdr) * NumPhdrs;
>
>    if (needsInterpSection())
>      Phdrs.push_back(&InterpPhdr);
> @@ -525,6 +542,13 @@ template <class ELFT> void Writer<ELFT>:
>    PhdrPhdr.p_filesz = sizeof(Elf_Phdr) * Phdrs.size();
>    PhdrPhdr.p_memsz = sizeof(Elf_Phdr) * Phdrs.size();
>
> +  // If nothing was merged into the file header PT_LOAD, set the size correctly.
> +  if (FileHeaderPhdr.p_filesz == Target->getPageSize()) {
> +    uint64_t Size = sizeof(Elf_Ehdr) + sizeof(Elf_Phdr) * Phdrs.size();
> +    FileHeaderPhdr.p_filesz = Size;
> +    FileHeaderPhdr.p_memsz = Size;
> +  }
> +
>    // Add space for section headers.
>    FileOff = RoundUpToAlignment(FileOff, ELFT::Is64Bits ? 8 : 4);
>    SectionHeaderOff = FileOff;
> @@ -566,13 +590,6 @@ template <class ELFT> void Writer<ELFT>:
>    EHdr->e_shnum = getNumSections();
>    EHdr->e_shstrndx = Out<ELFT>::StrTab->getSectionIndex();
>
> -  // If nothing was merged into the file header PT_LOAD, set the size correctly.
> -  if (FileHeaderPhdr.p_filesz == Target->getPageSize()) {
> -    uint64_t Size = sizeof(Elf_Ehdr) + sizeof(Elf_Phdr) * Phdrs.size();
> -    FileHeaderPhdr.p_filesz = Size;
> -    FileHeaderPhdr.p_memsz = Size;
> -  }
> -
>    auto PHdrs = reinterpret_cast<Elf_Phdr *>(Buf + EHdr->e_phoff);
>    for (Elf_Phdr *PH : Phdrs)
>      *PHdrs++ = *PH;
>
> Modified: lld/trunk/test/elf2/aarch64-data-relocs.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/aarch64-data-relocs.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/aarch64-data-relocs.s (original)
> +++ lld/trunk/test/elf2/aarch64-data-relocs.s Sat Oct 10 18:25:39 2015
> @@ -14,16 +14,16 @@
>
>  // CHECK: Disassembly of section .R_AARCH64_ABS16:
>  // CHECK-NEXT: $d.0:
> -// CHECK-NEXT:     2000:       0c 00   .short
> +// CHECK-NEXT:     1000:       0c 00   .short
>  //                             ^-- A = 0xc
>
>  // CHECK-NEXT: Disassembly of section .R_AARCH64_ABS32:
>  // CHECK-NEXT: $d.1:
> -// CHECK-NEXT:     2002:       18 00 00 00     .word
> +// CHECK-NEXT:     1002:       18 00 00 00     .word
>  //                             ^-- A = 0x18
>
>  // CHECK-NEXT: Disassembly of section .R_AARCH64_ABS64:
>  // CHECK-NEXT: $d.2:
> -// CHECK-NEXT:     2006:       24 00 00 00     .word
> +// CHECK-NEXT:     1006:       24 00 00 00     .word
>  //                             ^-- A = 0x24
> -// CHECK-NEXT:     200a:       00 00 00 00     .word
> +// CHECK-NEXT:     100a:       00 00 00 00     .word
>
> Modified: lld/trunk/test/elf2/basic-mips.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/basic-mips.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/basic-mips.s (original)
> +++ lld/trunk/test/elf2/basic-mips.s Sat Oct 10 18:25:39 2015
> @@ -25,9 +25,9 @@ __start:
>  # CHECK-NEXT:   Type: Executable (0x2)
>  # CHECK-NEXT:   Machine: EM_MIPS (0x8)
>  # CHECK-NEXT:   Version: 1
> -# CHECK-NEXT:   Entry: 0x420000
> +# CHECK-NEXT:   Entry: 0x410000
>  # CHECK-NEXT:   ProgramHeaderOffset: 0x34
> -# CHECK-NEXT:   SectionHeaderOffset: 0x20074
> +# CHECK-NEXT:   SectionHeaderOffset: 0x10074
>  # CHECK-NEXT:   Flags [ (0x0)
>  # CHECK-NEXT:   ]
>  # CHECK-NEXT:   HeaderSize: 52
> @@ -59,8 +59,8 @@ __start:
>  # CHECK-NEXT:     Flags [ (0x2)
>  # CHECK-NEXT:       SHF_ALLOC (0x2)
>  # CHECK-NEXT:     ]
> -# CHECK-NEXT:     Address: 0x410000
> -# CHECK-NEXT:     Offset: 0x1000
> +# CHECK-NEXT:     Address: 0x400094
> +# CHECK-NEXT:     Offset: 0x94
>  # 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: 0x410018
> -# CHECK-NEXT:     Offset: 0x10018
> +# CHECK-NEXT:     Address: 0x4000B0
> +# CHECK-NEXT:     Offset: 0xB0
>  # CHECK-NEXT:     Size: 24
>  # CHECK-NEXT:     Link: 0
>  # CHECK-NEXT:     Info: 0
> @@ -90,8 +90,8 @@ __start:
>  # CHECK-NEXT:       SHF_ALLOC (0x2)
>  # CHECK-NEXT:       SHF_EXECINSTR (0x4)
>  # CHECK-NEXT:     ]
> -# CHECK-NEXT:     Address: 0x420000
> -# CHECK-NEXT:     Offset: 0x2000
> +# CHECK-NEXT:     Address: 0x410000
> +# CHECK-NEXT:     Offset: 0x10000
>  # CHECK-NEXT:     Size: 12
>  # 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: 0x420010
> -# CHECK-NEXT:     Offset: 0x20010
> +# CHECK-NEXT:     Address: 0x410010
> +# CHECK-NEXT:     Offset: 0x10010
>  # 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: 0x420010
> -# CHECK-NEXT:     Offset: 0x20010
> +# CHECK-NEXT:     Address: 0x410010
> +# CHECK-NEXT:     Offset: 0x10010
>  # 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: 0x20010
> +# CHECK-NEXT:     Offset: 0x10010
>  # CHECK-NEXT:     Size: 32
>  # CHECK-NEXT:     Link: 7
>  # CHECK-NEXT:     Info: 1
> @@ -151,7 +151,7 @@ __start:
>  # CHECK-NEXT:     Flags [ (0x0)
>  # CHECK-NEXT:     ]
>  # CHECK-NEXT:     Address: 0x0
> -# CHECK-NEXT:     Offset: 0x20030
> +# CHECK-NEXT:     Offset: 0x10030
>  # CHECK-NEXT:     Size: 66
>  # CHECK-NEXT:     Link: 0
>  # CHECK-NEXT:     Info: 0
> @@ -171,7 +171,7 @@ __start:
>  # CHECK-NEXT:   }
>  # CHECK-NEXT:   Symbol {
>  # CHECK-NEXT:     Name: __start (7)
> -# CHECK-NEXT:     Value: 0x420000
> +# CHECK-NEXT:     Value: 0x410000
>  # CHECK-NEXT:     Size: 0
>  # CHECK-NEXT:     Binding: Global (0x1)
>  # CHECK-NEXT:     Type: None (0x0)
> @@ -197,8 +197,8 @@ __start:
>  # CHECK-NEXT:     Offset: 0x0
>  # CHECK-NEXT:     VirtualAddress: 0x400000
>  # CHECK-NEXT:     PhysicalAddress: 0x400000
> -# CHECK-NEXT:     FileSize: 65584
> -# CHECK-NEXT:     MemSize: 65584
> +# CHECK-NEXT:     FileSize: 200
> +# CHECK-NEXT:     MemSize: 200
>  # CHECK-NEXT:     Flags [ (0x4)
>  # CHECK-NEXT:       PF_R (0x4)
>  # CHECK-NEXT:     ]
> @@ -206,9 +206,9 @@ __start:
>  # CHECK-NEXT:   }
>  # CHECK-NEXT:   ProgramHeader {
>  # CHECK-NEXT:     Type: PT_LOAD (0x1)
> -# CHECK-NEXT:     Offset: 0x2000
> -# CHECK-NEXT:     VirtualAddress: 0x420000
> -# CHECK-NEXT:     PhysicalAddress: 0x420000
> +# CHECK-NEXT:     Offset: 0x10000
> +# CHECK-NEXT:     VirtualAddress: 0x410000
> +# CHECK-NEXT:     PhysicalAddress: 0x410000
>  # CHECK-NEXT:     FileSize: 16
>  # CHECK-NEXT:     MemSize: 16
>  # CHECK-NEXT:     Flags [ (0x5)
>
> Modified: lld/trunk/test/elf2/comdat.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/comdat.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/comdat.s (original)
> +++ lld/trunk/test/elf2/comdat.s Sat Oct 10 18:25:39 2015
> @@ -11,7 +11,7 @@ foo:
>
>  // CHECK: Disassembly of section .text2:
>  // CHECK-NEXT: foo:
> -// CHECK-NEXT:   2000: {{.*}}  nop
> +// CHECK-NEXT:   1000: {{.*}}  nop
>  // CHECK-NOT: nop
>
>          .section bar, "ax"
> @@ -19,10 +19,10 @@ foo:
>
>  // CHECK: Disassembly of section bar:
>  // CHECK-NEXT: bar:
> -// 0x2000 - 0x2001 - 5 = -6
> -// 0      - 0x2006 - 5 = -8203
> -// CHECK-NEXT:   2001: {{.*}}  callq  -6
> -// CHECK-NEXT:   2006: {{.*}}  callq  -8203
> +// 0x1000 - 0x1001 - 5 = -6
> +// 0      - 0x1006 - 5 = -8203
> +// CHECK-NEXT:   1001: {{.*}}  callq  -6
> +// CHECK-NEXT:   1006: {{.*}}  callq  -4107
>
>          .section .text3,"axG", at progbits,zed,comdat,unique,0
>
>
> Modified: lld/trunk/test/elf2/discard-locals.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/discard-locals.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/discard-locals.s (original)
> +++ lld/trunk/test/elf2/discard-locals.s Sat Oct 10 18:25:39 2015
> @@ -42,7 +42,7 @@ _start:
>  // CHECK-NEXT:   }
>  // CHECK-NEXT:   Symbol {
>  // CHECK-NEXT:     Name: _start
> -// CHECK-NEXT:     Value: 0x11000
> +// CHECK-NEXT:     Value: 0x100B0
>  // 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=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/discard-none.s (original)
> +++ lld/trunk/test/elf2/discard-none.s Sat Oct 10 18:25:39 2015
> @@ -40,7 +40,7 @@
>  // CHECK-NEXT:   }
>  // CHECK-NEXT:   Symbol {
>  // CHECK-NEXT:     Name: .Lmyothervar
> -// CHECK-NEXT:     Value: 0x102C
> +// CHECK-NEXT:     Value: 0x14C
>  // CHECK-NEXT:     Size: 0
>  // CHECK-NEXT:     Binding: Local
>  // CHECK-NEXT:     Type: None
> @@ -49,7 +49,7 @@
>  // CHECK-NEXT:   }
>  // CHECK-NEXT:   Symbol {
>  // CHECK-NEXT:     Name: .Lmyvar
> -// CHECK-NEXT:     Value: 0x102C
> +// CHECK-NEXT:     Value: 0x14C
>  // CHECK-NEXT:     Size: 0
>  // CHECK-NEXT:     Binding: Local
>  // CHECK-NEXT:     Type: None
>
> Modified: lld/trunk/test/elf2/dynamic-reloc-index.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/dynamic-reloc-index.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/dynamic-reloc-index.s (original)
> +++ lld/trunk/test/elf2/dynamic-reloc-index.s Sat Oct 10 18:25:39 2015
> @@ -8,7 +8,7 @@
>
>  // CHECK:      Relocations [
>  // CHECK-NEXT:   Section ({{.*}}) .rela.dyn {
> -// CHECK-NEXT:     0x12000 R_X86_64_64 bar 0x0
> +// CHECK-NEXT:     0x11000 R_X86_64_64 bar 0x0
>  // CHECK-NEXT:   }
>  // CHECK-NEXT: ]
>
>
> Modified: lld/trunk/test/elf2/emulation.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/emulation.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/emulation.s (original)
> +++ lld/trunk/test/elf2/emulation.s Sat Oct 10 18:25:39 2015
> @@ -16,9 +16,9 @@
>  # X86-64-NEXT:   Type: Executable (0x2)
>  # X86-64-NEXT:   Machine: EM_X86_64 (0x3E)
>  # X86-64-NEXT:   Version: 1
> -# X86-64-NEXT:   Entry: 0x11000
> +# X86-64-NEXT:   Entry: 0x100B0
>  # X86-64-NEXT:   ProgramHeaderOffset: 0x40
> -# X86-64-NEXT:   SectionHeaderOffset: 0x1060
> +# X86-64-NEXT:   SectionHeaderOffset: 0x110
>  # X86-64-NEXT:   Flags [ (0x0)
>  # X86-64-NEXT:   ]
>  # X86-64-NEXT:   HeaderSize: 64
> @@ -47,9 +47,9 @@
>  # X86-NEXT:   Type: Executable (0x2)
>  # X86-NEXT:   Machine: EM_386 (0x3)
>  # X86-NEXT:   Version: 1
> -# X86-NEXT:   Entry: 0x11000
> +# X86-NEXT:   Entry: 0x10074
>  # X86-NEXT:   ProgramHeaderOffset: 0x34
> -# X86-NEXT:   SectionHeaderOffset: 0x104C
> +# X86-NEXT:   SectionHeaderOffset: 0xC0
>  # X86-NEXT:   Flags [ (0x0)
>  # X86-NEXT:   ]
>  # X86-NEXT:   HeaderSize: 52
> @@ -78,9 +78,9 @@
>  # PPC64-NEXT:   Type: Executable (0x2)
>  # PPC64-NEXT:   Machine: EM_PPC64 (0x15)
>  # PPC64-NEXT:   Version: 1
> -# PPC64-NEXT:   Entry: 0x10010000
> +# PPC64-NEXT:   Entry: 0x100000B0
>  # PPC64-NEXT:   ProgramHeaderOffset: 0x40
> -# PPC64-NEXT:   SectionHeaderOffset: 0x10060
> +# PPC64-NEXT:   SectionHeaderOffset: 0x110
>  # PPC64-NEXT:   Flags [ (0x0)
>  # PPC64-NEXT:   ]
>  # PPC64-NEXT:   HeaderSize: 64
> @@ -109,9 +109,9 @@
>  # PPC-NEXT:   Type: Executable (0x2)
>  # PPC-NEXT:   Machine: EM_PPC (0x14)
>  # PPC-NEXT:   Version: 1
> -# PPC-NEXT:   Entry: 0x10010000
> +# PPC-NEXT:   Entry: 0x10000074
>  # PPC-NEXT:   ProgramHeaderOffset: 0x34
> -# PPC-NEXT:   SectionHeaderOffset: 0x1004C
> +# PPC-NEXT:   SectionHeaderOffset: 0xC0
>  # PPC-NEXT:   Flags [ (0x0)
>  # PPC-NEXT:   ]
>  # PPC-NEXT:   HeaderSize: 52
> @@ -140,9 +140,9 @@
>  # MIPS-NEXT:   Type: Executable (0x2)
>  # MIPS-NEXT:   Machine: EM_MIPS (0x8)
>  # MIPS-NEXT:   Version: 1
> -# MIPS-NEXT:   Entry: 0x410030
> +# MIPS-NEXT:   Entry: 0x4000B0
>  # MIPS-NEXT:   ProgramHeaderOffset: 0x34
> -# MIPS-NEXT:   SectionHeaderOffset: 0x10094
> +# MIPS-NEXT:   SectionHeaderOffset: 0x114
>  # MIPS-NEXT:   Flags [ (0x0)
>  # MIPS-NEXT:   ]
>
> @@ -164,9 +164,9 @@
>  # MIPSEL-NEXT:   Type: Executable (0x2)
>  # MIPSEL-NEXT:   Machine: EM_MIPS (0x8)
>  # MIPSEL-NEXT:   Version: 1
> -# MIPSEL-NEXT:   Entry: 0x410030
> +# MIPSEL-NEXT:   Entry: 0x4000B0
>  # MIPSEL-NEXT:   ProgramHeaderOffset: 0x34
> -# MIPSEL-NEXT:   SectionHeaderOffset: 0x10094
> +# MIPSEL-NEXT:   SectionHeaderOffset: 0x114
>  # MIPSEL-NEXT:   Flags [ (0x0)
>  # MIPSEL-NEXT:   ]
>
>
> Modified: lld/trunk/test/elf2/got.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/got.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/got.s (original)
> +++ lld/trunk/test/elf2/got.s Sat Oct 10 18:25:39 2015
> @@ -12,7 +12,7 @@
>  // CHECK-NEXT:   SHF_ALLOC
>  // CHECK-NEXT:   SHF_WRITE
>  // CHECK-NEXT: ]
> -// CHECK-NEXT: Address: 0x130A0
> +// CHECK-NEXT: Address: 0x120A0
>  // CHECK-NEXT: Offset:
>  // CHECK-NEXT: Size: 16
>  // CHECK-NEXT: Link: 0
> @@ -21,22 +21,22 @@
>
>  // CHECK:      Relocations [
>  // CHECK-NEXT:   Section ({{.*}}) .rela.dyn {
> -// CHECK-NEXT:     0x130A0 R_X86_64_GLOB_DAT bar 0x0
> -// CHECK-NEXT:     0x130A8 R_X86_64_GLOB_DAT zed 0x0
> +// CHECK-NEXT:     0x120A0 R_X86_64_GLOB_DAT bar 0x0
> +// CHECK-NEXT:     0x120A8 R_X86_64_GLOB_DAT zed 0x0
>  // CHECK-NEXT:   }
>  // CHECK-NEXT: ]
>
>
>  // Unfortunately FileCheck can't do math, so we have to check for explicit
>  // values:
> -//  0x130A0 - (0x12000 + 2) - 4 = 4250
> -//  0x130A0 - (0x12006 + 2) - 4 = 4244
> -//  0x130A8 - (0x1200c + 2) - 4 = 4246
> +//  0x110A0 - (0x11000 + 2) - 4 = 4250
> +//  0x110A0 - (0x11006 + 2) - 4 = 4244
> +//  0x110A8 - (0x1100c + 2) - 4 = 4246
>
>  // DISASM:      _start:
> -// DISASM-NEXT:   12000:  {{.*}}  jmpq  *4250(%rip)
> -// DISASM-NEXT:   12006:  {{.*}}  jmpq  *4244(%rip)
> -// DISASM-NEXT:   1200c:  {{.*}}  jmpq  *4246(%rip)
> +// DISASM-NEXT:   11000:  {{.*}}  jmpq  *4250(%rip)
> +// DISASM-NEXT:   11006:  {{.*}}  jmpq  *4244(%rip)
> +// DISASM-NEXT:   1100c:  {{.*}}  jmpq  *4246(%rip)
>
>  .global _start
>  _start:
>
> Modified: lld/trunk/test/elf2/local-dynamic.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/local-dynamic.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/local-dynamic.s (original)
> +++ lld/trunk/test/elf2/local-dynamic.s Sat Oct 10 18:25:39 2015
> @@ -16,7 +16,7 @@
>  // CHECK-NEXT:   }
>  // CHECK-NEXT:   Symbol {
>  // CHECK-NEXT:     Name: blah
> -// CHECK-NEXT:     Value: 0x1050
> +// CHECK-NEXT:     Value: 0x170
>  // 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: 0x1050
> +// CHECK-NEXT:     Value: 0x170
>  // 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: 0x1050
> +// CHECK-NEXT:     Value: 0x170
>  // 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: 0x1050
> +// CHECK-NEXT:     Value: 0x170
>  // 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: 0x1050
> +// CHECK-NEXT:     Value: 0x170
>  // CHECK-NEXT:     Size: 0
>  // CHECK-NEXT:     Binding: Global
>  // CHECK-NEXT:     Type: None
>
> Modified: lld/trunk/test/elf2/local-got-shared.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/local-got-shared.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/local-got-shared.s (original)
> +++ lld/trunk/test/elf2/local-got-shared.s Sat Oct 10 18:25:39 2015
> @@ -11,12 +11,12 @@ bar:
>  foo:
>          nop
>
> -// 0x3090 - 0x2000 - 5 = 4235
> +// 0x2090 - 0x1000 - 5 = 4235
>  // DISASM:      bar:
> -// DISASM-NEXT:   2000: {{.*}} callq 4235
> +// DISASM-NEXT:   1000: {{.*}} callq 4235
>
>  // DISASM:      foo:
> -// DISASM-NEXT:   2005: {{.*}} nop
> +// DISASM-NEXT:   1005: {{.*}} nop
>
>  // CHECK:      Name: .got
>  // CHECK-NEXT: Type: SHT_PROGBITS
> @@ -24,12 +24,12 @@ foo:
>  // CHECK-NEXT:   SHF_ALLOC
>  // CHECK-NEXT:   SHF_WRITE
>  // CHECK-NEXT: ]
> -// CHECK-NEXT: Address: 0x3090
> +// CHECK-NEXT: Address: 0x2090
>  // CHECK-NEXT: Offset:
>  // CHECK-NEXT: Size: 8
>
>  // CHECK:      Relocations [
>  // CHECK-NEXT:   Section ({{.*}}) .rela.dyn {
> -// CHECK-NEXT:     0x3090 R_X86_64_RELATIVE - 0x2005
> +// CHECK-NEXT:     0x2090 R_X86_64_RELATIVE - 0x1005
>  // CHECK-NEXT:   }
>  // CHECK-NEXT: ]
>
> Modified: lld/trunk/test/elf2/local-got.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/local-got.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/local-got.s (original)
> +++ lld/trunk/test/elf2/local-got.s Sat Oct 10 18:25:39 2015
> @@ -14,14 +14,14 @@ _start:
>  foo:
>          nop
>
> -// 0x130A0 - 0x12000 - 5 =  4251
> -// 0x130A8 - 0x12005 - 5 =  4254
> +// 0x120A0 - 0x11000 - 5 =  4251
> +// 0x120A8 - 0x11005 - 5 =  4254
>  // DISASM:      _start:
> -// DISASM-NEXT:   12000: {{.*}} callq 4251
> -// DISASM-NEXT:   12005: {{.*}} callq 4254
> +// DISASM-NEXT:   11000: {{.*}} callq 4251
> +// DISASM-NEXT:   11005: {{.*}} callq 4254
>
>  // DISASM:      foo:
> -// DISASM-NEXT:   1200a: {{.*}} nop
> +// DISASM-NEXT:   1100a: {{.*}} nop
>
>  // CHECK:      Name: .got
>  // CHECK-NEXT: Type: SHT_PROGBITS
> @@ -29,7 +29,7 @@ foo:
>  // CHECK-NEXT:   SHF_ALLOC
>  // CHECK-NEXT:   SHF_WRITE
>  // CHECK-NEXT: ]
> -// CHECK-NEXT: Address: 0x130A0
> +// CHECK-NEXT: Address: 0x120A0
>  // CHECK-NEXT: Offset:
>  // CHECK-NEXT: Size: 16
>  // CHECK-NEXT: Link: 0
> @@ -38,11 +38,11 @@ foo:
>  // CHECK-NEXT: EntrySize: 0
>  // CHECK-NEXT: SectionData (
>  // 0x1200a in little endian
> -// CHECK-NEXT:   0000:  00000000 00000000 0A200100 00000000
> +// CHECK-NEXT:   0000:  00000000 00000000 0A100100 00000000
>  // CHECK-NEXT: )
>
>  // CHECK:      Relocations [
>  // CHECK-NEXT:   Section ({{.*}}) .rela.dyn {
> -// CHECK-NEXT:     0x130A0 R_X86_64_GLOB_DAT bar 0x0
> +// CHECK-NEXT:     0x120A0 R_X86_64_GLOB_DAT bar 0x0
>  // CHECK-NEXT:   }
>  // CHECK-NEXT: ]
>
> Modified: lld/trunk/test/elf2/local.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/local.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/local.s (original)
> +++ lld/trunk/test/elf2/local.s Sat Oct 10 18:25:39 2015
> @@ -37,7 +37,7 @@
>  // CHECK-NEXT:   }
>  // CHECK-NEXT:   Symbol {
>  // CHECK-NEXT:     Name: blah
> -// CHECK-NEXT:     Value: 0x11000
> +// CHECK-NEXT:     Value: 0x100B0
>  // 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: 0x11000
> +// CHECK-NEXT:     Value: 0x100B0
>  // 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: 0x11000
> +// CHECK-NEXT:     Value: 0x100B0
>  // 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: 0x11000
> +// CHECK-NEXT:     Value: 0x100B0
>  // CHECK-NEXT:     Size: 0
>  // CHECK-NEXT:     Binding: Global
>  // CHECK-NEXT:     Type: None
>
> Modified: lld/trunk/test/elf2/plt-i686.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/plt-i686.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/plt-i686.s (original)
> +++ lld/trunk/test/elf2/plt-i686.s Sat Oct 10 18:25:39 2015
> @@ -12,7 +12,7 @@
>  // CHECK-NEXT:   SHF_ALLOC
>  // CHECK-NEXT:   SHF_EXECINSTR
>  // CHECK-NEXT: ]
> -// CHECK-NEXT: Address: 0x12010
> +// CHECK-NEXT: Address: 0x11010
>  // CHECK-NEXT: Offset:
>  // CHECK-NEXT: Size: 16
>  // CHECK-NEXT: Link: 0
> @@ -21,34 +21,34 @@
>
>  // CHECK:      Relocations [
>  // CHECK-NEXT:   Section ({{.*}}) .rel.dyn {
> -// CHECK-NEXT:     0x13050 R_386_GLOB_DAT bar 0x0
> -// CHECK-NEXT:     0x13054 R_386_GLOB_DAT zed 0x0
> +// CHECK-NEXT:     0x12050 R_386_GLOB_DAT bar 0x0
> +// CHECK-NEXT:     0x12054 R_386_GLOB_DAT zed 0x0
>  // CHECK-NEXT:   }
>  // CHECK-NEXT: ]
>
>  // Unfortunately FileCheck can't do math, so we have to check for explicit
>  // values:
>
> -// 0x12010 - (0x12000 + 1) - 4 = 11
> -// 0x12010 - (0x12005 + 1) - 4 = 2
> -// 0x12018 - (0x1200a + 1) - 4 = 9
> +// 0x11010 - (0x11000 + 1) - 4 = 11
> +// 0x11010 - (0x11005 + 1) - 4 = 2
> +// 0x11018 - (0x1100a + 1) - 4 = 9
>
>  // DISASM:      _start:
> -// DISASM-NEXT:   12000:  e9 0b 00 00 00  jmp  11
> -// DISASM-NEXT:   12005:  e9 06 00 00 00  jmp  6
> -// DISASM-NEXT:   1200a:  e9 09 00 00 00  jmp  9
> +// DISASM-NEXT:   11000:  e9 0b 00 00 00  jmp  11
> +// DISASM-NEXT:   11005:  e9 06 00 00 00  jmp  6
> +// DISASM-NEXT:   1100a:  e9 09 00 00 00  jmp  9
>
> -// 0x13050 = 77904
> -// 0x13054 = 77908
> +// 0x12050 = 73808
> +// 0x12054 = 73812
>
>  // DISASM:      Disassembly of section .plt:
>  // DISASM-NEXT: .plt:
> -// DISASM-NEXT:   12010:  ff 25 {{.*}}       jmpl *77904
> -// DISASM-NEXT:   12016:  90                 nop
> -// DISASM-NEXT:   12017:  90                 nop
> -// DISASM-NEXT:   12018:  ff 25 {{.*}}       jmpl *77908
> -// DISASM-NEXT:   1201e:  90                 nop
> -// DISASM-NEXT:   1201f:  90                 nop
> +// DISASM-NEXT:   11010:  ff 25 {{.*}}       jmpl *73808
> +// DISASM-NEXT:   11016:  90                 nop
> +// DISASM-NEXT:   11017:  90                 nop
> +// DISASM-NEXT:   11018:  ff 25 {{.*}}       jmpl *73812
> +// DISASM-NEXT:   1101e:  90                 nop
> +// DISASM-NEXT:   1101f:  90                 nop
>
>  .global _start
>  _start:
>
> Modified: lld/trunk/test/elf2/plt.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/plt.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/plt.s (original)
> +++ lld/trunk/test/elf2/plt.s Sat Oct 10 18:25:39 2015
> @@ -12,7 +12,7 @@
>  // CHECK-NEXT:   SHF_ALLOC
>  // CHECK-NEXT:   SHF_EXECINSTR
>  // CHECK-NEXT: ]
> -// CHECK-NEXT: Address: 0x2020
> +// CHECK-NEXT: Address: 0x1020
>  // CHECK-NEXT: Offset:
>  // CHECK-NEXT: Size: 24
>  // CHECK-NEXT: Link: 0
> @@ -21,35 +21,35 @@
>
>  // CHECK:      Relocations [
>  // CHECK-NEXT:   Section ({{.*}}) .rela.dyn {
> -// CHECK-NEXT:     0x30A0 R_X86_64_GLOB_DAT bar 0x0
> -// CHECK-NEXT:     0x30A8 R_X86_64_GLOB_DAT zed 0x0
> -// CHECK-NEXT:     0x30B0 R_X86_64_GLOB_DAT _start 0x0
> +// CHECK-NEXT:     0x20A0 R_X86_64_GLOB_DAT bar 0x0
> +// CHECK-NEXT:     0x20A8 R_X86_64_GLOB_DAT zed 0x0
> +// CHECK-NEXT:     0x20B0 R_X86_64_GLOB_DAT _start 0x0
>  // CHECK-NEXT:   }
>  // CHECK-NEXT: ]
>
>  // Unfortunately FileCheck can't do math, so we have to check for explicit
>  // values:
>
> -// 0x12020 - (0x12000 + 1) - 4 = 27
> -// 0x12020 - (0x12005 + 1) - 4 = 22
> -// 0x12028 - (0x1200a + 1) - 4 = 25
> +// 0x11020 - (0x11000 + 1) - 4 = 27
> +// 0x11020 - (0x11005 + 1) - 4 = 22
> +// 0x11028 - (0x1100a + 1) - 4 = 25
>
>  // DISASM:      _start:
> -// DISASM-NEXT:   2000:  e9 {{.*}}       jmp  27
> -// DISASM-NEXT:   2005:  e9 {{.*}}       jmp  22
> -// DISASM-NEXT:   200a:  e9 {{.*}}       jmp  25
> +// DISASM-NEXT:   1000:  e9 {{.*}}       jmp  27
> +// DISASM-NEXT:   1005:  e9 {{.*}}       jmp  22
> +// DISASM-NEXT:   100a:  e9 {{.*}}       jmp  25
>
> -// 0x130A0 - 0x12026  = 4218
> -// 0x130A8 - 0x1202e  = 4218
> +// 0x120A0 - 0x11026  = 4218
> +// 0x120A8 - 0x1102e  = 4218
>
>  // DISASM:      Disassembly of section .plt:
>  // DISASM-NEXT: .plt:
> -// DISASM-NEXT:   2020:  ff 25 {{.*}}       jmpq *4218(%rip)
> -// DISASM-NEXT:   2026:  90                 nop
> -// DISASM-NEXT:   2027:  90                 nop
> -// DISASM-NEXT:   2028:  ff 25 {{.*}}       jmpq *4218(%rip)
> -// DISASM-NEXT:   202e:  90                 nop
> -// DISASM-NEXT:   202f:  90                 nop
> +// DISASM-NEXT:   1020:  ff 25 {{.*}}       jmpq *4218(%rip)
> +// DISASM-NEXT:   1026:  90                 nop
> +// DISASM-NEXT:   1027:  90                 nop
> +// DISASM-NEXT:   1028:  ff 25 {{.*}}       jmpq *4218(%rip)
> +// DISASM-NEXT:   102e:  90                 nop
> +// DISASM-NEXT:   102f:  90                 nop
>
>  .global _start
>  _start:
>
> Modified: lld/trunk/test/elf2/pre_init_fini_array.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/pre_init_fini_array.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/pre_init_fini_array.s (original)
> +++ lld/trunk/test/elf2/pre_init_fini_array.s Sat Oct 10 18:25:39 2015
> @@ -63,7 +63,7 @@ _start:
>  // CHECK-NEXT: ]
>
>  // CHECK:        Name: __fini_array_end
> -// CHECK-NEXT:   Value: 0x1301B
> +// CHECK-NEXT:   Value: 0x1201B
>  // CHECK-NEXT:   Size: 0
>  // CHECK-NEXT:   Binding: Local
>  // CHECK-NEXT:   Type: None
> @@ -81,7 +81,7 @@ _start:
>  // CHECK-NEXT: }
>  // CHECK-NEXT: Symbol {
>  // CHECK-NEXT:   Name: __init_array_end
> -// CHECK-NEXT:   Value: 0x13008
> +// CHECK-NEXT:   Value: 0x12008
>  // CHECK-NEXT:   Size: 0
>  // CHECK-NEXT:   Binding: Local
>  // CHECK-NEXT:   Type: None
> @@ -99,7 +99,7 @@ _start:
>  // CHECK-NEXT: }
>  // CHECK-NEXT: Symbol {
>  // CHECK-NEXT:   Name: __preinit_array_end
> -// CHECK-NEXT:   Value: 0x13011
> +// CHECK-NEXT:   Value: 0x12011
>  // CHECK-NEXT:   Size: 0
>  // CHECK-NEXT:   Binding: Local
>  // CHECK-NEXT:   Type: None
> @@ -125,16 +125,16 @@ _start:
>  // CHECK: FINI_ARRAYSZ         [[FINI_SIZE]] (bytes)
>
>
> -// 0x13008 - (0x12000 + 5) = 4099
> -// 0x13011 - (0x12005 + 5) = 4103
> -// 0x13000 - (0x1200a + 5) = 4081
> -// 0x13008 - (0x1200f + 5) = 4084
> -// 0x13011 - (0x12014 + 5) = 4088
> -// 0x1301B - (0x12019 + 5) = 4093
> +// 0x12008 - (0x11000 + 5) = 4099
> +// 0x12011 - (0x11005 + 5) = 4103
> +// 0x12000 - (0x1100a + 5) = 4081
> +// 0x12008 - (0x1100f + 5) = 4084
> +// 0x12011 - (0x11014 + 5) = 4088
> +// 0x1201B - (0x11019 + 5) = 4093
>  // DISASM:      _start:
> -// DISASM-NEXT:   12000:  e8 {{.*}}  callq  4099
> -// DISASM-NEXT:   12005:  e8 {{.*}}  callq  4103
> -// DISASM-NEXT:   1200a:  e8 {{.*}}  callq  4081
> -// DISASM-NEXT:   1200f:  e8 {{.*}}  callq  4084
> -// DISASM-NEXT:   12014:  e8 {{.*}}  callq  4088
> -// DISASM-NEXT:   12019:  e8 {{.*}}  callq  4093
> +// DISASM-NEXT:   11000:  e8 {{.*}}  callq  4099
> +// DISASM-NEXT:   11005:  e8 {{.*}}  callq  4103
> +// DISASM-NEXT:   1100a:  e8 {{.*}}  callq  4081
> +// DISASM-NEXT:   1100f:  e8 {{.*}}  callq  4084
> +// DISASM-NEXT:   11014:  e8 {{.*}}  callq  4088
> +// DISASM-NEXT:   11019:  e8 {{.*}}  callq  4093
>
> 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=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/program-header-layout.s (original)
> +++ lld/trunk/test/elf2/program-header-layout.s Sat Oct 10 18:25:39 2015
> @@ -23,7 +23,7 @@ _start:
>  # CHECK-NEXT:     SHF_ALLOC
>  # CHECK-NEXT:   ]
>  # CHECK-NEXT:   Address:
> -# CHECK-NEXT:   Offset: 0x1000
> +# CHECK-NEXT:   Offset: 0xE8
>  # CHECK-NEXT:   Size:
>  # CHECK-NEXT:   Link:
>  # CHECK-NEXT:   Info:
> @@ -49,8 +49,8 @@ _start:
>  # CHECK-NEXT:     Offset: 0x0
>  # CHECK-NEXT:     VirtualAddress:
>  # CHECK-NEXT:     PhysicalAddress:
> -# CHECK-NEXT:     FileSize: 4104
> -# CHECK-NEXT:     MemSize: 4104
> +# CHECK-NEXT:     FileSize: 240
> +# CHECK-NEXT:     MemSize: 240
>  # CHECK-NEXT:     Flags [
>  # CHECK-NEXT:       PF_R
>  # CHECK-NEXT:     ]
>
> Modified: lld/trunk/test/elf2/relative-dynamic-reloc.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/relative-dynamic-reloc.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/relative-dynamic-reloc.s (original)
> +++ lld/trunk/test/elf2/relative-dynamic-reloc.s Sat Oct 10 18:25:39 2015
> @@ -9,10 +9,10 @@
>  // CHECK-NEXT:   Section ({{.*}}) .rela.dyn {
>  // CHECK-NEXT:     0x[[FOO_ADDR:.*]] R_X86_64_RELATIVE - 0x[[FOO_ADDR]]
>  // CHECK-NEXT:     0x[[BAR_ADDR:.*]] R_X86_64_RELATIVE - 0x[[BAR_ADDR]]
> -// CHECK-NEXT:     0x2010 R_X86_64_RELATIVE - 0x2009
> +// CHECK-NEXT:     0x1010 R_X86_64_RELATIVE - 0x1009
>  // CHECK-NEXT:     0x{{.*}} R_X86_64_RELATIVE - 0x[[ZED_ADDR:.*]]
>  // CHECK-NEXT:     0x{{.*}} R_X86_64_RELATIVE - 0x[[FOO_ADDR]]
> -// CHECK-NEXT:     0x1008 R_X86_64_64 external 0x0
> +// CHECK-NEXT:     0x160 R_X86_64_64 external 0x0
>  // CHECK-NEXT:   }
>  // CHECK-NEXT: ]
>
>
> Modified: lld/trunk/test/elf2/relocation-i686.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/relocation-i686.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/relocation-i686.s (original)
> +++ lld/trunk/test/elf2/relocation-i686.s Sat Oct 10 18:25:39 2015
> @@ -27,14 +27,14 @@ R_386_PC32_2:
>
>  // CHECK: Disassembly of section .R_386_32:
>  // CHECK-NEXT: R_386_32:
> -// CHECK-NEXT:  12000: {{.*}} movl $73729, %edx
> +// CHECK-NEXT:  11000: {{.*}} movl $69633, %edx
>
>  // CHECK: Disassembly of section .R_386_PC32:
>  // CHECK-NEXT: R_386_PC32:
> -// CHECK-NEXT:   12005:  e8 04 00 00 00  calll 4
> +// CHECK-NEXT:   11005:  e8 04 00 00 00  calll 4
>
>  // CHECK:      R_386_PC32_2:
> -// CHECK-NEXT:   1200e:  90  nop
> +// CHECK-NEXT:   1100e:  90  nop
>
>  // Create a .got
>  movl bar at GOT, %eax
> @@ -45,8 +45,8 @@ movl bar at GOT, %eax
>  // ADDR-NEXT:   SHF_ALLOC
>  // ADDR-NEXT:   SHF_EXECINSTR
>  // ADDR-NEXT: ]
> -// ADDR-NEXT: Address: 0x12030
> -// ADDR-NEXT: Offset: 0x2030
> +// ADDR-NEXT: Address: 0x11030
> +// ADDR-NEXT: Offset: 0x1030
>  // ADDR-NEXT: Size: 8
>
>  // ADDR:      Name: .got
> @@ -55,24 +55,24 @@ movl bar at GOT, %eax
>  // ADDR-NEXT:   SHF_ALLOC
>  // ADDR-NEXT:   SHF_WRITE
>  // ADDR-NEXT: ]
> -// ADDR-NEXT: Address: 0x13050
> +// ADDR-NEXT: Address: 0x12050
>
>  .section .R_386_GOTPC,"ax", at progbits
>  R_386_GOTPC:
>   movl $_GLOBAL_OFFSET_TABLE_, %eax
>
> -// 0x13050 - 0x12014 = 4156
> +// 0x12050 - 0x11014 = 4156
>
>  // CHECK:      Disassembly of section .R_386_GOTPC:
>  // CHECK-NEXT: R_386_GOTPC:
> -// CHECK-NEXT:   12014:  {{.*}} movl  $4156, %eax
> +// CHECK-NEXT:   11014:  {{.*}} movl  $4156, %eax
>
>  .section .dynamic_reloc, "ax", at progbits
>   call bar
> -// 0x12030 - (0x12019 + 5) = 18
> +// 0x11030 - (0x11019 + 5) = 18
>  // CHECK:      Disassembly of section .dynamic_reloc:
>  // CHECK-NEXT: .dynamic_reloc:
> -// CHECK-NEXT:   12019:  e8 12 00 00 00 calll 18
> +// CHECK-NEXT:   11019:  e8 12 00 00 00 calll 18
>
>  .section .R_386_GOT32,"ax", at progbits
>  .global R_386_GOT32
> @@ -81,4 +81,4 @@ R_386_GOT32:
>  // This is the second symbol in the got, so the offset is 4.
>  // CHECK:      Disassembly of section .R_386_GOT32:
>  // CHECK-NEXT: R_386_GOT32:
> -// CHECK-NEXT:   1201e:  {{.*}} movl 4, %eax
> +// CHECK-NEXT:   1101e:  {{.*}} movl 4, %eax
>
> Modified: lld/trunk/test/elf2/relocation-local.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/relocation-local.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/relocation-local.s (original)
> +++ lld/trunk/test/elf2/relocation-local.s Sat Oct 10 18:25:39 2015
> @@ -20,7 +20,7 @@ R_X86_64_32:
>  // constants in hex.
>  // CHECK: Disassembly of section .text2:
>  // CHECK-NEXT: R_X86_64_32:
> -// CHECK-NEXT:  12009: {{.*}} movl $73737, %edx
> +// CHECK-NEXT:  11009: {{.*}} movl $69641, %edx
>
>  .section .R_X86_64_32S,"ax", at progbits
>  R_X86_64_32S:
> @@ -28,11 +28,11 @@ R_X86_64_32S:
>
>  // CHECK: Disassembly of section .R_X86_64_32S:
>  // CHECK-NEXT: R_X86_64_32S:
> -// CHECK-NEXT:  {{.*}}: {{.*}} movq -974839, %rdx
> +// CHECK-NEXT:  {{.*}}: {{.*}} movq -978935, %rdx
>
>  .section .R_X86_64_64,"a", at progbits
>  R_X86_64_64:
>   .quad R_X86_64_64
>
>  // CHECK:      Contents of section .R_X86_64_64:
> -// CHECK-NEXT:   11000 00100100 00000000
> +// CHECK-NEXT:   100e8 e8000100 00000000
>
> Modified: lld/trunk/test/elf2/relocation.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/relocation.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/relocation.s (original)
> +++ lld/trunk/test/elf2/relocation.s Sat Oct 10 18:25:39 2015
> @@ -12,8 +12,8 @@
>  // SEC-NEXT:   SHF_ALLOC
>  // SEC-NEXT:   SHF_EXECINSTR
>  // SEC-NEXT: ]
> -// SEC-NEXT: Address: 0x12020
> -// SEC-NEXT: Offset: 0x2020
> +// SEC-NEXT: Address: 0x11020
> +// SEC-NEXT: Offset: 0x1020
>  // SEC-NEXT: Size: 8
>
>  // SEC:         Name: .got
> @@ -22,7 +22,7 @@
>  // SEC-NEXT:     SHF_ALLOC
>  // SEC-NEXT:     SHF_WRITE
>  // SEC-NEXT:   ]
> -// SEC-NEXT:   Address: 0x130A0
> +// SEC-NEXT:   Address: 0x120A0
>  // SEC-NEXT:   Offset:
>  // SEC-NEXT:   Size: 16
>  // SEC-NEXT:   Link: 0
> @@ -44,11 +44,11 @@ lulz:
>
>  // CHECK: Disassembly of section .text:
>  // CHECK-NEXT: _start:
> -// CHECK-NEXT:   12000:  e8 04 00 00 00   callq 4
> -// CHECK-NEXT:   12005:
> +// CHECK-NEXT:   11000:  e8 04 00 00 00   callq 4
> +// CHECK-NEXT:   11005:
>
>  // CHECK:      lulz:
> -// CHECK-NEXT:   12009:  90  nop
> +// CHECK-NEXT:   11009:  90  nop
>
>
>  .section       .text2,"ax", at progbits
> @@ -60,7 +60,7 @@ R_X86_64_32:
>  // constants in hex.
>  // CHECK: Disassembly of section .text2:
>  // CHECK-NEXT: R_X86_64_32:
> -// CHECK-NEXT:  1200a: {{.*}} movl $73738, %edx
> +// CHECK-NEXT:  1100a: {{.*}} movl $69642, %edx
>
>  .section .R_X86_64_32S,"ax", at progbits
>  .global R_X86_64_32S
> @@ -69,16 +69,16 @@ R_X86_64_32S:
>
>  // CHECK: Disassembly of section .R_X86_64_32S:
>  // CHECK-NEXT: R_X86_64_32S:
> -// CHECK-NEXT:  {{.*}}: {{.*}} movq -974839, %rdx
> +// CHECK-NEXT:  {{.*}}: {{.*}} movq -978935, %rdx
>
>  .section .R_X86_64_PC32,"ax", at progbits
>  .global R_X86_64_PC32
>  R_X86_64_PC32:
>   call bar
> -// 0x12020 - (0x12017 + 5) = 4
> +// 0x11020 - (0x11017 + 5) = 4
>  // CHECK:      Disassembly of section .R_X86_64_PC32:
>  // CHECK-NEXT: R_X86_64_PC32:
> -// CHECK-NEXT:  12017:   e8 04 00 00 00  callq  4
> +// CHECK-NEXT:  11017:   e8 04 00 00 00  callq  4
>
>  .section .R_X86_64_64,"a", at progbits
>  .global R_X86_64_64
> @@ -86,14 +86,14 @@ R_X86_64_64:
>   .quad R_X86_64_64
>
>  // CHECK:      Contents of section .R_X86_64_64:
> -// CHECK-NEXT:   11000 00100100 00000000
> +// CHECK-NEXT:   10158 58010100 00000000
>
>  .section .R_X86_64_GOTPCREL,"a", at progbits
>  .global R_X86_64_GOTPCREL
>  R_X86_64_GOTPCREL:
>   .long zed at gotpcrel
>
> -// 0x130A8 - 0x11008 = 8352
> -// 8352 = 0x80200000   in little endian
> +// 0x120A8 - 0x10160 = 8008
> +// 8008 = 0x481f0000   in little endian
>  // CHECK:      Contents of section .R_X86_64_GOTPCREL
> -// CHECK-NEXT:   11008 a0200000
> +// CHECK-NEXT:   10160 481f0000
>
> Modified: lld/trunk/test/elf2/shared.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/shared.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/shared.s (original)
> +++ lld/trunk/test/elf2/shared.s Sat Oct 10 18:25:39 2015
> @@ -14,7 +14,7 @@
>  // SO-NEXT: Flags [
>  // SO-NEXT: ]
>  // SO-NEXT: Address:
> -// SO-NEXT: Offset: 0x2030
> +// SO-NEXT: Offset: 0x1030
>  // SO-NEXT: Size:
>  // SO-NEXT: Link:
>  // SO-NEXT: Info:
> @@ -46,7 +46,7 @@
>  // CHECK-NEXT:     SHF_ALLOC
>  // CHECK-NEXT:   ]
>  // CHECK-NEXT:   Address: [[DYNSYMADDR:.*]]
> -// CHECK-NEXT:   Offset: 0x101C
> +// CHECK-NEXT:   Offset: 0x110
>  // CHECK-NEXT:   Size:
>  // CHECK-NEXT:   Link: [[DYNSTR:.*]]
>  // CHECK-NEXT:   Info: 1
> @@ -145,7 +145,7 @@
>  // CHECK-NEXT:   }
>  // CHECK-NEXT:   Symbol {
>  // CHECK-NEXT:     Name: _start
> -// CHECK-NEXT:     Value: 0x12000
> +// CHECK-NEXT:     Value: 0x11000
>  // CHECK-NEXT:     Size: 0
>  // CHECK-NEXT:     Binding: Global
>  // CHECK-NEXT:     Type: None
> @@ -184,7 +184,7 @@
>  // CHECK-NEXT:   }
>  // CHECK-NEXT:   Symbol {
>  // CHECK-NEXT:     Name: _start@
> -// CHECK-NEXT:     Value: 0x12000
> +// CHECK-NEXT:     Value: 0x11000
>  // CHECK-NEXT:     Size: 0
>  // CHECK-NEXT:     Binding: Global
>  // CHECK-NEXT:     Type: Non
>
> Modified: lld/trunk/test/elf2/string-table.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/string-table.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/string-table.s (original)
> +++ lld/trunk/test/elf2/string-table.s Sat Oct 10 18:25:39 2015
> @@ -19,7 +19,7 @@ _start:
>  // CHECK-NEXT: Flags [
>  // CHECK-NEXT:  SHF_ALLOC
>  // CHECK-NEXT: ]
> -// CHECK-NEXT: Address: 0x11000
> +// CHECK-NEXT: Address: 0x100B0
>
>  // CHECK:      Name: foobar
>  // CHECK-NEXT: Type: SHT_PROGBITS
>
> Modified: lld/trunk/test/elf2/symbols.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/symbols.s?rev=249957&r1=249956&r2=249957&view=diff
> ==============================================================================
> --- lld/trunk/test/elf2/symbols.s (original)
> +++ lld/trunk/test/elf2/symbols.s Sat Oct 10 18:25:39 2015
> @@ -50,7 +50,7 @@ internal:
>  // CHECK-NEXT: Flags [
>  // CHECK-NEXT:   SHF_ALLOC
>  // CHECK-NEXT: ]
> -// CHECK-NEXT: Address: 0x11000
> +// CHECK-NEXT: Address: 0x10120
>
>  // CHECK:      Name: .text
>  // CHECK-NEXT: Type: SHT_PROGBITS
> @@ -58,7 +58,7 @@ internal:
>  // CHECK-NEXT:   SHF_ALLOC
>  // CHECK-NEXT:   SHF_EXECINSTR
>  // CHECK-NEXT: ]
> -// CHECK-NEXT: Address: 0x12000
> +// CHECK-NEXT: Address: 0x1100
>
>  // CHECK:      Name: .bss
>  // CHECK-NEXT: Type: SHT_NOBITS
> @@ -66,7 +66,7 @@ internal:
>  // CHECK-NEXT:   SHF_ALLOC
>  // CHECK-NEXT:   SHF_WRITE
>  // CHECK-NEXT: ]
> -// CHECK-NEXT: Address: 0x13000
> +// CHECK-NEXT: Address: 0x12000
>  // CHECK-NEXT: Offset: 0x2000
>  // CHECK-NEXT: Size: 4
>
> @@ -82,7 +82,7 @@ internal:
>  // CHECK-NEXT:   }
>  // CHECK-NEXT: Symbol {
>  // CHECK-NEXT:     Name: hidden
> -// CHECK-NEXT:     Value: 0x11008
> +// CHECK-NEXT:     Value: 0x10128
>  // CHECK-NEXT:     Size: 0
>  // CHECK-NEXT:     Binding: Local
>  // CHECK-NEXT:     Type: None
> @@ -91,7 +91,7 @@ internal:
>  // CHECK-NEXT:   }
>  // CHECK-NEXT:   Symbol {
>  // CHECK-NEXT:     Name: internal
> -// CHECK-NEXT:     Value: 0x11008
> +// CHECK-NEXT:     Value: 0x10128
>  // CHECK-NEXT:     Size: 0
>  // CHECK-NEXT:     Binding: Local
>  // CHECK-NEXT:     Type: None
> @@ -100,7 +100,7 @@ internal:
>  // CHECK-NEXT:   }
>  // CHECK-NEXT:   Symbol {
>  // CHECK-NEXT:     Name: _start
> -// CHECK-NEXT:     Value: 0x12000
> +// CHECK-NEXT:     Value: 0x11000
>  // CHECK-NEXT:     Size: 0
>  // CHECK-NEXT:     Binding: Global (0x1)
>  // CHECK-NEXT:     Type: Function
> @@ -127,7 +127,7 @@ internal:
>  // CHECK-NEXT:   }
>  // CHECK-NEXT:   Symbol {
>  // CHECK-NEXT:     Name: common
> -// CHECK-NEXT:     Value: 0x13000
> +// CHECK-NEXT:     Value: 0x12000
>  // CHECK-NEXT:     Size: 4
>  // CHECK-NEXT:     Binding: Global
>  // CHECK-NEXT:     Type: Object
> @@ -136,7 +136,7 @@ internal:
>  // CHECK-NEXT:   }
>  // CHECK-NEXT:   Symbol {
>  // CHECK-NEXT:     Name: foo
> -// CHECK-NEXT:     Value: 0x12000
> +// CHECK-NEXT:     Value: 0x11000
>  // CHECK-NEXT:     Size: 0
>  // CHECK-NEXT:     Binding: Weak (0x2)
>  // CHECK-NEXT:     Type: Object
> @@ -145,7 +145,7 @@ internal:
>  // CHECK-NEXT:   }
>  // CHECK-NEXT:   Symbol {
>  // CHECK-NEXT:     Name: protected
> -// CHECK-NEXT:     Value: 0x11008
> +// CHECK-NEXT:     Value: 0x10128
>  // CHECK-NEXT:     Size: 0
>  // CHECK-NEXT:     Binding: Global
>  // CHECK-NEXT:     Type: None
> @@ -154,7 +154,7 @@ internal:
>  // CHECK-NEXT:   }
>  // CHECK-NEXT:   Symbol {
>  // CHECK-NEXT:     Name: zed
> -// CHECK-NEXT:     Value: 0x11000
> +// CHECK-NEXT:     Value: 0x10120
>  // CHECK-NEXT:     Size: 0
>  // CHECK-NEXT:     Binding: Global (0x1)
>  // CHECK-NEXT:     Type: None
> @@ -163,7 +163,7 @@ internal:
>  // CHECK-NEXT:   }
>  // CHECK-NEXT:   Symbol {
>  // CHECK-NEXT:     Name: zed2
> -// CHECK-NEXT:     Value: 0x11004
> +// CHECK-NEXT:     Value: 0x10124
>  // CHECK-NEXT:     Size: 0
>  // CHECK-NEXT:     Binding: Global
>  // CHECK-NEXT:     Type: None
> @@ -172,7 +172,7 @@ internal:
>  // CHECK-NEXT:   }
>  // CHECK-NEXT:   Symbol {
>  // CHECK-NEXT:     Name: zed3
> -// CHECK-NEXT:     Value: 0x11008
> +// CHECK-NEXT:     Value: 0x10128
>  // CHECK-NEXT:     Size: 4
>  // CHECK-NEXT:     Binding: Global
>  // CHECK-NEXT:     Type: None
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list