[lld] r249752 - Revert: r249728 - Roll back r249726 and r249723 because they broke buildbots.

Hal Finkel via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 12 12:57:15 PDT 2015


----- Original Message -----
> From: "Rafael EspĂ­ndola" <rafael.espindola at gmail.com>
> To: "Hal Finkel" <hfinkel at anl.gov>
> Cc: "llvm-commits" <llvm-commits at lists.llvm.org>
> Sent: Friday, October 9, 2015 8:36:04 AM
> Subject: Re: [lld] r249752 - Revert: r249728 - Roll back r249726 and r249723 because they broke buildbots.
> 
> Can you add comments explaining the new values?
> 
> X86 has the same logic as X86_64, but all the other ones looks magic
> to me. Were the old values actually causing problems?

I had originally thought that they had been causing problems, but going back and restoring the original value (but keeping the page-size fix, which definitely is necessary), sill produces a working hello-world binary. Thus, I don't have a good answer for you, except to say that these are the same magic values that ld.gold uses. That having been said, I'd prefer to keep them this way. Poking around in the debugger, this makes the addresses look more like what I'm used to seeing, and FWIW, matching the behavior of existing linkers here seems like a prudent approach.

 -Hal

> 
> Cheers,
> Rafael
> 
> 
> 
> On 8 October 2015 at 17:25, Hal Finkel via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
> > Author: hfinkel
> > Date: Thu Oct  8 16:25:04 2015
> > New Revision: 249752
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=249752&view=rev
> > Log:
> > Revert: r249728 - Roll back r249726 and r249723 because they broke
> > buildbots.
> >
> > Reapply r249726 (and r249723), hopefully with the correct test
> > fixups this time.
> >
> > Original commit message:
> >
> > Address a FIXME in ELF/Writer.cpp: Make VAStart a target-dependent
> > property.
> > I've set the values for the existing targets to what I believe to
> > be the
> > correct values, and updated the regression tests accordingly.
> >
> > Modified:
> >     lld/trunk/ELF/Target.cpp
> >     lld/trunk/ELF/Target.h
> >     lld/trunk/ELF/Writer.cpp
> >     lld/trunk/test/elf2/aarch64-relocs.s
> >     lld/trunk/test/elf2/basic-aarch64.s
> >     lld/trunk/test/elf2/basic-mips.s
> >     lld/trunk/test/elf2/basic32be.s
> >     lld/trunk/test/elf2/basic64be.s
> >     lld/trunk/test/elf2/emulation.s
> >
> > Modified: lld/trunk/ELF/Target.cpp
> > URL:
> > http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Target.cpp?rev=249752&r1=249751&r2=249752&view=diff
> > ==============================================================================
> > --- lld/trunk/ELF/Target.cpp (original)
> > +++ lld/trunk/ELF/Target.cpp Thu Oct  8 16:25:04 2015
> > @@ -37,6 +37,7 @@ X86TargetInfo::X86TargetInfo() {
> >    PCRelReloc = R_386_PC32;
> >    GotReloc = R_386_GLOB_DAT;
> >    GotRefReloc = R_386_GOT32;
> > +  VAStart = 0x10000;
> >  }
> >
> >  void X86TargetInfo::writePltEntry(uint8_t *Buf, uint64_t
> >  GotEntryAddr,
> > @@ -91,6 +92,14 @@ X86_64TargetInfo::X86_64TargetInfo() {
> >    GotReloc = R_X86_64_GLOB_DAT;
> >    GotRefReloc = R_X86_64_PC32;
> >    RelativeReloc = R_X86_64_RELATIVE;
> > +
> > +  // On freebsd x86_64 the first page cannot be mmaped.
> > +  // On linux that is controled by vm.mmap_min_addr. At least on
> > some x86_64
> > +  // installs that is 65536, so the first 15 pages cannot be used.
> > +  // Given that, the smallest value that can be used in here is
> > 0x10000.
> > +  // If using 2MB pages, the smallest page aligned address that
> > works is
> > +  // 0x200000, but it looks like every OS uses 4k pages for
> > executables.
> > +  VAStart = 0x10000;
> >  }
> >
> >  void X86_64TargetInfo::writePltEntry(uint8_t *Buf, uint64_t
> >  GotEntryAddr,
> > @@ -192,6 +201,7 @@ void X86_64TargetInfo::relocateOne(uint8
> >  PPC64TargetInfo::PPC64TargetInfo() {
> >    // PCRelReloc = FIXME
> >    // GotReloc = FIXME
> > +  VAStart = 0x10000000;
> >  }
> >  void PPC64TargetInfo::writePltEntry(uint8_t *Buf, uint64_t
> >  GotEntryAddr,
> >                                      uint64_t PltEntryAddr) const
> >                                      {}
> > @@ -224,6 +234,7 @@ void PPC64TargetInfo::relocateOne(uint8_
> >  PPCTargetInfo::PPCTargetInfo() {
> >    // PCRelReloc = FIXME
> >    // GotReloc = FIXME
> > +  VAStart = 0x10000000;
> >  }
> >  void PPCTargetInfo::writePltEntry(uint8_t *Buf, uint64_t
> >  GotEntryAddr,
> >                                    uint64_t PltEntryAddr) const {}
> > @@ -239,6 +250,7 @@ void PPCTargetInfo::relocateOne(uint8_t
> >  ARMTargetInfo::ARMTargetInfo() {
> >    // PCRelReloc = FIXME
> >    // GotReloc = FIXME
> > +  VAStart = 0x8000;
> >  }
> >  void ARMTargetInfo::writePltEntry(uint8_t *Buf, uint64_t
> >  GotEntryAddr,
> >                                    uint64_t PltEntryAddr) const {}
> > @@ -254,6 +266,7 @@ void ARMTargetInfo::relocateOne(uint8_t
> >  AArch64TargetInfo::AArch64TargetInfo() {
> >    // PCRelReloc = FIXME
> >    // GotReloc = FIXME
> > +  VAStart = 0x400000;
> >  }
> >  void AArch64TargetInfo::writePltEntry(uint8_t *Buf, uint64_t
> >  GotEntryAddr,
> >                                        uint64_t PltEntryAddr) const
> >                                        {}
> > @@ -333,6 +346,7 @@ MipsTargetInfo::MipsTargetInfo() {
> >    // PCRelReloc = FIXME
> >    // GotReloc = FIXME
> >    DefaultEntry = "__start";
> > +  VAStart = 0x400000;
> >  }
> >
> >  void MipsTargetInfo::writePltEntry(uint8_t *Buf, uint64_t
> >  GotEntryAddr,
> >
> > Modified: lld/trunk/ELF/Target.h
> > URL:
> > http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Target.h?rev=249752&r1=249751&r2=249752&view=diff
> > ==============================================================================
> > --- lld/trunk/ELF/Target.h (original)
> > +++ lld/trunk/ELF/Target.h Thu Oct  8 16:25:04 2015
> > @@ -21,6 +21,7 @@ class SymbolBody;
> >  class TargetInfo {
> >  public:
> >    llvm::StringRef getDefaultEntry() const { return DefaultEntry; }
> > +  uint64_t getVAStart() const { return VAStart; }
> >    unsigned getPCRelReloc() const { return PCRelReloc; }
> >    unsigned getGotReloc() const { return GotReloc; }
> >    unsigned getGotRefReloc() const { return GotRefReloc; }
> > @@ -37,6 +38,7 @@ public:
> >    virtual ~TargetInfo();
> >
> >  protected:
> > +  uint64_t VAStart;
> >    unsigned PCRelReloc;
> >    unsigned GotRefReloc;
> >    unsigned GotReloc;
> >
> > Modified: lld/trunk/ELF/Writer.cpp
> > URL:
> > http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Writer.cpp?rev=249752&r1=249751&r2=249752&view=diff
> > ==============================================================================
> > --- lld/trunk/ELF/Writer.cpp (original)
> > +++ lld/trunk/ELF/Writer.cpp Thu Oct  8 16:25:04 2015
> > @@ -24,15 +24,6 @@ using namespace lld::elf2;
> >
> >  static const int PageSize = 4096;
> >
> > -// On freebsd x86_64 the first page cannot be mmaped.
> > -// On linux that is controled by vm.mmap_min_addr. At least on
> > some x86_64
> > -// installs that is 65536, so the first 15 pages cannot be used.
> > -// Given that, the smallest value that can be used in here is
> > 0x10000.
> > -// If using 2MB pages, the smallest page aligned address that
> > works is
> > -// 0x200000, but it looks like every OS uses 4k pages for
> > executables.
> > -// FIXME: This is architecture and OS dependent.
> > -static const int VAStart = 0x10000;
> > -
> >  namespace {
> >
> >  static uint32_t toPHDRFlags(uint64_t Flags) {
> > @@ -102,7 +93,7 @@ private:
> >      return !Symtab.getSharedFiles().empty() || Config->Shared;
> >    }
> >    bool needsDynamicSections() const { return isOutputDynamic(); }
> > -  unsigned getVAStart() const { return Config->Shared ? 0 :
> > VAStart; }
> > +  unsigned getVAStart() const { return Config->Shared ? 0 :
> > Target->getVAStart(); }
> >
> >    std::unique_ptr<llvm::FileOutputBuffer> Buffer;
> >
> >
> > Modified: lld/trunk/test/elf2/aarch64-relocs.s
> > URL:
> > http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/aarch64-relocs.s?rev=249752&r1=249751&r2=249752&view=diff
> > ==============================================================================
> > --- lld/trunk/test/elf2/aarch64-relocs.s (original)
> > +++ lld/trunk/test/elf2/aarch64-relocs.s Thu Oct  8 16:25:04 2015
> > @@ -29,7 +29,7 @@ mystr:
> >  #
> >  # CHECK: Disassembly of section .R_AARCH64_ADR_PREL_PG_H121:
> >  # CHECK-NEXT: $x.2:
> > -# CHECK-NEXT:   11012:       01 00 00 90     adrp    x1, #0
> > +# CHECK-NEXT:   401012:       01 00 00 90     adrp    x1, #0
> >
> >  .section .R_AARCH64_ADD_ABS_LO12_NC,"ax", at progbits
> >    add x0, x0, :lo12:.L.str
> > @@ -43,4 +43,4 @@ mystr:
> >  #
> >  # CHECK: Disassembly of section .R_AARCH64_ADD_ABS_LO12_NC:
> >  # CHECK-NEXT: $x.4:
> > -# CHECK-NEXT:   1101b:       00 7c 00 91     add     x0, x0, #31
> > +# CHECK-NEXT:   40101b:       00 7c 00 91     add     x0, x0, #31
> >
> > Modified: lld/trunk/test/elf2/basic-aarch64.s
> > URL:
> > http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/basic-aarch64.s?rev=249752&r1=249751&r2=249752&view=diff
> > ==============================================================================
> > --- lld/trunk/test/elf2/basic-aarch64.s (original)
> > +++ lld/trunk/test/elf2/basic-aarch64.s Thu Oct  8 16:25:04 2015
> > @@ -59,7 +59,7 @@ _start:
> >  # CHECK-NEXT:       SHF_ALLOC (0x2)
> >  # CHECK-NEXT:       SHF_EXECINSTR (0x4)
> >  # CHECK-NEXT:     ]
> > -# CHECK-NEXT:     Address: 0x11000
> > +# CHECK-NEXT:     Address: 0x401000
> >  # CHECK-NEXT:     Offset: 0x1000
> >  # CHECK-NEXT:     Size: 12
> >  # CHECK-NEXT:     Link: 0
> > @@ -75,7 +75,7 @@ _start:
> >  # CHECK-NEXT:       SHF_ALLOC (0x2)
> >  # CHECK-NEXT:       SHF_WRITE (0x1)
> >  # CHECK-NEXT:     ]
> > -# CHECK-NEXT:     Address: 0x1100C
> > +# CHECK-NEXT:     Address: 0x40100C
> >  # CHECK-NEXT:     Offset: 0x100C
> >  # CHECK-NEXT:     Size: 0
> >  # CHECK-NEXT:     Link: 0
> > @@ -91,7 +91,7 @@ _start:
> >  # CHECK-NEXT:       SHF_ALLOC (0x2)
> >  # CHECK-NEXT:       SHF_WRITE (0x1)
> >  # CHECK-NEXT:     ]
> > -# CHECK-NEXT:     Address: 0x1100C
> > +# CHECK-NEXT:     Address: 0x40100C
> >  # CHECK-NEXT:     Offset: 0x100C
> >  # CHECK-NEXT:     Size: 0
> >  # CHECK-NEXT:     Link: 0
> > @@ -140,7 +140,7 @@ _start:
> >  # CHECK-NEXT:   }
> >  # CHECK-NEXT:   Symbol {
> >  # CHECK-NEXT:     Name: $x.0 (41)
> > -# CHECK-NEXT:     Value: 0x11000
> > +# CHECK-NEXT:     Value: 0x401000
> >  # CHECK-NEXT:     Size: 0
> >  # CHECK-NEXT:     Binding: Local (0x0)
> >  # CHECK-NEXT:     Type: None (0x0)
> > @@ -161,8 +161,8 @@ _start:
> >  # CHECK-NEXT:   ProgramHeader {
> >  # CHECK-NEXT:     Type: PT_LOAD (0x1)
> >  # CHECK-NEXT:     Offset: 0x0
> > -# CHECK-NEXT:     VirtualAddress: 0x10000
> > -# CHECK-NEXT:     PhysicalAddress: 0x10000
> > +# CHECK-NEXT:     VirtualAddress: 0x400000
> > +# CHECK-NEXT:     PhysicalAddress: 0x400000
> >  # CHECK-NEXT:     FileSize: 176
> >  # CHECK-NEXT:     MemSize: 176
> >  # CHECK-NEXT:     Flags [
> > @@ -173,8 +173,8 @@ _start:
> >  # CHECK-NEXT:   ProgramHeader {
> >  # CHECK-NEXT:     Type: PT_LOAD (0x1)
> >  # CHECK-NEXT:     Offset: 0x1000
> > -# CHECK-NEXT:     VirtualAddress: 0x11000
> > -# CHECK-NEXT:     PhysicalAddress: 0x11000
> > +# CHECK-NEXT:     VirtualAddress: 0x401000
> > +# CHECK-NEXT:     PhysicalAddress: 0x401000
> >  # CHECK-NEXT:     FileSize: 12
> >  # CHECK-NEXT:     MemSize: 12
> >  # CHECK-NEXT:     Flags [ (0x5)
> >
> > Modified: lld/trunk/test/elf2/basic-mips.s
> > URL:
> > http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/basic-mips.s?rev=249752&r1=249751&r2=249752&view=diff
> > ==============================================================================
> > --- lld/trunk/test/elf2/basic-mips.s (original)
> > +++ lld/trunk/test/elf2/basic-mips.s Thu Oct  8 16:25:04 2015
> > @@ -25,7 +25,7 @@ __start:
> >  # CHECK-NEXT:   Type: Executable (0x2)
> >  # CHECK-NEXT:   Machine: EM_MIPS (0x8)
> >  # CHECK-NEXT:   Version: 1
> > -# CHECK-NEXT:   Entry: 0x12000
> > +# CHECK-NEXT:   Entry: 0x402000
> >  # CHECK-NEXT:   ProgramHeaderOffset: 0x34
> >  # CHECK-NEXT:   SectionHeaderOffset: 0x2074
> >  # CHECK-NEXT:   Flags [ (0x0)
> > @@ -59,7 +59,7 @@ __start:
> >  # CHECK-NEXT:     Flags [ (0x2)
> >  # CHECK-NEXT:       SHF_ALLOC (0x2)
> >  # CHECK-NEXT:     ]
> > -# CHECK-NEXT:     Address: 0x11000
> > +# CHECK-NEXT:     Address: 0x401000
> >  # CHECK-NEXT:     Offset: 0x1000
> >  # CHECK-NEXT:     Size: 24
> >  # CHECK-NEXT:     Link: 0
> > @@ -74,7 +74,7 @@ __start:
> >  # CHECK-NEXT:     Flags [ (0x2)
> >  # CHECK-NEXT:       SHF_ALLOC (0x2)
> >  # CHECK-NEXT:     ]
> > -# CHECK-NEXT:     Address: 0x11018
> > +# CHECK-NEXT:     Address: 0x401018
> >  # CHECK-NEXT:     Offset: 0x1018
> >  # CHECK-NEXT:     Size: 24
> >  # CHECK-NEXT:     Link: 0
> > @@ -90,7 +90,7 @@ __start:
> >  # CHECK-NEXT:       SHF_ALLOC (0x2)
> >  # CHECK-NEXT:       SHF_EXECINSTR (0x4)
> >  # CHECK-NEXT:     ]
> > -# CHECK-NEXT:     Address: 0x12000
> > +# CHECK-NEXT:     Address: 0x402000
> >  # CHECK-NEXT:     Offset: 0x2000
> >  # CHECK-NEXT:     Size: 12
> >  # CHECK-NEXT:     Link: 0
> > @@ -106,7 +106,7 @@ __start:
> >  # CHECK-NEXT:       SHF_ALLOC (0x2)
> >  # CHECK-NEXT:       SHF_WRITE (0x1)
> >  # CHECK-NEXT:     ]
> > -# CHECK-NEXT:     Address: 0x12010
> > +# CHECK-NEXT:     Address: 0x402010
> >  # CHECK-NEXT:     Offset: 0x2010
> >  # CHECK-NEXT:     Size: 0
> >  # CHECK-NEXT:     Link: 0
> > @@ -122,7 +122,7 @@ __start:
> >  # CHECK-NEXT:       SHF_ALLOC (0x2)
> >  # CHECK-NEXT:       SHF_WRITE (0x1)
> >  # CHECK-NEXT:     ]
> > -# CHECK-NEXT:     Address: 0x12010
> > +# CHECK-NEXT:     Address: 0x402010
> >  # CHECK-NEXT:     Offset: 0x2010
> >  # CHECK-NEXT:     Size: 0
> >  # CHECK-NEXT:     Link: 0
> > @@ -171,7 +171,7 @@ __start:
> >  # CHECK-NEXT:   }
> >  # CHECK-NEXT:   Symbol {
> >  # CHECK-NEXT:     Name: __start (7)
> > -# CHECK-NEXT:     Value: 0x12000
> > +# CHECK-NEXT:     Value: 0x402000
> >  # CHECK-NEXT:     Size: 0
> >  # CHECK-NEXT:     Binding: Global (0x1)
> >  # CHECK-NEXT:     Type: None (0x0)
> > @@ -183,8 +183,8 @@ __start:
> >  # CHECK-NEXT:   ProgramHeader {
> >  # CHECK-NEXT:     Type: PT_LOAD (0x1)
> >  # CHECK-NEXT:     Offset: 0x0
> > -# CHECK-NEXT:     VirtualAddress: 0x10000
> > -# CHECK-NEXT:     PhysicalAddress: 0x10000
> > +# CHECK-NEXT:     VirtualAddress: 0x400000
> > +# CHECK-NEXT:     PhysicalAddress: 0x400000
> >  # CHECK-NEXT:     FileSize: 4144
> >  # CHECK-NEXT:     MemSize: 4144
> >  # CHECK-NEXT:     Flags [ (0x4)
> > @@ -195,8 +195,8 @@ __start:
> >  # CHECK-NEXT:   ProgramHeader {
> >  # CHECK-NEXT:     Type: PT_LOAD (0x1)
> >  # CHECK-NEXT:     Offset: 0x2000
> > -# CHECK-NEXT:     VirtualAddress: 0x12000
> > -# CHECK-NEXT:     PhysicalAddress: 0x12000
> > +# CHECK-NEXT:     VirtualAddress: 0x402000
> > +# CHECK-NEXT:     PhysicalAddress: 0x402000
> >  # CHECK-NEXT:     FileSize: 16
> >  # CHECK-NEXT:     MemSize: 16
> >  # CHECK-NEXT:     Flags [ (0x5)
> >
> > Modified: lld/trunk/test/elf2/basic32be.s
> > URL:
> > http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/basic32be.s?rev=249752&r1=249751&r2=249752&view=diff
> > ==============================================================================
> > --- lld/trunk/test/elf2/basic32be.s (original)
> > +++ lld/trunk/test/elf2/basic32be.s Thu Oct  8 16:25:04 2015
> > @@ -23,7 +23,7 @@ _start:
> >  # CHECK-NEXT:   Type: Executable (0x2)
> >  # CHECK-NEXT:   Machine: EM_PPC (0x14)
> >  # CHECK-NEXT:   Version: 1
> > -# CHECK-NEXT:   Entry: 0x11000
> > +# CHECK-NEXT:   Entry: 0x10001000
> >  # CHECK-NEXT:   ProgramHeaderOffset: 0x34
> >  # CHECK-NEXT:   SectionHeaderOffset: 0x1058
> >  # CHECK-NEXT:   Flags [ (0x0)
> > @@ -58,7 +58,7 @@ _start:
> >  # CHECK-NEXT:       SHF_ALLOC (0x2)
> >  # CHECK-NEXT:       SHF_EXECINSTR (0x4)
> >  # CHECK-NEXT:     ]
> > -# CHECK-NEXT:     Address: 0x11000
> > +# CHECK-NEXT:     Address: 0x10001000
> >  # CHECK-NEXT:     Offset: 0x1000
> >  # CHECK-NEXT:     Size: 12
> >  # CHECK-NEXT:     Link: 0
> > @@ -74,7 +74,7 @@ _start:
> >  # CHECK-NEXT:       SHF_ALLOC (0x2)
> >  # CHECK-NEXT:       SHF_WRITE (0x1)
> >  # CHECK-NEXT:     ]
> > -# CHECK-NEXT:     Address: 0x1100C
> > +# CHECK-NEXT:     Address: 0x1000100C
> >  # CHECK-NEXT:     Offset: 0x100C
> >  # CHECK-NEXT:     Size: 0
> >  # CHECK-NEXT:     Link: 0
> > @@ -90,7 +90,7 @@ _start:
> >  # CHECK-NEXT:       SHF_ALLOC (0x2)
> >  # CHECK-NEXT:       SHF_WRITE (0x1)
> >  # CHECK-NEXT:     ]
> > -# CHECK-NEXT:     Address: 0x1100C
> > +# CHECK-NEXT:     Address: 0x1000100C
> >  # CHECK-NEXT:     Offset: 0x100C
> >  # CHECK-NEXT:     Size: 0
> >  # CHECK-NEXT:     Link: 0
> > @@ -131,8 +131,8 @@ _start:
> >  # CHECK-NEXT:   ProgramHeader {
> >  # CHECK-NEXT:     Type: PT_LOAD (0x1)
> >  # CHECK-NEXT:     Offset: 0x0
> > -# CHECK-NEXT:     VirtualAddress: 0x10000
> > -# CHECK-NEXT:     PhysicalAddress: 0x10000
> > +# CHECK-NEXT:     VirtualAddress: 0x10000000
> > +# CHECK-NEXT:     PhysicalAddress: 0x10000000
> >  # CHECK-NEXT:     FileSize: 116
> >  # CHECK-NEXT:     MemSize: 116
> >  # CHECK-NEXT:     Flags [
> > @@ -143,8 +143,8 @@ _start:
> >  # CHECK-NEXT:   ProgramHeader {
> >  # CHECK-NEXT:     Type: PT_LOAD (0x1)
> >  # CHECK-NEXT:     Offset: 0x1000
> > -# CHECK-NEXT:     VirtualAddress: 0x11000
> > -# CHECK-NEXT:     PhysicalAddress: 0x11000
> > +# CHECK-NEXT:     VirtualAddress: 0x10001000
> > +# CHECK-NEXT:     PhysicalAddress: 0x10001000
> >  # CHECK-NEXT:     FileSize: 12
> >  # CHECK-NEXT:     MemSize: 12
> >  # CHECK-NEXT:     Flags [ (0x5)
> >
> > Modified: lld/trunk/test/elf2/basic64be.s
> > URL:
> > http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/basic64be.s?rev=249752&r1=249751&r2=249752&view=diff
> > ==============================================================================
> > --- lld/trunk/test/elf2/basic64be.s (original)
> > +++ lld/trunk/test/elf2/basic64be.s Thu Oct  8 16:25:04 2015
> > @@ -28,7 +28,7 @@ _start:
> >  # CHECK-NEXT:   Type: Executable (0x2)
> >  # CHECK-NEXT:   Machine: EM_PPC64 (0x15)
> >  # CHECK-NEXT:   Version: 1
> > -# CHECK-NEXT:   Entry: 0x12000
> > +# CHECK-NEXT:   Entry: 0x10002000
> >  # CHECK-NEXT:   ProgramHeaderOffset: 0x40
> >  # CHECK-NEXT:   SectionHeaderOffset: 0x2078
> >  # CHECK-NEXT:   Flags [ (0x0)
> > @@ -65,7 +65,7 @@ _start:
> >  # CHECK-NEXT:       SHF_ALLOC (0x2)
> >  # CHECK-NEXT:       SHF_EXECINSTR (0x4)
> >  # CHECK-NEXT:     ]
> > -# CHECK-NEXT:     Address: 0x11000
> > +# CHECK-NEXT:     Address: 0x10001000
> >  # CHECK-NEXT:     Offset: 0x1000
> >  # CHECK-NEXT:     Size: 12
> >  # CHECK-NEXT:     Link: 0
> > @@ -83,7 +83,7 @@ _start:
> >  # CHECK-NEXT:       SHF_ALLOC (0x2)
> >  # CHECK-NEXT:       SHF_WRITE (0x1)
> >  # CHECK-NEXT:     ]
> > -# CHECK-NEXT:     Address: 0x1100C
> > +# CHECK-NEXT:     Address: 0x1000100C
> >  # CHECK-NEXT:     Offset: 0x100C
> >  # CHECK-NEXT:     Size: 0
> >  # CHECK-NEXT:     Link: 0
> > @@ -101,7 +101,7 @@ _start:
> >  # CHECK-NEXT:       SHF_ALLOC (0x2)
> >  # CHECK-NEXT:       SHF_WRITE (0x1)
> >  # CHECK-NEXT:     ]
> > -# CHECK-NEXT:     Address: 0x12000
> > +# CHECK-NEXT:     Address: 0x10002000
> >  # CHECK-NEXT:     Offset: 0x2000
> >  # CHECK-NEXT:     Size: 24
> >  # CHECK-NEXT:     Link: 0
> > @@ -109,7 +109,7 @@ _start:
> >  # CHECK-NEXT:     AddressAlignment: 1
> >  # CHECK-NEXT:     EntrySize: 0
> >  # CHECK-NEXT:     SectionData (
> > -# CHECK-NEXT:      0000: 00000000 00011000 00000000 00000000
> >  |................|
> > +# CHECK-NEXT:      0000: 00000000 10001000 00000000 00000000
> >  |................|
> >  # CHECK-NEXT:      0010: 00000000 00000000
> >                     |........|
> >  # CHECK-NEXT:     )
> >  # CHECK-NEXT:   }
> > @@ -121,7 +121,7 @@ _start:
> >  # CHECK-NEXT:       SHF_ALLOC (0x2)
> >  # CHECK-NEXT:       SHF_WRITE (0x1)
> >  # CHECK-NEXT:     ]
> > -# CHECK-NEXT:     Address: 0x12018
> > +# CHECK-NEXT:     Address: 0x10002018
> >  # CHECK-NEXT:     Offset: 0x2018
> >  # CHECK-NEXT:     Size: 0
> >  # CHECK-NEXT:     Link: 0
> > @@ -166,8 +166,8 @@ _start:
> >  # CHECK-NEXT:  ProgramHeader {
> >  # CHECK-NEXT:    Type: PT_LOAD (0x1)
> >  # CHECK-NEXT:    Offset: 0x0
> > -# CHECK-NEXT:    VirtualAddress: 0x10000
> > -# CHECK-NEXT:    PhysicalAddress: 0x10000
> > +# CHECK-NEXT:    VirtualAddress: 0x10000000
> > +# CHECK-NEXT:    PhysicalAddress: 0x10000000
> >  # CHECK-NEXT:    FileSize: 232
> >  # CHECK-NEXT:    MemSize: 232
> >  # CHECK-NEXT:    Flags [
> > @@ -178,8 +178,8 @@ _start:
> >  # CHECK-NEXT:  ProgramHeader {
> >  # CHECK-NEXT:    Type: PT_LOAD (0x1)
> >  # CHECK-NEXT:    Offset: 0x1000
> > -# CHECK-NEXT:    VirtualAddress: 0x11000
> > -# CHECK-NEXT:    PhysicalAddress: 0x11000
> > +# CHECK-NEXT:    VirtualAddress: 0x10001000
> > +# CHECK-NEXT:    PhysicalAddress: 0x10001000
> >  # CHECK-NEXT:    FileSize: 12
> >  # CHECK-NEXT:    MemSize: 12
> >  # CHECK-NEXT:    Flags [ (0x5)
> > @@ -191,8 +191,8 @@ _start:
> >  # CHECK-NEXT:  ProgramHeader {
> >  # CHECK-NEXT:    Type: PT_LOAD (0x1)
> >  # CHECK-NEXT:    Offset: 0x2000
> > -# CHECK-NEXT:    VirtualAddress: 0x12000
> > -# CHECK-NEXT:    PhysicalAddress: 0x12000
> > +# CHECK-NEXT:    VirtualAddress: 0x10002000
> > +# CHECK-NEXT:    PhysicalAddress: 0x10002000
> >  # CHECK-NEXT:    FileSize: 24
> >  # CHECK-NEXT:    MemSize: 24
> >  # CHECK-NEXT:    Flags [ (0x6)
> >
> > Modified: lld/trunk/test/elf2/emulation.s
> > URL:
> > http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/emulation.s?rev=249752&r1=249751&r2=249752&view=diff
> > ==============================================================================
> > --- lld/trunk/test/elf2/emulation.s (original)
> > +++ lld/trunk/test/elf2/emulation.s Thu Oct  8 16:25:04 2015
> > @@ -78,7 +78,7 @@
> >  # PPC64-NEXT:   Type: Executable (0x2)
> >  # PPC64-NEXT:   Machine: EM_PPC64 (0x15)
> >  # PPC64-NEXT:   Version: 1
> > -# PPC64-NEXT:   Entry: 0x11000
> > +# PPC64-NEXT:   Entry: 0x10001000
> >  # PPC64-NEXT:   ProgramHeaderOffset: 0x40
> >  # PPC64-NEXT:   SectionHeaderOffset: 0x1060
> >  # PPC64-NEXT:   Flags [ (0x0)
> > @@ -109,7 +109,7 @@
> >  # PPC-NEXT:   Type: Executable (0x2)
> >  # PPC-NEXT:   Machine: EM_PPC (0x14)
> >  # PPC-NEXT:   Version: 1
> > -# PPC-NEXT:   Entry: 0x11000
> > +# PPC-NEXT:   Entry: 0x10001000
> >  # PPC-NEXT:   ProgramHeaderOffset: 0x34
> >  # PPC-NEXT:   SectionHeaderOffset: 0x104C
> >  # PPC-NEXT:   Flags [ (0x0)
> > @@ -140,7 +140,7 @@
> >  # MIPS-NEXT:   Type: Executable (0x2)
> >  # MIPS-NEXT:   Machine: EM_MIPS (0x8)
> >  # MIPS-NEXT:   Version: 1
> > -# MIPS-NEXT:   Entry: 0x11030
> > +# MIPS-NEXT:   Entry: 0x401030
> >  # MIPS-NEXT:   ProgramHeaderOffset: 0x34
> >  # MIPS-NEXT:   SectionHeaderOffset: 0x1094
> >  # MIPS-NEXT:   Flags [ (0x0)
> > @@ -164,7 +164,7 @@
> >  # MIPSEL-NEXT:   Type: Executable (0x2)
> >  # MIPSEL-NEXT:   Machine: EM_MIPS (0x8)
> >  # MIPSEL-NEXT:   Version: 1
> > -# MIPSEL-NEXT:   Entry: 0x11030
> > +# MIPSEL-NEXT:   Entry: 0x401030
> >  # MIPSEL-NEXT:   ProgramHeaderOffset: 0x34
> >  # MIPSEL-NEXT:   SectionHeaderOffset: 0x1094
> >  # MIPSEL-NEXT:   Flags [ (0x0)
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
> 

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory


More information about the llvm-commits mailing list