From owner-svn-src-all@freebsd.org Sun Feb 5 19:38:04 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7A3B9CD236C; Sun, 5 Feb 2017 19:38:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 130A019CC; Sun, 5 Feb 2017 19:38:03 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v15Jc3xl039163; Sun, 5 Feb 2017 19:38:03 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v15Jc0jU039136; Sun, 5 Feb 2017 19:38:00 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201702051938.v15Jc0jU039136@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 5 Feb 2017 19:38:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r313297 - in vendor/lld/dist: ELF test/ELF X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Feb 2017 19:38:04 -0000 Author: dim Date: Sun Feb 5 19:38:00 2017 New Revision: 313297 URL: https://svnweb.freebsd.org/changeset/base/313297 Log: Vendor import of lld release_40 branch r294123: https://llvm.org/svn/llvm-project/lld/branches/release_40@294123 Added: vendor/lld/dist/test/ELF/relocatable-common.s (contents, props changed) Modified: vendor/lld/dist/ELF/Config.h vendor/lld/dist/ELF/Driver.cpp vendor/lld/dist/ELF/Options.td vendor/lld/dist/ELF/Symbols.cpp vendor/lld/dist/ELF/SyntheticSections.cpp vendor/lld/dist/ELF/Writer.cpp vendor/lld/dist/test/ELF/basic-mips.s vendor/lld/dist/test/ELF/eh-frame-hdr-abs-fde.s vendor/lld/dist/test/ELF/mips-64-disp.s vendor/lld/dist/test/ELF/mips-64-got.s vendor/lld/dist/test/ELF/mips-64-rels.s vendor/lld/dist/test/ELF/mips-got-and-copy.s vendor/lld/dist/test/ELF/mips-got-extsym.s vendor/lld/dist/test/ELF/mips-got-hilo.s vendor/lld/dist/test/ELF/mips-got-redundant.s vendor/lld/dist/test/ELF/mips-got-relocs.s vendor/lld/dist/test/ELF/mips-got-weak.s vendor/lld/dist/test/ELF/mips-got16.s vendor/lld/dist/test/ELF/mips-gp-ext.s vendor/lld/dist/test/ELF/mips-gp-lowest.s vendor/lld/dist/test/ELF/mips-gprel32-relocs-gp0.s vendor/lld/dist/test/ELF/mips-gprel32-relocs.s vendor/lld/dist/test/ELF/mips-hilo-gp-disp.s vendor/lld/dist/test/ELF/mips-n32-rels.s vendor/lld/dist/test/ELF/mips-options.s vendor/lld/dist/test/ELF/mips-tls-64.s vendor/lld/dist/test/ELF/mips-tls-hilo.s vendor/lld/dist/test/ELF/mips-tls-static.s vendor/lld/dist/test/ELF/mips-tls.s vendor/lld/dist/test/ELF/mips-xgot-order.s Modified: vendor/lld/dist/ELF/Config.h ============================================================================== --- vendor/lld/dist/ELF/Config.h Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/ELF/Config.h Sun Feb 5 19:38:00 2017 (r313297) @@ -98,6 +98,7 @@ struct Configuration { bool Bsymbolic; bool BsymbolicFunctions; bool ColorDiagnostics = false; + bool DefineCommon; bool Demangle = true; bool DisableVerify; bool EhFrameHdr; Modified: vendor/lld/dist/ELF/Driver.cpp ============================================================================== --- vendor/lld/dist/ELF/Driver.cpp Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/ELF/Driver.cpp Sun Feb 5 19:38:00 2017 (r313297) @@ -496,6 +496,8 @@ void LinkerDriver::readConfigs(opt::Inpu Config->Pie = getArg(Args, OPT_pie, OPT_nopie, false); Config->PrintGcSections = Args.hasArg(OPT_print_gc_sections); Config->Relocatable = Args.hasArg(OPT_relocatable); + Config->DefineCommon = getArg(Args, OPT_define_common, OPT_no_define_common, + !Config->Relocatable); Config->Discard = getDiscardOption(Args); Config->SaveTemps = Args.hasArg(OPT_save_temps); Config->SingleRoRx = Args.hasArg(OPT_no_rosegment); Modified: vendor/lld/dist/ELF/Options.td ============================================================================== --- vendor/lld/dist/ELF/Options.td Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/ELF/Options.td Sun Feb 5 19:38:00 2017 (r313297) @@ -45,6 +45,9 @@ def color_diagnostics: F<"color-diagnost def color_diagnostics_eq: J<"color-diagnostics=">, HelpText<"Use colors in diagnostics">; +def define_common: F<"define-common">, + HelpText<"Assign space to common symbols">; + def disable_new_dtags: F<"disable-new-dtags">, HelpText<"Disable new dynamic tags">; @@ -130,6 +133,9 @@ def no_as_needed: F<"no-as-needed">, def no_color_diagnostics: F<"no-color-diagnostics">, HelpText<"Do not use colors in diagnostics">; +def no_define_common: F<"no-define-common">, + HelpText<"Do not assign space to common symbols">; + def no_demangle: F<"no-demangle">, HelpText<"Do not demangle symbol names">; @@ -255,6 +261,9 @@ def alias_Bstatic_dn: F<"dn">, Alias, Alias; def alias_Bstatic_static: F<"static">, Alias; def alias_L__library_path: J<"library-path=">, Alias; +def alias_define_common_d: Flag<["-"], "d">, Alias; +def alias_define_common_dc: F<"dc">, Alias; +def alias_define_common_dp: F<"dp">, Alias; def alias_discard_all_x: Flag<["-"], "x">, Alias; def alias_discard_locals_X: Flag<["-"], "X">, Alias; def alias_dynamic_list: J<"dynamic-list=">, Alias; @@ -320,7 +329,6 @@ def plugin_opt_eq: J<"plugin-opt=">; // Options listed below are silently ignored for now for compatibility. def allow_shlib_undefined: F<"allow-shlib-undefined">; def cref: Flag<["--"], "cref">; -def define_common: F<"define-common">; def demangle: F<"demangle">; def detect_odr_violations: F<"detect-odr-violations">; def g: Flag<["-"], "g">; @@ -347,9 +355,6 @@ def G: JoinedOrSeparate<["-"], "G">; def Qy : F<"Qy">; // Aliases for ignored options -def alias_define_common_d: Flag<["-"], "d">, Alias; -def alias_define_common_dc: F<"dc">, Alias; -def alias_define_common_dp: F<"dp">, Alias; def alias_Map_eq: J<"Map=">, Alias; def alias_version_script_version_script: J<"version-script=">, Alias; Modified: vendor/lld/dist/ELF/Symbols.cpp ============================================================================== --- vendor/lld/dist/ELF/Symbols.cpp Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/ELF/Symbols.cpp Sun Feb 5 19:38:00 2017 (r313297) @@ -73,6 +73,8 @@ static typename ELFT::uint getSymVA(cons return VA; } case SymbolBody::DefinedCommonKind: + if (!Config->DefineCommon) + return 0; return In::Common->OutSec->Addr + In::Common->OutSecOff + cast(Body).Offset; case SymbolBody::SharedKind: { Modified: vendor/lld/dist/ELF/SyntheticSections.cpp ============================================================================== --- vendor/lld/dist/ELF/SyntheticSections.cpp Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/ELF/SyntheticSections.cpp Sun Feb 5 19:38:00 2017 (r313297) @@ -59,6 +59,9 @@ template InputSection ArrayRef(), "COMMON"); Ret->Live = true; + if (!Config->DefineCommon) + return Ret; + // Sort the common symbols by alignment as an heuristic to pack them better. std::vector Syms = getCommonSymbols(); std::stable_sort(Syms.begin(), Syms.end(), @@ -434,7 +437,7 @@ template void GotSection MipsGotSection::MipsGotSection() : SyntheticSection(SHF_ALLOC | SHF_WRITE | SHF_MIPS_GPREL, - SHT_PROGBITS, Target->GotEntrySize, ".got") {} + SHT_PROGBITS, 16, ".got") {} template void MipsGotSection::addEntry(SymbolBody &Sym, uintX_t Addend, @@ -1168,10 +1171,14 @@ void SymbolTableSection::writeGlob ESym->setVisibility(Body->symbol()->Visibility); ESym->st_value = Body->getVA(); - if (const OutputSectionBase *OutSec = getOutputSection(Body)) + if (const OutputSectionBase *OutSec = getOutputSection(Body)) { ESym->st_shndx = OutSec->SectionIndex; - else if (isa>(Body)) + } else if (isa>(Body)) { ESym->st_shndx = SHN_ABS; + } else if (isa(Body)) { + ESym->st_shndx = SHN_COMMON; + ESym->st_value = cast(Body)->Alignment; + } if (Config->EMachine == EM_MIPS) { // On MIPS we need to mark symbol which has a PLT entry and requires @@ -1203,6 +1210,8 @@ SymbolTableSection::getOutputSecti break; } case SymbolBody::DefinedCommonKind: + if (!Config->DefineCommon) + return nullptr; return In::Common->OutSec; case SymbolBody::SharedKind: { auto &SS = cast>(*Sym); Modified: vendor/lld/dist/ELF/Writer.cpp ============================================================================== --- vendor/lld/dist/ELF/Writer.cpp Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/ELF/Writer.cpp Sun Feb 5 19:38:00 2017 (r313297) @@ -476,6 +476,16 @@ static int getPPC64SectionRank(StringRef .Default(1); } +// All sections with SHF_MIPS_GPREL flag should be grouped together +// because data in these sections is addressable with a gp relative address. +static int getMipsSectionRank(const OutputSectionBase *S) { + if ((S->Flags & SHF_MIPS_GPREL) == 0) + return 0; + if (S->getName() == ".got") + return 1; + return 2; +} + template bool elf::isRelroSection(const OutputSectionBase *Sec) { if (!Config->ZRelro) return false; @@ -494,8 +504,6 @@ template bool elf::isRelroS return true; if (In::Got && Sec == In::Got->OutSec) return true; - if (In::MipsGot && Sec == In::MipsGot->OutSec) - return true; if (Sec == Out::BssRelRo) return true; StringRef S = Sec->getName(); @@ -595,6 +603,8 @@ static bool compareSectionsNonScript(con if (Config->EMachine == EM_PPC64) return getPPC64SectionRank(A->getName()) < getPPC64SectionRank(B->getName()); + if (Config->EMachine == EM_MIPS) + return getMipsSectionRank(A) < getMipsSectionRank(B); return false; } Modified: vendor/lld/dist/test/ELF/basic-mips.s ============================================================================== --- vendor/lld/dist/test/ELF/basic-mips.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/basic-mips.s Sun Feb 5 19:38:00 2017 (r313297) @@ -35,7 +35,7 @@ __start: # CHECK-NEXT: ] # CHECK-NEXT: HeaderSize: 52 # CHECK-NEXT: ProgramHeaderEntrySize: 32 -# CHECK-NEXT: ProgramHeaderCount: 6 +# CHECK-NEXT: ProgramHeaderCount: 5 # CHECK-NEXT: SectionHeaderEntrySize: 40 # CHECK-NEXT: SectionHeaderCount: 11 # CHECK-NEXT: StringTableSectionIndex: 9 @@ -62,8 +62,8 @@ __start: # CHECK-NEXT: Flags [ (0x2) # CHECK-NEXT: SHF_ALLOC (0x2) # CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x100F8 -# CHECK-NEXT: Offset: 0xF8 +# CHECK-NEXT: Address: 0x100D8 +# CHECK-NEXT: Offset: 0xD8 # CHECK-NEXT: Size: 24 # CHECK-NEXT: Link: 0 # CHECK-NEXT: Info: 0 @@ -77,8 +77,8 @@ __start: # CHECK-NEXT: Flags [ (0x2) # CHECK-NEXT: SHF_ALLOC (0x2) # CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x10110 -# CHECK-NEXT: Offset: 0x110 +# CHECK-NEXT: Address: 0x100F0 +# CHECK-NEXT: Offset: 0xF0 # CHECK-NEXT: Size: 24 # CHECK-NEXT: Link: 0 # CHECK-NEXT: Info: 0 @@ -131,7 +131,7 @@ __start: # CHECK-NEXT: Size: 8 # CHECK-NEXT: Link: 0 # CHECK-NEXT: Info: 0 -# CHECK-NEXT: AddressAlignment: 4 +# CHECK-NEXT: AddressAlignment: 16 # CHECK-NEXT: EntrySize: 0 # CHECK-NEXT: } # CHECK-NEXT: Section { @@ -142,7 +142,7 @@ __start: # CHECK-NEXT: SHF_ALLOC (0x2) # CHECK-NEXT: SHF_WRITE (0x1) # CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x40000 +# CHECK-NEXT: Address: 0x30010 # CHECK-NEXT: Offset: 0x20008 # CHECK-NEXT: Size: 0 # CHECK-NEXT: Link: 0 @@ -246,8 +246,8 @@ __start: # CHECK-NEXT: Offset: 0x34 # CHECK-NEXT: VirtualAddress: 0x10034 # CHECK-NEXT: PhysicalAddress: 0x10034 -# CHECK-NEXT: FileSize: 192 -# CHECK-NEXT: MemSize: 192 +# CHECK-NEXT: FileSize: 160 +# CHECK-NEXT: MemSize: 160 # CHECK-NEXT: Flags [ (0x4) # CHECK-NEXT: PF_R (0x4) # CHECK-NEXT: ] @@ -258,8 +258,8 @@ __start: # CHECK-NEXT: Offset: 0x0 # CHECK-NEXT: VirtualAddress: 0x10000 # CHECK-NEXT: PhysicalAddress: 0x10000 -# CHECK-NEXT: FileSize: 296 -# CHECK-NEXT: MemSize: 296 +# CHECK-NEXT: FileSize: 264 +# CHECK-NEXT: MemSize: 264 # CHECK-NEXT: Flags [ (0x4) # CHECK-NEXT: PF_R (0x4) # CHECK-NEXT: ] @@ -284,7 +284,7 @@ __start: # CHECK-NEXT: VirtualAddress: 0x30000 # CHECK-NEXT: PhysicalAddress: 0x30000 # CHECK-NEXT: FileSize: 8 -# CHECK-NEXT: MemSize: 65536 +# CHECK-NEXT: MemSize: 16 # CHECK-NEXT: Flags [ # CHECK-NEXT: PF_R # CHECK-NEXT: PF_W @@ -292,18 +292,6 @@ __start: # CHECK-NEXT: Alignment: 65536 # CHECK-NEXT: } # CHECK-NEXT: ProgramHeader { -# CHECK-NEXT: Type: PT_GNU_RELRO (0x6474E552) -# CHECK-NEXT: Offset: 0x20000 -# CHECK-NEXT: VirtualAddress: 0x30000 -# CHECK-NEXT: PhysicalAddress: 0x30000 -# CHECK-NEXT: FileSize: 8 -# CHECK-NEXT: MemSize: 65536 -# CHECK-NEXT: Flags [ (0x4) -# CHECK-NEXT: PF_R (0x4) -# CHECK-NEXT: ] -# CHECK-NEXT: Alignment: 1 -# CHECK-NEXT: } -# CHECK-NEXT: ProgramHeader { # CHECK-NEXT: Type: PT_GNU_STACK # CHECK-NEXT: Offset: 0x0 # CHECK-NEXT: VirtualAddress: 0x0 Modified: vendor/lld/dist/test/ELF/eh-frame-hdr-abs-fde.s ============================================================================== --- vendor/lld/dist/test/ELF/eh-frame-hdr-abs-fde.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/eh-frame-hdr-abs-fde.s Sun Feb 5 19:38:00 2017 (r313297) @@ -9,10 +9,10 @@ # REQUIRES: mips # CHECK: Contents of section .eh_frame_hdr: -# CHECK-NEXT: 10148 011b033b 00000010 00000001 0000feb8 -# ^-- 0x20000 - 0x10148 +# CHECK-NEXT: 10128 011b033b 00000010 00000001 0000fed8 +# ^-- 0x20000 - 0x10138 # .text - .eh_frame_hdr -# CHECK-NEXT: 10158 0000002c +# CHECK-NEXT: 10138 0000002c # CHECK: Contents of section .text: # CHECK-NEXT: 20000 00000000 Modified: vendor/lld/dist/test/ELF/mips-64-disp.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-64-disp.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-64-disp.s Sun Feb 5 19:38:00 2017 (r313297) @@ -18,23 +18,22 @@ # CHECK-NEXT: 20010: 24 42 80 38 addiu $2, $2, -32712 # CHECK: 0000000000020014 .text 00000000 foo -# CHECK: 0000000000047ff0 *ABS* 00000000 .hidden _gp # CHECK: 0000000000020000 .text 00000000 __start # CHECK: 0000000000000000 g F *UND* 00000000 foo1a # GOT: Relocations [ # GOT-NEXT: ] # GOT-NEXT: Primary GOT { -# GOT-NEXT: Canonical gp value: 0x47FF0 +# GOT-NEXT: Canonical gp value: # GOT-NEXT: Reserved entries [ # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x40000 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32752 # GOT-NEXT: Initial: 0x0 # GOT-NEXT: Purpose: Lazy resolver # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x40008 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32744 # GOT-NEXT: Initial: 0x8000000000000000 # GOT-NEXT: Purpose: Module pointer (GNU extension) @@ -42,29 +41,29 @@ # GOT-NEXT: ] # GOT-NEXT: Local entries [ # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x40010 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32736 # GOT-NEXT: Initial: 0x20014 # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x40018 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32728 # GOT-NEXT: Initial: 0x20004 # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x40020 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32720 # GOT-NEXT: Initial: 0x20008 # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x40028 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32712 # GOT-NEXT: Initial: 0x2000C # GOT-NEXT: } # GOT-NEXT: ] # GOT-NEXT: Global entries [ # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x40030 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32704 # GOT-NEXT: Initial: 0x0 # GOT-NEXT: Value: 0x0 Modified: vendor/lld/dist/test/ELF/mips-64-got.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-64-got.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-64-got.s Sun Feb 5 19:38:00 2017 (r313297) @@ -19,23 +19,22 @@ # CHECK-NEXT: 20010: 24 42 80 38 addiu $2, $2, -32712 # CHECK: 0000000000020018 .text 00000000 foo -# CHECK: 0000000000047ff0 *ABS* 00000000 .hidden _gp # CHECK: 0000000000020000 .text 00000000 __start # CHECK: 0000000000020014 .text 00000000 bar # GOT: Relocations [ # GOT-NEXT: ] # GOT-NEXT: Primary GOT { -# GOT-NEXT: Canonical gp value: 0x47FF0 +# GOT-NEXT: Canonical gp value: # GOT-NEXT: Reserved entries [ # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x40000 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32752 # GOT-NEXT: Initial: 0x0 # GOT-NEXT: Purpose: Lazy resolver # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x40008 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32744 # GOT-NEXT: Initial: 0x8000000000000000 # GOT-NEXT: Purpose: Module pointer (GNU extension) @@ -43,29 +42,29 @@ # GOT-NEXT: ] # GOT-NEXT: Local entries [ # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x40010 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32736 # GOT-NEXT: Initial: 0x20000 # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x40018 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32728 # GOT-NEXT: Initial: 0x30000 # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x40020 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32720 # GOT-NEXT: Initial: 0x20014 # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x40028 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32712 # GOT-NEXT: Initial: 0x20018 # GOT-NEXT: } # GOT-NEXT: ] # GOT-NEXT: Global entries [ # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x40030 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32704 # GOT-NEXT: Initial: 0x0 # GOT-NEXT: Value: 0x0 Modified: vendor/lld/dist/test/ELF/mips-64-rels.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-64-rels.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-64-rels.s Sun Feb 5 19:38:00 2017 (r313297) @@ -20,7 +20,7 @@ # ^-- %lo(0x17ff0) # CHECK: Contents of section .rodata: -# CHECK-NEXT: 10190 ffffffff fffe8014 +# CHECK-NEXT: 10158 ffffffff fffe8014 # ^-- 0x20004 - 0x37ff0 = 0xfffffffffffe8014 # CHECK: 0000000000020004 .text 00000000 loc Modified: vendor/lld/dist/test/ELF/mips-got-and-copy.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-got-and-copy.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-got-and-copy.s Sun Feb 5 19:38:00 2017 (r313297) @@ -14,29 +14,29 @@ # CHECK: Relocations [ # CHECK-NEXT: Section (7) .rel.dyn { -# CHECK-NEXT: 0x{{[0-9A-F]+}} R_MIPS_COPY data0 -# CHECK-NEXT: 0x{{[0-9A-F]+}} R_MIPS_COPY data1 +# CHECK-NEXT: 0x[[DATA0:[0-9A-F]+]] R_MIPS_COPY data0 +# CHECK-NEXT: 0x[[DATA1:[0-9A-F]+]] R_MIPS_COPY data1 # CHECK-NEXT: } # CHECK-NEXT: ] # CHECK-NEXT: Primary GOT { -# CHECK-NEXT: Canonical gp value: 0x47FF0 +# CHECK-NEXT: Canonical gp value: # CHECK-NEXT: Reserved entries [ # CHECK: ] # CHECK-NEXT: Local entries [ # CHECK-NEXT: Entry { -# CHECK-NEXT: Address: 0x40008 +# CHECK-NEXT: Address: # CHECK-NEXT: Access: -32744 -# CHECK-NEXT: Initial: 0x50000 +# CHECK-NEXT: Initial: 0x[[DATA0]] # CHECK-NEXT: } # CHECK-NEXT: ] # CHECK-NEXT: Global entries [ # CHECK-NEXT: Entry { -# CHECK-NEXT: Address: 0x4000C +# CHECK-NEXT: Address: # CHECK-NEXT: Access: -32740 -# CHECK-NEXT: Initial: 0x50004 -# CHECK-NEXT: Value: 0x50004 -# CHECK-NEXT: Type: Object (0x1) -# CHECK-NEXT: Section: .bss (0xD) +# CHECK-NEXT: Initial: 0x[[DATA1]] +# CHECK-NEXT: Value: 0x[[DATA1]] +# CHECK-NEXT: Type: Object +# CHECK-NEXT: Section: .bss # CHECK-NEXT: Name: data1@ # CHECK-NEXT: } # CHECK-NEXT: ] Modified: vendor/lld/dist/test/ELF/mips-got-extsym.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-got-extsym.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-got-extsym.s Sun Feb 5 19:38:00 2017 (r313297) @@ -30,7 +30,7 @@ # CHECK: Local entries [ # CHECK-NEXT: Entry { -# CHECK-NEXT: Address: 0x40008 +# CHECK-NEXT: Address: # CHECK-NEXT: Access: -32744 # CHECK-NEXT: Initial: 0x20008 # ^-- bar @@ -38,7 +38,7 @@ # CHECK-NEXT: ] # CHECK-NEXT: Global entries [ # CHECK-NEXT: Entry { -# CHECK-NEXT: Address: 0x4000C +# CHECK-NEXT: Address: # CHECK-NEXT: Access: -32740 # CHECK-NEXT: Initial: 0x0 # CHECK-NEXT: Value: 0x0 Modified: vendor/lld/dist/test/ELF/mips-got-hilo.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-got-hilo.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-got-hilo.s Sun Feb 5 19:38:00 2017 (r313297) @@ -20,22 +20,22 @@ # GOT-NEXT: ] # GOT: Primary GOT { -# GOT-NEXT: Canonical gp value: 0x37FF0 +# GOT-NEXT: Canonical gp value: # GOT: Local entries [ # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x30008 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32744 # GOT-NEXT: Initial: 0x20000 # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x3000C +# GOT-NEXT: Address: # GOT-NEXT: Access: -32740 # GOT-NEXT: Initial: 0x20004 # GOT-NEXT: } # GOT-NEXT: ] # GOT-NEXT: Global entries [ # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x30010 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32736 # GOT-NEXT: Initial: 0x0 # GOT-NEXT: Value: 0x0 Modified: vendor/lld/dist/test/ELF/mips-got-redundant.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-got-redundant.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-got-redundant.s Sun Feb 5 19:38:00 2017 (r313297) @@ -8,25 +8,25 @@ # CHECK: Local entries [ # CHECK-NEXT: Entry { -# CHECK-NEXT: Address: 0x40008 +# CHECK-NEXT: Address: # CHECK-NEXT: Access: -32744 # CHECK-NEXT: Initial: 0x20000 # ^-- loc1 # CHECK-NEXT: } # CHECK-NEXT: Entry { -# CHECK-NEXT: Address: 0x4000C +# CHECK-NEXT: Address: # CHECK-NEXT: Access: -32740 # CHECK-NEXT: Initial: 0x30000 # ^-- loc2, loc3, loc4 # CHECK-NEXT: } # CHECK-NEXT: Entry { -# CHECK-NEXT: Address: 0x40010 +# CHECK-NEXT: Address: # CHECK-NEXT: Access: -32736 # CHECK-NEXT: Initial: 0x40000 # ^-- redundant # CHECK-NEXT: } # CHECK-NEXT: Entry { -# CHECK-NEXT: Address: 0x40014 +# CHECK-NEXT: Address: # CHECK-NEXT: Access: -32732 # CHECK-NEXT: Initial: 0x30008 # ^-- glb1 Modified: vendor/lld/dist/test/ELF/mips-got-relocs.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-got-relocs.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-got-relocs.s Sun Feb 5 19:38:00 2017 (r313297) @@ -45,21 +45,21 @@ v1: .word 0 # EXE_SYM: Sections: -# EXE_SYM: .got 0000000c 0000000000040000 DATA +# EXE_SYM: .got 0000000c 0000000000030010 DATA # EXE_SYM: SYMBOL TABLE: -# EXE_SYM: 00047ff0 *ABS* 00000000 .hidden _gp +# EXE_SYM: 00038000 *ABS* 00000000 .hidden _gp # ^-- .got + GP offset (0x7ff0) # EXE_SYM: 00030000 g .data 00000004 v1 # EXE_GOT_BE: Contents of section .got: -# EXE_GOT_BE: 40000 00000000 80000000 00030000 +# EXE_GOT_BE: 30010 00000000 80000000 00030000 # ^ ^ ^-- v1 (0x30000) # | +-- Module pointer (0x80000000) # +-- Lazy resolver (0x0) # EXE_GOT_EL: Contents of section .got: -# EXE_GOT_EL: 40000 00000000 00000080 00000300 +# EXE_GOT_EL: 30010 00000000 00000080 00000300 # ^ ^ ^-- v1 (0x30000) # | +-- Module pointer (0x80000000) # +-- Lazy resolver (0x0) @@ -69,20 +69,20 @@ v1: # EXE_DIS_EL: 20000: 18 80 02 3c lui $2, 32792 # DSO_SYM: Sections: -# DSO_SYM: .got 0000000c 0000000000030000 DATA +# DSO_SYM: .got 0000000c 0000000000020010 DATA # DSO_SYM: SYMBOL TABLE: -# DSO_SYM: 00037ff0 *ABS* 00000000 .hidden _gp +# DSO_SYM: 00028000 *ABS* 00000000 .hidden _gp # ^-- .got + GP offset (0x7ff0) # DSO_SYM: 00020000 g .data 00000004 v1 # DSO_GOT_BE: Contents of section .got: -# DSO_GOT_BE: 30000 00000000 80000000 00020000 +# DSO_GOT_BE: 20010 00000000 80000000 00020000 # ^ ^ ^-- v1 (0x20000) # | +-- Module pointer (0x80000000) # +-- Lazy resolver (0x0) # DSO_GOT_EL: Contents of section .got: -# DSO_GOT_EL: 30000 00000000 00000080 00000200 +# DSO_GOT_EL: 20010 00000000 00000080 00000200 # ^ ^ ^-- v1 (0x20000) # | +-- Module pointer (0x80000000) # +-- Lazy resolver (0x0) Modified: vendor/lld/dist/test/ELF/mips-got-weak.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-got-weak.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-got-weak.s Sun Feb 5 19:38:00 2017 (r313297) @@ -47,16 +47,16 @@ # NOSYM-NEXT: 0x70000013 MIPS_GOTSYM 0x1 # NOSYM: Primary GOT { -# NOSYM-NEXT: Canonical gp value: 0x37FF0 +# NOSYM-NEXT: Canonical gp value: # NOSYM-NEXT: Reserved entries [ # NOSYM-NEXT: Entry { -# NOSYM-NEXT: Address: 0x30000 +# NOSYM-NEXT: Address: # NOSYM-NEXT: Access: -32752 # NOSYM-NEXT: Initial: 0x0 # NOSYM-NEXT: Purpose: Lazy resolver # NOSYM-NEXT: } # NOSYM-NEXT: Entry { -# NOSYM-NEXT: Address: 0x30004 +# NOSYM-NEXT: Address: # NOSYM-NEXT: Access: -32748 # NOSYM-NEXT: Initial: 0x80000000 # NOSYM-NEXT: Purpose: Module pointer (GNU extension) @@ -66,7 +66,7 @@ # NOSYM-NEXT: ] # NOSYM-NEXT: Global entries [ # NOSYM-NEXT: Entry { -# NOSYM-NEXT: Address: 0x30008 +# NOSYM-NEXT: Address: # NOSYM-NEXT: Access: -32744 # NOSYM-NEXT: Initial: 0x20000 # NOSYM-NEXT: Value: 0x20000 @@ -75,7 +75,7 @@ # NOSYM-NEXT: Name: foo # NOSYM-NEXT: } # NOSYM-NEXT: Entry { -# NOSYM-NEXT: Address: 0x3000C +# NOSYM-NEXT: Address: # NOSYM-NEXT: Access: -32740 # NOSYM-NEXT: Initial: 0x0 # NOSYM-NEXT: Value: 0x0 @@ -84,7 +84,7 @@ # NOSYM-NEXT: Name: bar # NOSYM-NEXT: } # NOSYM-NEXT: Entry { -# NOSYM-NEXT: Address: 0x30010 +# NOSYM-NEXT: Address: # NOSYM-NEXT: Access: -32736 # NOSYM-NEXT: Initial: 0x20004 # NOSYM-NEXT: Value: 0x20004 @@ -115,16 +115,16 @@ # SYM-NEXT: 0x70000013 MIPS_GOTSYM 0x3 # SYM: Primary GOT { -# SYM-NEXT: Canonical gp value: 0x37FF0 +# SYM-NEXT: Canonical gp value: # SYM-NEXT: Reserved entries [ # SYM-NEXT: Entry { -# SYM-NEXT: Address: 0x30000 +# SYM-NEXT: Address: # SYM-NEXT: Access: -32752 # SYM-NEXT: Initial: 0x0 # SYM-NEXT: Purpose: Lazy resolver # SYM-NEXT: } # SYM-NEXT: Entry { -# SYM-NEXT: Address: 0x30004 +# SYM-NEXT: Address: # SYM-NEXT: Access: -32748 # SYM-NEXT: Initial: 0x80000000 # SYM-NEXT: Purpose: Module pointer (GNU extension) @@ -132,19 +132,19 @@ # SYM-NEXT: ] # SYM-NEXT: Local entries [ # SYM-NEXT: Entry { -# SYM-NEXT: Address: 0x30008 +# SYM-NEXT: Address: # SYM-NEXT: Access: -32744 # SYM-NEXT: Initial: 0x20000 # SYM-NEXT: } # SYM-NEXT: Entry { -# SYM-NEXT: Address: 0x3000C +# SYM-NEXT: Address: # SYM-NEXT: Access: -32740 # SYM-NEXT: Initial: 0x20004 # SYM-NEXT: } # SYM-NEXT: ] # SYM-NEXT: Global entries [ # SYM-NEXT: Entry { -# SYM-NEXT: Address: 0x30010 +# SYM-NEXT: Address: # SYM-NEXT: Access: -32736 # SYM-NEXT: Initial: 0x0 # SYM-NEXT: Value: 0x0 Modified: vendor/lld/dist/test/ELF/mips-got16.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-got16.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-got16.s Sun Feb 5 19:38:00 2017 (r313297) @@ -29,16 +29,16 @@ # GOT-NEXT: ] # GOT: Primary GOT { -# GOT-NEXT: Canonical gp value: 0x57FF0 +# GOT-NEXT: Canonical gp value: # GOT-NEXT: Reserved entries [ # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x50000 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32752 # GOT-NEXT: Initial: 0x0 # GOT-NEXT: Purpose: Lazy resolver # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x50004 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32748 # GOT-NEXT: Initial: 0x80000000 # GOT-NEXT: Purpose: Module pointer (GNU extension) @@ -46,44 +46,44 @@ # GOT-NEXT: ] # GOT-NEXT: Local entries [ # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x50008 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32744 # GOT-NEXT: Initial: 0x10000 # ^-- (0x1002c + 0x8000) & ~0xffff # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x5000C +# GOT-NEXT: Address: # GOT-NEXT: Access: -32740 # GOT-NEXT: Initial: 0x20000 # ^-- redundant unused entry # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x50010 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32736 # GOT-NEXT: Initial: 0x20000 # ^-- redundant unused entry # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x50014 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32732 # GOT-NEXT: Initial: 0x30000 # ^-- (0x29000 + 0x8000) & ~0xffff # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x50018 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32728 # GOT-NEXT: Initial: 0x40000 # ^-- (0x29000 + 0x10004 + 0x8000) & ~0xffff # ^-- (0x29000 + 0x18004 + 0x8000) & ~0xffff # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x5001C +# GOT-NEXT: Address: # GOT-NEXT: Access: -32724 # GOT-NEXT: Initial: 0x50000 # ^-- redundant unused entry # GOT-NEXT: } # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x50020 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32720 # GOT-NEXT: Initial: 0x41008 # ^-- 'bar' address @@ -91,7 +91,7 @@ # GOT-NEXT: ] # GOT-NEXT: Global entries [ # GOT-NEXT: Entry { -# GOT-NEXT: Address: 0x50024 +# GOT-NEXT: Address: # GOT-NEXT: Access: -32716 # GOT-NEXT: Initial: 0x0 # GOT-NEXT: Value: 0x0 Modified: vendor/lld/dist/test/ELF/mips-gp-ext.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-gp-ext.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-gp-ext.s Sun Feb 5 19:38:00 2017 (r313297) @@ -20,10 +20,10 @@ # REQUIRES: mips # REL: Contents of section .text: -# REL-NEXT: 0000 3c080000 2108010c 8f82fff0 +# REL-NEXT: 0000 3c080000 2108010c 8f82fffc # ^-- %hi(_gp_disp) # ^-- %lo(_gp_disp) -# ^-- 8 - (0x10c - 0xf4) +# ^-- 8 - (0x10c - 0x100) # G - (GP - .got) # REL: Contents of section .reginfo: @@ -40,10 +40,10 @@ # REL: 0000010c *ABS* 00000000 .hidden _gp # ABS: Contents of section .text: -# ABS-NEXT: 0000 3c080000 21080200 8f82fefc +# ABS-NEXT: 0000 3c080000 21080200 8f82ff08 # ^-- %hi(_gp_disp) # ^-- %lo(_gp_disp) -# ^-- 8 - (0x200 - 0xf4) +# ^-- 8 - (0x200 - 0x100) # G - (GP - .got) # ABS: Contents of section .reginfo: Modified: vendor/lld/dist/test/ELF/mips-gp-lowest.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-gp-lowest.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-gp-lowest.s Sun Feb 5 19:38:00 2017 (r313297) @@ -26,7 +26,7 @@ foo: # CHECK-NEXT: SHF_MIPS_GPREL # CHECK-NEXT: SHF_WRITE # CHECK-NEXT: ] -# CHECK-NEXT: Address: 0xDD +# CHECK-NEXT: Address: 0xE0 # CHECK: } # CHECK: Section { # CHECK: Name: .got @@ -40,5 +40,5 @@ foo: # CHECK: } # CHECK: Name: _gp (5) -# CHECK-NEXT: Value: 0x80CD -# ^-- 0xDD + 0x7ff0 +# CHECK-NEXT: Value: 0x80D0 +# ^-- 0xE0 + 0x7ff0 Modified: vendor/lld/dist/test/ELF/mips-gprel32-relocs-gp0.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-gprel32-relocs-gp0.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-gprel32-relocs-gp0.s Sun Feb 5 19:38:00 2017 (r313297) @@ -22,7 +22,7 @@ # DSO: GP: 0x27FF0 # DUMP: Contents of section .rodata: -# DUMP: 0114 ffff0004 ffff0008 +# DUMP: 00f4 ffff0004 ffff0008 # ^ 0x10004 + 0x7ff0 - 0x27ff0 # ^ 0x10008 + 0x7ff0 - 0x27ff0 Modified: vendor/lld/dist/test/ELF/mips-gprel32-relocs.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-gprel32-relocs.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-gprel32-relocs.s Sun Feb 5 19:38:00 2017 (r313297) @@ -21,7 +21,7 @@ v1: .gpword bar # CHECK: Contents of section .rodata: -# CHECK: 0114 fffe8014 fffe8018 +# CHECK: 00f4 fffe8014 fffe8018 # ^ 0x10004 - 0x27ff0 # ^ 0x10008 - 0x27ff0 Modified: vendor/lld/dist/test/ELF/mips-hilo-gp-disp.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-hilo-gp-disp.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-hilo-gp-disp.s Sun Feb 5 19:38:00 2017 (r313297) @@ -24,32 +24,32 @@ bar: # EXE-NEXT: __start: # EXE-NEXT: 20000: 3c 08 00 02 lui $8, 2 # ^-- %hi(0x47ff0-0x20000) -# EXE-NEXT: 20004: 21 08 7f f0 addi $8, $8, 32752 -# ^-- %lo(0x47ff0-0x20004+4) +# EXE-NEXT: 20004: 21 08 80 00 addi $8, $8, -32768 +# ^-- %lo(0x38000-0x20004+4) # EXE: bar: -# EXE-NEXT: 2000c: 3c 08 00 02 lui $8, 2 -# ^-- %hi(0x47ff0-0x2000c) -# EXE-NEXT: 20010: 21 08 7f e4 addi $8, $8, 32740 -# ^-- %lo(0x47ff0-0x20010+4) +# EXE-NEXT: 2000c: 3c 08 00 01 lui $8, 1 +# ^-- %hi(0x38000-0x2000c) +# EXE-NEXT: 20010: 21 08 7f f4 addi $8, $8, 32756 +# ^-- %lo(0x38000-0x20010+4) # EXE: SYMBOL TABLE: # EXE: 0002000c .text 00000000 bar -# EXE: 00047ff0 *ABS* 00000000 .hidden _gp +# EXE: 00038000 *ABS* 00000000 .hidden _gp # EXE: 00020000 .text 00000000 __start # SO: Disassembly of section .text: # SO-NEXT: __start: # SO-NEXT: 10000: 3c 08 00 02 lui $8, 2 -# ^-- %hi(0x37ff0-0x10000) -# SO-NEXT: 10004: 21 08 7f f0 addi $8, $8, 32752 -# ^-- %lo(0x37ff0-0x10004+4) +# ^-- %hi(0x28000-0x10000) +# SO-NEXT: 10004: 21 08 80 00 addi $8, $8, -32768 +# ^-- %lo(0x28000-0x10004+4) # SO: bar: -# SO-NEXT: 1000c: 3c 08 00 02 lui $8, 2 -# ^-- %hi(0x37ff0-0x1000c) -# SO-NEXT: 10010: 21 08 7f e4 addi $8, $8, 32740 -# ^-- %lo(0x37ff0-0x10010+4) +# SO-NEXT: 1000c: 3c 08 00 01 lui $8, 1 +# ^-- %hi(0x28000-0x1000c) +# SO-NEXT: 10010: 21 08 7f f4 addi $8, $8, 32756 +# ^-- %lo(0x28000-0x10010+4) # SO: SYMBOL TABLE: # SO: 0001000c .text 00000000 bar -# SO: 00037ff0 *ABS* 00000000 .hidden _gp +# SO: 00028000 *ABS* 00000000 .hidden _gp # SO: 00010000 .text 00000000 __start Modified: vendor/lld/dist/test/ELF/mips-n32-rels.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-n32-rels.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-n32-rels.s Sun Feb 5 19:38:00 2017 (r313297) @@ -38,7 +38,7 @@ # ^-- %lo(0x17ff0) # CHECK: Contents of section .rodata: -# CHECK-NEXT: 100f4 00020004 +# CHECK-NEXT: 100d4 00020004 # ^-- loc # CHECK: 00020004 .text 00000000 loc Modified: vendor/lld/dist/test/ELF/mips-options.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-options.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-options.s Sun Feb 5 19:38:00 2017 (r313297) @@ -17,11 +17,11 @@ __start: lui $gp, %hi(%neg(%gp_rel(g1))) # CHECK: Name: _gp -# CHECK-NEXT: Value: 0x100008258 +# CHECK-NEXT: Value: 0x[[GP:[0-9A-F]+]] # CHECK: MIPS Options { # CHECK-NEXT: ODK_REGINFO { -# CHECK-NEXT: GP: 0x100008258 +# CHECK-NEXT: GP: 0x[[GP]] # CHECK-NEXT: General Mask: 0x10000001 # CHECK-NEXT: Co-Proc Mask0: 0x0 # CHECK-NEXT: Co-Proc Mask1: 0x0 Modified: vendor/lld/dist/test/ELF/mips-tls-64.s ============================================================================== --- vendor/lld/dist/test/ELF/mips-tls-64.s Sun Feb 5 19:37:57 2017 (r313296) +++ vendor/lld/dist/test/ELF/mips-tls-64.s Sun Feb 5 19:38:00 2017 (r313297) @@ -23,11 +23,11 @@ # DIS-NEXT: 20010: 24 62 80 58 addiu $2, $3, -32680 # DIS: Contents of section .got: -# DIS-NEXT: 40008 00000000 00000000 80000000 00000000 -# DIS-NEXT: 40018 00000000 00000000 00000000 00000000 -# DIS-NEXT: 40028 00000000 00000000 00000000 00000001 -# DIS-NEXT: 40038 00000000 00000000 00000000 00000001 -# DIS-NEXT: 40048 ffffffff ffff8004 ffffffff ffff9004 +# DIS-NEXT: 30010 00000000 00000000 80000000 00000000 +# DIS-NEXT: 30020 00000000 00000000 00000000 00000000 +# DIS-NEXT: 30030 00000000 00000000 00000000 00000001 +# DIS-NEXT: 30040 00000000 00000000 00000000 00000001 +# DIS-NEXT: 30050 ffffffff ffff8004 ffffffff ffff9004 # DIS: 0000000000040000 l .tdata 00000000 .tdata # DIS: 0000000000040000 l .tdata 00000000 loc @@ -36,13 +36,13 @@ # CHECK: Relocations [ # CHECK-NEXT: Section (7) .rela.dyn { -# CHECK-NEXT: 0x40018 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE foo 0x0 -# CHECK-NEXT: 0x40020 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0 -# CHECK-NEXT: 0x40028 R_MIPS_TLS_TPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0 +# CHECK-NEXT: 0x30020 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE foo 0x0 +# CHECK-NEXT: 0x30028 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0 +# CHECK-NEXT: 0x30030 R_MIPS_TLS_TPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0 # CHECK-NEXT: } # CHECK-NEXT: ] # CHECK-NEXT: Primary GOT { -# CHECK-NEXT: Canonical gp value: 0x47FF8 +# CHECK-NEXT: Canonical gp value: 0x38000 # CHECK-NEXT: Reserved entries [ # CHECK: ] # CHECK-NEXT: Local entries [ @@ -60,25 +60,25 @@ # ^-- -32680 R_MIPS_TLS_GOTTPREL VA - 0x7000 bar # DIS-SO: Contents of section .got: -# DIS-SO-NEXT: 20008 00000000 00000000 80000000 00000000 -# DIS-SO-NEXT: 20018 00000000 00000000 00000000 00000000 -# DIS-SO-NEXT: 20028 00000000 00000000 00000000 00000000 -# DIS-SO-NEXT: 20038 00000000 00000000 00000000 00000000 -# DIS-SO-NEXT: 20048 00000000 00000000 00000000 00000000 +# DIS-SO-NEXT: 20000 00000000 00000000 80000000 00000000 +# DIS-SO-NEXT: 20010 00000000 00000000 00000000 00000000 +# DIS-SO-NEXT: 20020 00000000 00000000 00000000 00000000 +# DIS-SO-NEXT: 20030 00000000 00000000 00000000 00000000 +# DIS-SO-NEXT: 20040 00000000 00000000 00000000 00000000 # SO: Relocations [ # SO-NEXT: Section (7) .rela.dyn { -# SO-NEXT: 0x20030 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE - 0x0 -# SO-NEXT: 0x20040 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE bar 0x0 -# SO-NEXT: 0x20048 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE bar 0x0 -# SO-NEXT: 0x20050 R_MIPS_TLS_TPREL64/R_MIPS_NONE/R_MIPS_NONE bar 0x0 -# SO-NEXT: 0x20018 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE foo 0x0 -# SO-NEXT: 0x20020 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0 -# SO-NEXT: 0x20028 R_MIPS_TLS_TPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0 +# SO-NEXT: 0x20028 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE - 0x0 +# SO-NEXT: 0x20038 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE bar 0x0 +# SO-NEXT: 0x20040 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE bar 0x0 +# SO-NEXT: 0x20048 R_MIPS_TLS_TPREL64/R_MIPS_NONE/R_MIPS_NONE bar 0x0 +# SO-NEXT: 0x20010 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE foo 0x0 +# SO-NEXT: 0x20018 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0 +# SO-NEXT: 0x20020 R_MIPS_TLS_TPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0 # SO-NEXT: } # SO-NEXT: ] # SO-NEXT: Primary GOT { -# SO-NEXT: Canonical gp value: 0x27FF8 +# SO-NEXT: Canonical gp value: 0x27FF0 # SO-NEXT: Reserved entries [ # SO: ] # SO-NEXT: Local entries [ @@ -86,14 +86,14 @@ # SO-NEXT: Global entries [ # SO-NEXT: ] # SO-NEXT: Number of TLS and multi-GOT entries: 8 -# ^-- 0x20018 R_MIPS_TLS_GD R_MIPS_TLS_DTPMOD64 foo *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***