From 4c9ae67bb720da79d5a920f41322918aecf7b24f Mon Sep 17 00:00:00 2001 From: George Rimar Date: Fri, 11 May 2018 08:11:25 +0000 Subject: [PATCH] [ELF] - Revert of: r332038, r332054, r332060, r332061, r332062, r332063 This reverts "Mitigate relocation overflow [part 1 of 2]." and the following commits which were trying to fix the bots. At the moment of r332082, bots are still failing and we need to find the reason of test case breakages first of all. http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/17042/steps/test/logs/stdio http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/29845/steps/test/logs/stdio llvm-svn: 332085 --- lld/ELF/Writer.cpp | 21 +--- lld/test/ELF/aarch64-copy.s | 2 +- lld/test/ELF/aarch64-thunk-pi.s | 48 ++++---- lld/test/ELF/arm-copy.s | 2 +- lld/test/ELF/arm-execute-only.s | 8 +- lld/test/ELF/arm-exidx-shared.s | 4 +- lld/test/ELF/basic-ppc.s | 52 ++++----- lld/test/ELF/basic-ppc64.s | 50 ++++----- lld/test/ELF/dynamic-no-rosegment.s | 6 +- lld/test/ELF/dynsec-at-beginning.s | 16 --- lld/test/ELF/eh-frame-padding-no-rosegment.s | 4 +- lld/test/ELF/gc-merge-local-sym.s | 2 +- lld/test/ELF/gnu-ifunc-dyntags.s | 4 +- lld/test/ELF/i386-merge.s | 4 +- lld/test/ELF/i386-retpoline-nopic-linkerscript.s | 8 +- lld/test/ELF/i386-retpoline-pic-linkerscript.s | 8 +- lld/test/ELF/linkerscript/addr-zero.test | 2 +- lld/test/ELF/linkerscript/align-empty.test | 4 +- lld/test/ELF/linkerscript/dot-is-not-abs.s | 4 +- lld/test/ELF/linkerscript/emit-reloc.s | 4 +- lld/test/ELF/linkerscript/expr-sections.test | 10 +- .../ELF/linkerscript/implicit-program-header.test | 4 +- lld/test/ELF/linkerscript/locationcountererr2.s | 4 +- lld/test/ELF/linkerscript/merge-sections-syms.s | 4 +- lld/test/ELF/linkerscript/merge-sections.s | 2 +- lld/test/ELF/linkerscript/no-space.s | 6 +- lld/test/ELF/linkerscript/non-absolute.s | 4 +- lld/test/ELF/linkerscript/non-absolute2.test | 10 +- lld/test/ELF/linkerscript/non-alloc.s | 2 +- lld/test/ELF/linkerscript/orphan-first-cmd.test | 2 +- lld/test/ELF/linkerscript/out-of-order.s | 30 +---- lld/test/ELF/linkerscript/overlapping-sections.s | 6 +- lld/test/ELF/linkerscript/sections-sort.s | 10 +- lld/test/ELF/linkerscript/sort-non-script.s | 6 +- lld/test/ELF/linkerscript/symbol-only.test | 2 - lld/test/ELF/linkerscript/unused-synthetic.s | 6 +- lld/test/ELF/map-file.s | 29 +++-- lld/test/ELF/merge-gc-piece.s | 4 +- lld/test/ELF/merge-shared-str.s | 4 +- lld/test/ELF/merge-shared.s | 4 +- lld/test/ELF/merge-string.s | 22 ++-- lld/test/ELF/merge-sym.s | 4 +- lld/test/ELF/merge-to-non-alloc.s | 4 +- lld/test/ELF/mips-got-string.s | 2 +- lld/test/ELF/mips-gp-ext.s | 20 ++-- lld/test/ELF/mips-gp-lowest.s | 6 +- lld/test/ELF/note-noalloc.s | 2 +- lld/test/ELF/relocation-shared.s | 6 +- lld/test/ELF/relocation.s | 4 +- lld/test/ELF/relro-omagic.s | 4 +- lld/test/ELF/shared.s | 29 ++--- lld/test/ELF/sort-norosegment.s | 6 +- lld/test/ELF/synthetic-got.s | 18 +-- lld/test/ELF/verdef-defaultver.s | 8 +- lld/test/ELF/verdef.s | 8 +- lld/test/ELF/verneed.s | 125 ++++++++++----------- lld/test/ELF/version-script-extern.s | 4 +- lld/test/ELF/x86-64-retpoline-linkerscript.s | 8 +- lld/test/ELF/x86-64-retpoline-znow-linkerscript.s | 4 +- 59 files changed, 315 insertions(+), 371 deletions(-) delete mode 100644 lld/test/ELF/dynsec-at-beginning.s diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index ed507f2..bde43f3 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -697,12 +697,11 @@ enum RankFlags { RF_NOT_INTERP = 1 << 17, RF_NOT_ALLOC = 1 << 16, RF_WRITE = 1 << 15, - RF_EXEC_WRITE = 1 << 14, - RF_EXEC = 1 << 13, - RF_NON_TLS_BSS = 1 << 12, - RF_NON_TLS_BSS_RO = 1 << 11, - RF_NOT_TLS = 1 << 10, - RF_ALLOC_FIRST = 1 << 9, + RF_EXEC_WRITE = 1 << 13, + RF_EXEC = 1 << 12, + RF_NON_TLS_BSS = 1 << 11, + RF_NON_TLS_BSS_RO = 1 << 10, + RF_NOT_TLS = 1 << 9, RF_BSS = 1 << 8, RF_NOTE = 1 << 7, RF_PPC_NOT_TOCBSS = 1 << 6, @@ -733,16 +732,6 @@ static unsigned getSectionRank(const OutputSection *Sec) { if (!(Sec->Flags & SHF_ALLOC)) return Rank | RF_NOT_ALLOC; - // Place .dynsym and .dynstr at the beginning of SHF_ALLOC - // sections. We want to do this to mitigate the possibility that - // huge .dynsym and .dynstr sections placed between text sections - // cause relocation overflow. Note: .dynstr has SHT_STRTAB type and - // SHF_ALLOC attribute, whereas sections that only have SHT_STRTAB - // but without SHF_ALLOC is placed at the end. All "Sec" reaching - // here has SHF_ALLOC bit set. - if (Sec->Type == SHT_DYNSYM || Sec->Type == SHT_STRTAB) - return Rank | RF_ALLOC_FIRST; - // Sort sections based on their access permission in the following // order: R, RX, RWX, RW. This order is based on the following // considerations: diff --git a/lld/test/ELF/aarch64-copy.s b/lld/test/ELF/aarch64-copy.s index 0a8cadf..ffecf2f 100644 --- a/lld/test/ELF/aarch64-copy.s +++ b/lld/test/ELF/aarch64-copy.s @@ -90,4 +90,4 @@ _start: // RODATA: Contents of section .rodata: // S(z) = 0x40014 -// RODATA-NEXT: 10293 14000400 +// RODATA-NEXT: 101c8 14000400 diff --git a/lld/test/ELF/aarch64-thunk-pi.s b/lld/test/ELF/aarch64-thunk-pi.s index ddd5897..91e2b7f 100644 --- a/lld/test/ELF/aarch64-thunk-pi.s +++ b/lld/test/ELF/aarch64-thunk-pi.s @@ -33,13 +33,13 @@ low_target2: // Expect range extension thunks for .text_low // adrp calculation is (PC + signed immediate) & (!0xfff) // CHECK: __AArch64ADRPThunk_high_target: -// CHECK-NEXT: 70: 10 00 08 90 adrp x16, #268435456 -// CHECK-NEXT: 74: 10 02 03 91 add x16, x16, #192 -// CHECK-NEXT: 78: 00 02 1f d6 br x16 +// CHECK-NEXT: 10: 10 00 08 90 adrp x16, #268435456 +// CHECK-NEXT: 14: 10 82 04 91 add x16, x16, #288 +// CHECK-NEXT: 18: 00 02 1f d6 br x16 // CHECK: __AArch64ADRPThunk_high_target2: -// CHECK-NEXT: 7c: 10 00 08 90 adrp x16, #268435456 -// CHECK-NEXT: 80: 10 22 00 91 add x16, x16, #8 -// CHECK-NEXT: 84: 00 02 1f d6 br x16 +// CHECK-NEXT: 1c: 10 00 08 90 adrp x16, #268435456 +// CHECK-NEXT: 20: 10 22 00 91 add x16, x16, #8 +// CHECK-NEXT: 24: 00 02 1f d6 br x16 .section .text_high, "ax", %progbits @@ -50,7 +50,7 @@ high_target: bl low_target ret // CHECK: high_target: -// CHECK-NEXT: 10000000: 34 00 00 94 bl #208 +// CHECK-NEXT: 10000000: 4c 00 00 94 bl #304 // CHECK-NEXT: 10000004: c0 03 5f d6 ret .hidden high_target2 @@ -68,24 +68,24 @@ high_target2: // CHECK: __AArch64ADRPThunk_low_target2: // CHECK-NEXT: 10000010: 10 00 f8 90 adrp x16, #-268435456 -// CHECK-NEXT: 10000014: 10 a2 01 91 add x16, x16, #104 +// CHECK-NEXT: 10000014: 10 22 00 91 add x16, x16, #8 // CHECK-NEXT: 10000018: 00 02 1f d6 br x16 // CHECK: Disassembly of section .plt: // CHECK-NEXT: .plt: -// CHECK-NEXT: 100000a0: f0 7b bf a9 stp x16, x30, [sp, #-16]! -// CHECK-NEXT: 100000a4: 10 00 00 90 adrp x16, #0 -// CHECK-NEXT: 100000a8: 11 7a 40 f9 ldr x17, [x16, #240] -// CHECK-NEXT: 100000ac: 10 c2 03 91 add x16, x16, #240 -// CHECK-NEXT: 100000b0: 20 02 1f d6 br x17 -// CHECK-NEXT: 100000b4: 1f 20 03 d5 nop -// CHECK-NEXT: 100000b8: 1f 20 03 d5 nop -// CHECK-NEXT: 100000bc: 1f 20 03 d5 nop -// CHECK-NEXT: 100000c0: 10 00 00 90 adrp x16, #0 -// CHECK-NEXT: 100000c4: 11 7e 40 f9 ldr x17, [x16, #248] -// CHECK-NEXT: 100000c8: 10 e2 03 91 add x16, x16, #248 -// CHECK-NEXT: 100000cc: 20 02 1f d6 br x17 -// CHECK-NEXT: 100000d0: 10 00 00 90 adrp x16, #0 -// CHECK-NEXT: 100000d4: 11 82 40 f9 ldr x17, [x16, #256] -// CHECK-NEXT: 100000d8: 10 02 04 91 add x16, x16, #256 -// CHECK-NEXT: 100000dc: 20 02 1f d6 br x17 +// CHECK-NEXT: 10000100: f0 7b bf a9 stp x16, x30, [sp, #-16]! +// CHECK-NEXT: 10000104: 10 00 00 90 adrp x16, #0 +// CHECK-NEXT: 10000108: 11 aa 40 f9 ldr x17, [x16, #336] +// CHECK-NEXT: 1000010c: 10 42 05 91 add x16, x16, #336 +// CHECK-NEXT: 10000110: 20 02 1f d6 br x17 +// CHECK-NEXT: 10000114: 1f 20 03 d5 nop +// CHECK-NEXT: 10000118: 1f 20 03 d5 nop +// CHECK-NEXT: 1000011c: 1f 20 03 d5 nop +// CHECK-NEXT: 10000120: 10 00 00 90 adrp x16, #0 +// CHECK-NEXT: 10000124: 11 ae 40 f9 ldr x17, [x16, #344] +// CHECK-NEXT: 10000128: 10 62 05 91 add x16, x16, #344 +// CHECK-NEXT: 1000012c: 20 02 1f d6 br x17 +// CHECK-NEXT: 10000130: 10 00 00 90 adrp x16, #0 +// CHECK-NEXT: 10000134: 11 b2 40 f9 ldr x17, [x16, #352] +// CHECK-NEXT: 10000138: 10 82 05 91 add x16, x16, #352 +// CHECK-NEXT: 1000013c: 20 02 1f d6 br x17 diff --git a/lld/test/ELF/arm-copy.s b/lld/test/ELF/arm-copy.s index 4bdcdce..dc9e362 100644 --- a/lld/test/ELF/arm-copy.s +++ b/lld/test/ELF/arm-copy.s @@ -78,4 +78,4 @@ _start: // RODATA: Contents of section .rodata: // S(z) = 0x13004 -// RODATA-NEXT: 101a9 04300100 +// RODATA-NEXT: 10114 04300100 diff --git a/lld/test/ELF/arm-execute-only.s b/lld/test/ELF/arm-execute-only.s index b278e07..655a2c6 100644 --- a/lld/test/ELF/arm-execute-only.s +++ b/lld/test/ELF/arm-execute-only.s @@ -14,24 +14,24 @@ // RUN: llvm-readelf -l %t.so | FileCheck --check-prefix=DIFF %s // CHECK-NOT: LOAD -// CHECK: LOAD 0x000000 0x00000000 0x00000000 0x00170 0x00170 R 0x1000 +// CHECK: LOAD 0x000000 0x00000000 0x00000000 0x0016d 0x0016d R 0x1000 // CHECK: LOAD 0x001000 0x00001000 0x00001000 0x{{.*}} 0x{{.*}} R E 0x1000 // CHECK: LOAD 0x002000 0x00002000 0x00002000 0x{{.*}} 0x{{.*}} E 0x1000 // CHECK: LOAD 0x003000 0x00003000 0x00003000 0x00038 0x00038 RW 0x1000 // CHECK-NOT: LOAD -// CHECK: 01 .dynsym .dynstr .gnu.hash .hash +// CHECK: 01 .dynsym .gnu.hash .hash .dynstr // CHECK: 02 .text // CHECK: 03 .foo // CHECK: 04 .dynamic // DIFF-NOT: LOAD -// DIFF: LOAD 0x000000 0x00000000 0x00000000 0x00150 0x00150 R 0x1000 +// DIFF: LOAD 0x000000 0x00000000 0x00000000 0x0014d 0x0014d R 0x1000 // DIFF: LOAD 0x001000 0x00001000 0x00001000 0x0000c 0x0000c R E 0x1000 // DIFF: LOAD 0x002000 0x00002000 0x00002000 0x00038 0x00038 RW 0x1000 // DIFF-NOT: LOAD -// DIFF: 01 .dynsym .dynstr .gnu.hash .hash +// DIFF: 01 .dynsym .gnu.hash .hash .dynstr // DIFF: 02 .text .foo // DIFF: 03 .dynamic diff --git a/lld/test/ELF/arm-exidx-shared.s b/lld/test/ELF/arm-exidx-shared.s index bcf2955..bf7c2dc 100644 --- a/lld/test/ELF/arm-exidx-shared.s +++ b/lld/test/ELF/arm-exidx-shared.s @@ -41,5 +41,5 @@ __aeabi_unwind_cpp_pr0: // CHECK-NEXT: 0x200C R_ARM_JUMP_SLOT __gxx_personality_v0 // CHECK-EXTAB: Contents of section .ARM.extab: -// 01d8 + 0e58 = 0x1030 = __gxx_personality_v0(PLT) -// CHECK-EXTAB-NEXT: 01d8 580e0000 b0b0b000 00000000 +// 014c + 0ee4 = 0x1030 = __gxx_personality_v0(PLT) +// CHECK-EXTAB-NEXT: 014c e40e0000 b0b0b000 00000000 diff --git a/lld/test/ELF/basic-ppc.s b/lld/test/ELF/basic-ppc.s index 2e52514..cda3224 100644 --- a/lld/test/ELF/basic-ppc.s +++ b/lld/test/ELF/basic-ppc.s @@ -65,7 +65,7 @@ // CHECK-NEXT: Address: 0x114 // CHECK-NEXT: Offset: 0x114 // CHECK-NEXT: Size: 16 -// CHECK-NEXT: Link: 2 +// CHECK-NEXT: Link: 3 // CHECK-NEXT: Info: 1 // CHECK-NEXT: AddressAlignment: 4 // CHECK-NEXT: EntrySize: 16 @@ -75,38 +75,38 @@ // CHECK-NEXT: } // CHECK-NEXT: Section { // CHECK-NEXT: Index: 2 -// CHECK-NEXT: Name: .dynstr -// CHECK-NEXT: Type: SHT_STRTAB (0x3) +// CHECK-NEXT: Name: .hash +// CHECK-NEXT: Type: SHT_HASH (0x5) // CHECK-NEXT: Flags [ (0x2) // CHECK-NEXT: SHF_ALLOC (0x2) // CHECK-NEXT: ] // CHECK-NEXT: Address: 0x124 // CHECK-NEXT: Offset: 0x124 -// CHECK-NEXT: Size: 1 -// CHECK-NEXT: Link: 0 +// CHECK-NEXT: Size: 16 +// CHECK-NEXT: Link: 1 // CHECK-NEXT: Info: 0 -// CHECK-NEXT: AddressAlignment: 1 -// CHECK-NEXT: EntrySize: 0 +// CHECK-NEXT: AddressAlignment: 4 +// CHECK-NEXT: EntrySize: 4 // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 00 |.| +// CHECK-NEXT: 0000: 00000001 00000001 00000000 00000000 |................| // CHECK-NEXT: ) // CHECK-NEXT: } // CHECK-NEXT: Section { // CHECK-NEXT: Index: 3 -// CHECK-NEXT: Name: .hash -// CHECK-NEXT: Type: SHT_HASH (0x5) +// CHECK-NEXT: Name: .dynstr +// CHECK-NEXT: Type: SHT_STRTAB (0x3) // CHECK-NEXT: Flags [ (0x2) // CHECK-NEXT: SHF_ALLOC (0x2) // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x128 -// CHECK-NEXT: Offset: 0x128 -// CHECK-NEXT: Size: 16 -// CHECK-NEXT: Link: 1 +// CHECK-NEXT: Address: 0x134 +// CHECK-NEXT: Offset: 0x134 +// CHECK-NEXT: Size: 1 +// CHECK-NEXT: Link: 0 // CHECK-NEXT: Info: 0 -// CHECK-NEXT: AddressAlignment: 4 -// CHECK-NEXT: EntrySize: 4 +// CHECK-NEXT: AddressAlignment: 1 +// CHECK-NEXT: EntrySize: 0 // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 00000001 00000001 00000000 00000000 |................| +// CHECK-NEXT: 0000: 00 |.| // CHECK-NEXT: ) // CHECK-NEXT: } // CHECK-NEXT: Section { @@ -139,14 +139,14 @@ // CHECK-NEXT: Address: 0x2000 // CHECK-NEXT: Offset: 0x2000 // CHECK-NEXT: Size: 48 -// CHECK-NEXT: Link: 2 +// CHECK-NEXT: Link: 3 // CHECK-NEXT: Info: 0 // CHECK-NEXT: AddressAlignment: 4 // CHECK-NEXT: EntrySize: 8 // CHECK-NEXT: SectionData ( // CHECK-NEXT: 0000: 00000006 00000114 0000000B 00000010 |................| -// CHECK-NEXT: 0010: 00000005 00000124 0000000A 00000001 |.......$........| -// CHECK-NEXT: 0020: 00000004 00000128 00000000 00000000 |.......(........| +// CHECK-NEXT: 0010: 00000005 00000134 0000000A 00000001 |.......4........| +// CHECK-NEXT: 0020: 00000004 00000124 00000000 00000000 |.......$........| // CHECK-NEXT: ) // CHECK-NEXT: } // CHECK-NEXT: Section { @@ -165,7 +165,7 @@ // CHECK-NEXT: AddressAlignment: 1 // CHECK-NEXT: EntrySize: 1 // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 4C4C4420 312E3000 |LLD 1.0.| +// CHECK-NEXT: 0000: 4C4C4420 312E3000 |LLD 1.0.| // CHECK-NEXT: ) // CHECK-NEXT: } // CHECK-NEXT: Section { @@ -200,8 +200,8 @@ // CHECK-NEXT: AddressAlignment: 1 // CHECK-NEXT: EntrySize: 0 // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 002E6479 6E73796D 002E6479 6E737472 |..dynsym..dynstr| -// CHECK-NEXT: 0010: 002E6861 7368002E 74657874 002E6479 |..hash..text..dy| +// CHECK-NEXT: 0000: 002E6479 6E73796D 002E6861 7368002E |..dynsym..hash..| +// CHECK-NEXT: 0010: 64796E73 7472002E 74657874 002E6479 |dynstr..text..dy| // CHECK-NEXT: 0020: 6E616D69 63002E63 6F6D6D65 6E74002E |namic..comment..| // CHECK-NEXT: 0030: 73796D74 6162002E 73687374 72746162 |symtab..shstrtab| // CHECK-NEXT: 0040: 002E7374 72746162 00 |..strtab.| @@ -215,7 +215,7 @@ // CHECK-NEXT: ] // CHECK-NEXT: Address: 0x0 // CHECK-NEXT: Offset: 0x20A1 -// CHECK-NEXT: Size: 10 +// CHECK-NEXT: Size: 1 // CHECK-NEXT: Link: 0 // CHECK-NEXT: Info: 0 // CHECK-NEXT: AddressAlignment: 1 @@ -243,8 +243,8 @@ // CHECK-NEXT: Offset: 0x0 // CHECK-NEXT: VirtualAddress: 0x0 // CHECK-NEXT: PhysicalAddress: 0x0 -// CHECK-NEXT: FileSize: 312 -// CHECK-NEXT: MemSize: 312 +// CHECK-NEXT: FileSize: 309 +// CHECK-NEXT: MemSize: 309 // CHECK-NEXT: Flags [ (0x4) // CHECK-NEXT: PF_R (0x4) // CHECK-NEXT: ] diff --git a/lld/test/ELF/basic-ppc64.s b/lld/test/ELF/basic-ppc64.s index fd933b8..5b9896d 100644 --- a/lld/test/ELF/basic-ppc64.s +++ b/lld/test/ELF/basic-ppc64.s @@ -66,7 +66,7 @@ // CHECK-NEXT: Address: 0x1C8 // CHECK-NEXT: Offset: 0x1C8 // CHECK-NEXT: Size: 24 -// CHECK-NEXT: Link: 2 +// CHECK-NEXT: Link: 3 // CHECK-NEXT: Info: 1 // CHECK-NEXT: AddressAlignment: 8 // CHECK-NEXT: EntrySize: 24 @@ -77,38 +77,38 @@ // CHECK-NEXT: } // CHECK-NEXT: Section { // CHECK-NEXT: Index: 2 -// CHECK-NEXT: Name: .dynstr (9) -// CHECK-NEXT: Type: SHT_STRTAB (0x3) +// CHECK-NEXT: Name: .hash (9) +// CHECK-NEXT: Type: SHT_HASH (0x5) // CHECK-NEXT: Flags [ (0x2) // CHECK-NEXT: SHF_ALLOC (0x2) // CHECK-NEXT: ] // CHECK-NEXT: Address: 0x1E0 // CHECK-NEXT: Offset: 0x1E0 -// CHECK-NEXT: Size: 1 -// CHECK-NEXT: Link: 0 +// CHECK-NEXT: Size: 16 +// CHECK-NEXT: Link: 1 // CHECK-NEXT: Info: 0 -// CHECK-NEXT: AddressAlignment: 1 -// CHECK-NEXT: EntrySize: 0 +// CHECK-NEXT: AddressAlignment: 4 +// CHECK-NEXT: EntrySize: 4 // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 00 |.| +// CHECK-NEXT: 0000: 01000000 01000000 00000000 00000000 |................| // CHECK-NEXT: ) // CHECK-NEXT: } // CHECK-NEXT: Section { // CHECK-NEXT: Index: 3 -// CHECK-NEXT: Name: .hash (17) -// CHECK-NEXT: Type: SHT_HASH (0x5) +// CHECK-NEXT: Name: .dynstr (15) +// CHECK-NEXT: Type: SHT_STRTAB (0x3) // CHECK-NEXT: Flags [ (0x2) // CHECK-NEXT: SHF_ALLOC (0x2) // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x1E4 -// CHECK-NEXT: Offset: 0x1E4 -// CHECK-NEXT: Size: 16 -// CHECK-NEXT: Link: 1 +// CHECK-NEXT: Address: 0x1F0 +// CHECK-NEXT: Offset: 0x1F0 +// CHECK-NEXT: Size: 1 +// CHECK-NEXT: Link: 0 // CHECK-NEXT: Info: 0 -// CHECK-NEXT: AddressAlignment: 4 -// CHECK-NEXT: EntrySize: 4 +// CHECK-NEXT: AddressAlignment: 1 +// CHECK-NEXT: EntrySize: 0 // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 01000000 01000000 00000000 00000000 |................| +// CHECK-NEXT: 0000: 00 |.| // CHECK-NEXT: ) // CHECK-NEXT: } // CHECK-NEXT: Section { @@ -141,16 +141,16 @@ // CHECK-NEXT: Address: 0x20000 // CHECK-NEXT: Offset: 0x20000 // CHECK-NEXT: Size: 96 -// CHECK-NEXT: Link: 2 +// CHECK-NEXT: Link: 3 // CHECK-NEXT: Info: 0 // CHECK-NEXT: AddressAlignment: 8 // CHECK-NEXT: EntrySize: 16 // CHECK-NEXT: SectionData ( // CHECK-NEXT: 0000: 06000000 00000000 C8010000 00000000 |................| // CHECK-NEXT: 0010: 0B000000 00000000 18000000 00000000 |................| -// CHECK-NEXT: 0020: 05000000 00000000 E0010000 00000000 |................| +// CHECK-NEXT: 0020: 05000000 00000000 F0010000 00000000 |................| // CHECK-NEXT: 0030: 0A000000 00000000 01000000 00000000 |................| -// CHECK-NEXT: 0040: 04000000 00000000 E4010000 00000000 |................| +// CHECK-NEXT: 0040: 04000000 00000000 E0010000 00000000 |................| // CHECK-NEXT: 0050: 00000000 00000000 00000000 00000000 |................| // CHECK-NEXT: ) // CHECK-NEXT: } @@ -170,7 +170,7 @@ // CHECK-NEXT: AddressAlignment: 1 // CHECK-NEXT: EntrySize: 1 // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 4C4C4420 312E3000 |LLD 1.0.| +// CHECK-NEXT: 0000: 4C4C4420 312E3000 |LLD 1.0.| // CHECK-NEXT: ) // CHECK-NEXT: } // CHECK-NEXT: Section { @@ -206,8 +206,8 @@ // CHECK-NEXT: AddressAlignment: 1 // CHECK-NEXT: EntrySize: 0 // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 002E6479 6E73796D 002E6479 6E737472 |..dynsym..dynstr| -// CHECK-NEXT: 0010: 002E6861 7368002E 74657874 002E6479 |..hash..text..dy| +// CHECK-NEXT: 0000: 002E6479 6E73796D 002E6861 7368002E |..dynsym..hash..| +// CHECK-NEXT: 0010: 64796E73 7472002E 74657874 002E6479 |dynstr..text..dy| // CHECK-NEXT: 0020: 6E616D69 63002E63 6F6D6D65 6E74002E |namic..comment..| // CHECK-NEXT: 0030: 73796D74 6162002E 73687374 72746162 |symtab..shstrtab| // CHECK-NEXT: 0040: 002E7374 72746162 00 |..strtab.| @@ -249,8 +249,8 @@ // CHECK-NEXT: Offset: 0x0 // CHECK-NEXT: VirtualAddress: 0x0 // CHECK-NEXT: PhysicalAddress: 0x0 -// CHECK-NEXT: FileSize: 500 -// CHECK-NEXT: MemSize: 500 +// CHECK-NEXT: FileSize: 497 +// CHECK-NEXT: MemSize: 497 // CHECK-NEXT: Flags [ (0x4) // CHECK-NEXT: PF_R (0x4) // CHECK-NEXT: ] diff --git a/lld/test/ELF/dynamic-no-rosegment.s b/lld/test/ELF/dynamic-no-rosegment.s index b65e37d..f2b5f35 100644 --- a/lld/test/ELF/dynamic-no-rosegment.s +++ b/lld/test/ELF/dynamic-no-rosegment.s @@ -7,9 +7,9 @@ # CHECK-NEXT: Tag Type Name/Value # CHECK-NEXT: 0x0000000000000006 SYMTAB 0x120 # CHECK-NEXT: 0x000000000000000B SYMENT 24 (bytes) -# CHECK-NEXT: 0x0000000000000005 STRTAB 0x138 +# CHECK-NEXT: 0x0000000000000005 STRTAB 0x1D8 # CHECK-NEXT: 0x000000000000000A STRSZ 1 (bytes) -# CHECK-NEXT: 0x000000006FFFFEF5 GNU_HASH 0x140 -# CHECK-NEXT: 0x0000000000000004 HASH 0x15C +# CHECK-NEXT: 0x000000006FFFFEF5 GNU_HASH 0x138 +# CHECK-NEXT: 0x0000000000000004 HASH 0x154 # CHECK-NEXT: 0x0000000000000000 NULL 0x0 # CHECK-NEXT: ] diff --git a/lld/test/ELF/dynsec-at-beginning.s b/lld/test/ELF/dynsec-at-beginning.s deleted file mode 100644 index 90504c9..0000000 --- a/lld/test/ELF/dynsec-at-beginning.s +++ /dev/null @@ -1,16 +0,0 @@ -# REQUIRES: x86 -# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t - -# RUN: ld.lld --hash-style=gnu -o %t1 %t -shared -# RUN: llvm-readobj -elf-output-style=GNU -s %t1 | FileCheck %s - -# Dynamic symbol and dynamic strtab sections are at the beginning of -# SHF_ALLOC sections. -# CHECK: .dynsym {{.*}} A -# CHECK-NEXT: .dynstr {{.*}} A -# CHECK-NEXT: foo {{.*}} A -# CHECK-NEXT: .hash {{.*}} A -# CHECK-NEXT: .text {{.*}} AX - -.section foo, "a" -.byte 0 diff --git a/lld/test/ELF/eh-frame-padding-no-rosegment.s b/lld/test/ELF/eh-frame-padding-no-rosegment.s index 6805de1..e106f29 100644 --- a/lld/test/ELF/eh-frame-padding-no-rosegment.s +++ b/lld/test/ELF/eh-frame-padding-no-rosegment.s @@ -58,7 +58,7 @@ bar: // CHECK-NEXT: EntrySize: // CHECK-NEXT: SectionData ( // CHECK-NEXT: 0000: 1C000000 00000000 017A5052 00017810 -// CHECK-NEXT: 0010: 061BDAFF FFFF1B0C 07089001 00000000 -// CHECK-NEXT: 0020: 14000000 24000000 C4FFFFFF 00000000 +// CHECK-NEXT: 0010: 061BBEFF FFFF1B0C 07089001 00000000 +// CHECK-NEXT: 0020: 14000000 24000000 A8FFFFFF 00000000 // CHECK-NEXT: 0030: 00000000 00000000 // CHECK-NEXT: ) diff --git a/lld/test/ELF/gc-merge-local-sym.s b/lld/test/ELF/gc-merge-local-sym.s index 9cb4907..b02a3a4 100644 --- a/lld/test/ELF/gc-merge-local-sym.s +++ b/lld/test/ELF/gc-merge-local-sym.s @@ -9,7 +9,7 @@ // CHECK-NEXT: SHF_MERGE // CHECK-NEXT: SHF_STRINGS // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x1FD +// CHECK-NEXT: Address: 0x1C8 // CHECK-NEXT: Offset: // CHECK-NEXT: Size: 4 // CHECK-NEXT: Link: 0 diff --git a/lld/test/ELF/gnu-ifunc-dyntags.s b/lld/test/ELF/gnu-ifunc-dyntags.s index 37d46d2..81bd338 100644 --- a/lld/test/ELF/gnu-ifunc-dyntags.s +++ b/lld/test/ELF/gnu-ifunc-dyntags.s @@ -8,7 +8,7 @@ ## when there are no other relocations except R_*_IRELATIVE. # CHECK: Name Size Address -# CHECK: .rela.plt 00000030 0000000000000218 +# CHECK: .rela.plt 00000030 0000000000000210 # CHECK: .got.plt 00000010 0000000000002000 # TAGS: Relocations [ @@ -19,7 +19,7 @@ # TAGS-NEXT: ] # TAGS: Tag Type Name/Value -# TAGS: 0x0000000000000017 JMPREL 0x218 +# TAGS: 0x0000000000000017 JMPREL 0x210 # TAGS: 0x0000000000000002 PLTRELSZ 48 # TAGS: 0x0000000000000003 PLTGOT 0x2000 # TAGS: 0x0000000000000014 PLTREL RELA diff --git a/lld/test/ELF/i386-merge.s b/lld/test/ELF/i386-merge.s index 91a153e..00c95494 100644 --- a/lld/test/ELF/i386-merge.s +++ b/lld/test/ELF/i386-merge.s @@ -9,7 +9,7 @@ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_MERGE // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x128 +// CHECK-NEXT: Address: 0x114 // CHECK-NEXT: Offset: // CHECK-NEXT: Size: // CHECK-NEXT: Link: @@ -35,7 +35,7 @@ // CHECK-NEXT: AddressAlignment: 1 // CHECK-NEXT: EntrySize: 0 // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 28010000 | +// CHECK-NEXT: 0000: 14010000 | // CHECK-NEXT: ) // The content of .data should be the address of .mysec. 14010000 is 0x114 in diff --git a/lld/test/ELF/i386-retpoline-nopic-linkerscript.s b/lld/test/ELF/i386-retpoline-nopic-linkerscript.s index 88fbfe9..0c7d1fc 100644 --- a/lld/test/ELF/i386-retpoline-nopic-linkerscript.s +++ b/lld/test/ELF/i386-retpoline-nopic-linkerscript.s @@ -14,9 +14,9 @@ // CHECK: Disassembly of section .plt: // CHECK-NEXT: .plt: -// CHECK-NEXT: 10: ff 35 cc 00 00 00 pushl 204 +// CHECK-NEXT: 10: ff 35 fc 00 00 00 pushl 252 // CHECK-NEXT: 16: 50 pushl %eax -// CHECK-NEXT: 17: a1 d0 00 00 00 movl 208, %eax +// CHECK-NEXT: 17: a1 00 01 00 00 movl 256, %eax // CHECK-NEXT: 1c: e8 0f 00 00 00 calll 15 <.plt+0x20> // CHECK-NEXT: 21: f3 90 pause // CHECK-NEXT: 23: 0f ae e8 lfence @@ -37,7 +37,7 @@ // CHECK-NEXT: 3e: c3 retl // CHECK-NEXT: 3f: cc int3 // CHECK-NEXT: 40: 50 pushl %eax -// CHECK-NEXT: 41: a1 d4 00 00 00 movl 212, %eax +// CHECK-NEXT: 41: a1 04 01 00 00 movl 260, %eax // CHECK-NEXT: 46: e8 e5 ff ff ff calll -27 <.plt+0x20> // CHECK-NEXT: 4b: e9 d1 ff ff ff jmp -47 <.plt+0x11> // CHECK-NEXT: 50: 68 00 00 00 00 pushl $0 @@ -49,7 +49,7 @@ // CHECK-NEXT: 5e: cc int3 // CHECK-NEXT: 5f: cc int3 // CHECK-NEXT: 60: 50 pushl %eax -// CHECK-NEXT: 61: a1 d8 00 00 00 movl 216, %eax +// CHECK-NEXT: 61: a1 08 01 00 00 movl 264, %eax // CHECK-NEXT: 66: e8 c5 ff ff ff calll -59 <.plt+0x20> // CHECK-NEXT: 6b: e9 b1 ff ff ff jmp -79 <.plt+0x11> // CHECK-NEXT: 70: 68 08 00 00 00 pushl $8 diff --git a/lld/test/ELF/i386-retpoline-pic-linkerscript.s b/lld/test/ELF/i386-retpoline-pic-linkerscript.s index a502f3f..049e53f6 100644 --- a/lld/test/ELF/i386-retpoline-pic-linkerscript.s +++ b/lld/test/ELF/i386-retpoline-pic-linkerscript.s @@ -14,9 +14,9 @@ // CHECK: Disassembly of section .plt: // CHECK-NEXT: .plt: -// CHECK-NEXT: 10: ff b3 cc 00 00 00 pushl 204(%ebx) +// CHECK-NEXT: 10: ff b3 fc 00 00 00 pushl 252(%ebx) // CHECK-NEXT: 16: 50 pushl %eax -// CHECK-NEXT: 17: 8b 83 d0 00 00 00 movl 208(%ebx), %eax +// CHECK-NEXT: 17: 8b 83 00 01 00 00 movl 256(%ebx), %eax // CHECK-NEXT: 1d: e8 0e 00 00 00 calll 14 <.plt+0x20> // CHECK-NEXT: 22: f3 90 pause // CHECK-NEXT: 24: 0f ae e8 lfence @@ -36,7 +36,7 @@ // CHECK-NEXT: 3e: c3 retl // CHECK-NEXT: 3f: cc int3 // CHECK-NEXT: 40: 50 pushl %eax -// CHECK-NEXT: 41: 8b 83 d4 00 00 00 movl 212(%ebx), %eax +// CHECK-NEXT: 41: 8b 83 04 01 00 00 movl 260(%ebx), %eax // CHECK-NEXT: 47: e8 e4 ff ff ff calll -28 <.plt+0x20> // CHECK-NEXT: 4c: e9 d1 ff ff ff jmp -47 <.plt+0x12> // CHECK-NEXT: 51: 68 00 00 00 00 pushl $0 @@ -47,7 +47,7 @@ // CHECK-NEXT: 5e: cc int3 // CHECK-NEXT: 5f: cc int3 // CHECK-NEXT: 60: 50 pushl %eax -// CHECK-NEXT: 61: 8b 83 d8 00 00 00 movl 216(%ebx), %eax +// CHECK-NEXT: 61: 8b 83 08 01 00 00 movl 264(%ebx), %eax // CHECK-NEXT: 67: e8 c4 ff ff ff calll -60 <.plt+0x20> // CHECK-NEXT: 6c: e9 b1 ff ff ff jmp -79 <.plt+0x12> // CHECK-NEXT: 71: 68 08 00 00 00 pushl $8 diff --git a/lld/test/ELF/linkerscript/addr-zero.test b/lld/test/ELF/linkerscript/addr-zero.test index 0133fc0..77adebc 100644 --- a/lld/test/ELF/linkerscript/addr-zero.test +++ b/lld/test/ELF/linkerscript/addr-zero.test @@ -8,7 +8,7 @@ # CHECK: Symbol { # CHECK: Name: foo -# CHECK-NEXT: Value: 0x38 +# CHECK-NEXT: Value: 0x0 # CHECK-NEXT: Size: 0 # CHECK-NEXT: Binding: Global # CHECK-NEXT: Type: None diff --git a/lld/test/ELF/linkerscript/align-empty.test b/lld/test/ELF/linkerscript/align-empty.test index 9f879dd..deb8268 100644 --- a/lld/test/ELF/linkerscript/align-empty.test +++ b/lld/test/ELF/linkerscript/align-empty.test @@ -15,6 +15,4 @@ SECTIONS { # CHECK: Sections: # CHECK-NEXT: Idx Name Size Address # CHECK-NEXT: 0 00000000 0000000000000000 -# CHECK-NEXT: 1 .dynsym 00000018 0000000000000190 -# CHECK-NEXT: 2 .dynstr 00000001 00000000000001a8 -# CHECK-NEXT: 3 foo 00000001 0000000000001000 +# CHECK-NEXT: 1 foo 00000001 0000000000001000 diff --git a/lld/test/ELF/linkerscript/dot-is-not-abs.s b/lld/test/ELF/linkerscript/dot-is-not-abs.s index 1fae25e..a93d1c8 100644 --- a/lld/test/ELF/linkerscript/dot-is-not-abs.s +++ b/lld/test/ELF/linkerscript/dot-is-not-abs.s @@ -26,7 +26,7 @@ # CHECK-NEXT: SHF_ALLOC # CHECK-NEXT: SHF_EXECINSTR # CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x1C +# CHECK-NEXT: Address: 0x0 # CHECK-NEXT: Offset: # CHECK-NEXT: Size: 4 # CHECK-NEXT: Link: @@ -40,7 +40,7 @@ # CHECK: Symbol { # CHECK: Name: foo -# CHECK-NEXT: Value: 0x20 +# CHECK-NEXT: Value: 0x4 # CHECK-NEXT: Size: 0 # CHECK-NEXT: Binding: Local # CHECK-NEXT: Type: None diff --git a/lld/test/ELF/linkerscript/emit-reloc.s b/lld/test/ELF/linkerscript/emit-reloc.s index 43ab4e8..2fe127a 100644 --- a/lld/test/ELF/linkerscript/emit-reloc.s +++ b/lld/test/ELF/linkerscript/emit-reloc.s @@ -9,9 +9,9 @@ # CHECK: Relocations [ # CHECK-NEXT: Section ({{.*}}) .rela.dyn { -# CHECK-NEXT: 0x68 R_X86_64_64 .foo 0x0 +# CHECK-NEXT: 0x66 R_X86_64_64 .foo 0x0 # CHECK-NEXT: } # CHECK-NEXT: Section ({{.*}}) .rela.data { -# CHECK-NEXT: 0x68 R_X86_64_64 .foo 0x0 +# CHECK-NEXT: 0x66 R_X86_64_64 .foo 0x0 # CHECK-NEXT: } # CHECK-NEXT: ] diff --git a/lld/test/ELF/linkerscript/expr-sections.test b/lld/test/ELF/linkerscript/expr-sections.test index f7d541d..a9219e6 100644 --- a/lld/test/ELF/linkerscript/expr-sections.test +++ b/lld/test/ELF/linkerscript/expr-sections.test @@ -13,11 +13,11 @@ SECTIONS { } }; -# CHECK: 3 .text 00000000 00000000000000d0 TEXT DATA +# CHECK: 1 .text 00000000 0000000000000004 TEXT DATA -# CHECK: 00000000000000d1 .text 00000000 foo1 -# CHECK: 00000000000000d1 .text 00000000 bar1 +# CHECK: 0000000000000005 .text 00000000 foo1 +# CHECK: 0000000000000005 .text 00000000 bar1 # CHECK: 0000000000000000 .text 00000000 foo2 # CHECK: 0000000000000000 .text 00000000 bar2 -# CHECK: 00000000000000d1 .text 00000000 foo3 -# CHECK: 00000000000000d1 .text 00000000 bar3 +# CHECK: 0000000000000005 .text 00000000 foo3 +# CHECK: 0000000000000005 .text 00000000 bar3 diff --git a/lld/test/ELF/linkerscript/implicit-program-header.test b/lld/test/ELF/linkerscript/implicit-program-header.test index 06b6161..ea5c873 100644 --- a/lld/test/ELF/linkerscript/implicit-program-header.test +++ b/lld/test/ELF/linkerscript/implicit-program-header.test @@ -8,8 +8,8 @@ # RUN: llvm-readobj -elf-output-style=GNU -l %t1 | FileCheck %s # CHECK: Segment Sections... -# CHECK-NEXT: 00 .text .hash .dynamic -# CHECK-NEXT: 01 .bar .dynsym .dynstr .foo +# CHECK-NEXT: 00 .text .dynsym .hash .dynstr .dynamic +# CHECK-NEXT: 01 .bar .foo PHDRS { ph_write PT_LOAD FLAGS(2); diff --git a/lld/test/ELF/linkerscript/locationcountererr2.s b/lld/test/ELF/linkerscript/locationcountererr2.s index 7e7bd72..8968f67 100644 --- a/lld/test/ELF/linkerscript/locationcountererr2.s +++ b/lld/test/ELF/linkerscript/locationcountererr2.s @@ -1,11 +1,11 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o # RUN: echo "SECTIONS {" > %t.script -# RUN: echo ". = 0x150; . = 0x10; .text : {} }" >> %t.script +# RUN: echo ". = 0x20; . = 0x10; .text : {} }" >> %t.script # RUN: ld.lld %t.o --script %t.script -o %t -shared # RUN: llvm-objdump -section-headers %t | FileCheck %s # CHECK: Idx Name Size Address -# CHECK: 3 .text 00000000 0000000000000010 +# CHECK: 1 .text 00000000 0000000000000010 # RUN: echo "SECTIONS { . = 0x20; . = ASSERT(0x1, "foo"); }" > %t2.script # RUN: ld.lld %t.o --script %t2.script -o %t -shared diff --git a/lld/test/ELF/linkerscript/merge-sections-syms.s b/lld/test/ELF/linkerscript/merge-sections-syms.s index 37b25c3..713d334 100644 --- a/lld/test/ELF/linkerscript/merge-sections-syms.s +++ b/lld/test/ELF/linkerscript/merge-sections-syms.s @@ -20,7 +20,7 @@ # CHECK-NEXT: } # CHECK-NEXT: Symbol { # CHECK-NEXT: Name: A -# CHECK-NEXT: Value: 0x1E2 +# CHECK-NEXT: Value: 0x195 # CHECK-NEXT: Size: # CHECK-NEXT: Binding: # CHECK-NEXT: Type: @@ -29,7 +29,7 @@ # CHECK-NEXT: } # CHECK-NEXT: Symbol { # CHECK-NEXT: Name: B -# CHECK-NEXT: Value: 0x1E3 +# CHECK-NEXT: Value: 0x196 # CHECK-NEXT: Size: # CHECK-NEXT: Binding: # CHECK-NEXT: Type: diff --git a/lld/test/ELF/linkerscript/merge-sections.s b/lld/test/ELF/linkerscript/merge-sections.s index e76e2cd..2709bda 100644 --- a/lld/test/ELF/linkerscript/merge-sections.s +++ b/lld/test/ELF/linkerscript/merge-sections.s @@ -29,7 +29,7 @@ # CHECK: Name: end # 0x19E = begin + sizeof(.foo) = 0x190 + 0xE -# CHECK-NEXT: Value: 0x1F2 +# CHECK-NEXT: Value: 0x19E # Check that we don't crash with --gc-sections # RUN: ld.lld --gc-sections -o %t2 --script %t.script %t -shared diff --git a/lld/test/ELF/linkerscript/no-space.s b/lld/test/ELF/linkerscript/no-space.s index a423a5e..21a38e4 100644 --- a/lld/test/ELF/linkerscript/no-space.s +++ b/lld/test/ELF/linkerscript/no-space.s @@ -1,11 +1,11 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o -# RUN: echo "SECTIONS {foo 0 : {*(foo*)} .dynsym : {*(.dynsym)} .dynstr : {*(.dynstr)} }" > %t.script +# RUN: echo "SECTIONS {foo 0 : {*(foo*)} }" > %t.script # RUN: ld.lld --hash-style=sysv -o %t --script %t.script %t.o -shared # RUN: llvm-readobj -elf-output-style=GNU -l %t | FileCheck %s -# RUN: echo "SECTIONS {foo : {*(foo*)} .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } }" > %t.script +# RUN: echo "SECTIONS {foo : {*(foo*)} }" > %t.script # RUN: ld.lld --hash-style=sysv -o %t --script %t.script %t.o -shared # RUN: llvm-readobj -elf-output-style=GNU -l %t | FileCheck %s @@ -18,7 +18,7 @@ # CHECK: Section to Segment mapping: # CHECK-NEXT: Segment Sections... -# CHECK-NEXT: 00 foo .text .hash .dynsym .dynstr +# CHECK-NEXT: 00 foo .text .dynsym .hash .dynstr .section foo, "a" .quad 0 diff --git a/lld/test/ELF/linkerscript/non-absolute.s b/lld/test/ELF/linkerscript/non-absolute.s index 6e8d3e6..a0e9e7d 100644 --- a/lld/test/ELF/linkerscript/non-absolute.s +++ b/lld/test/ELF/linkerscript/non-absolute.s @@ -7,7 +7,7 @@ # DUMP: Disassembly of section .text: # DUMP-NEXT: foo: -# DUMP-NEXT: 50: {{.*}} -101(%rip), %eax +# DUMP-NEXT: 0: {{.*}} -21(%rip), %eax # SYMBOL: Symbol { # SYMBOL: Name: B @@ -18,7 +18,7 @@ # SYMBOL-NEXT: Other [ # SYMBOL-NEXT: STV_HIDDEN # SYMBOL-NEXT: ] -# SYMBOL-NEXT: Section: .dynsym +# SYMBOL-NEXT: Section: .text # SYMBOL-NEXT: } .text diff --git a/lld/test/ELF/linkerscript/non-absolute2.test b/lld/test/ELF/linkerscript/non-absolute2.test index 8935602..fa9e0e4 100644 --- a/lld/test/ELF/linkerscript/non-absolute2.test +++ b/lld/test/ELF/linkerscript/non-absolute2.test @@ -9,10 +9,8 @@ SECTIONS { } # CHECK: Sections: -# CHECK-NEXT: Idx Name Size Address Type -# CHECK-NEXT: 0 00000000 0000000000000000 -# CHECK-NEXT: 1 .dynsym 00000030 0000000000001000 -# CHECK-NEXT: 2 .dynstr 00000003 0000000000001030 -# CHECK-NEXT: 3 .text 00000000 0000000000001034 +# CHECK-NEXT: Idx Name Size Address +# CHECK-NEXT: 0 00000000 0000000000000000 +# CHECK-NEXT: 1 .text 00000000 0000000000001000 -# CHECK: 0000000000000001 .dynsym 00000000 A +# CHECK: 0000000000000001 .text 00000000 A diff --git a/lld/test/ELF/linkerscript/non-alloc.s b/lld/test/ELF/linkerscript/non-alloc.s index a40d29d..3257cb9 100644 --- a/lld/test/ELF/linkerscript/non-alloc.s +++ b/lld/test/ELF/linkerscript/non-alloc.s @@ -15,7 +15,7 @@ # CHECK: Section to Segment mapping: # CHECK-NEXT: Segment Sections... -# CHECK-NEXT: 00 .dynsym .dynstr .text .hash +# CHECK-NEXT: 00 .text .dynsym .hash .dynstr # CHECK-NEXT: 01 .dynamic nop diff --git a/lld/test/ELF/linkerscript/orphan-first-cmd.test b/lld/test/ELF/linkerscript/orphan-first-cmd.test index 31bff59..6ef473b 100644 --- a/lld/test/ELF/linkerscript/orphan-first-cmd.test +++ b/lld/test/ELF/linkerscript/orphan-first-cmd.test @@ -17,4 +17,4 @@ SECTIONS { # CHECK-NEXT: SHF_ALLOC # CHECK-NEXT: SHF_EXECINSTR # CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x1038 +# CHECK-NEXT: Address: 0x1000 diff --git a/lld/test/ELF/linkerscript/out-of-order.s b/lld/test/ELF/linkerscript/out-of-order.s index c76604a..c43df43 100644 --- a/lld/test/ELF/linkerscript/out-of-order.s +++ b/lld/test/ELF/linkerscript/out-of-order.s @@ -1,37 +1,19 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-linux %s -o %t.o -# RUN: echo "SECTIONS { .data 0x4000 : {*(.data)} .dynsym 0x2000 : {*(.dynsym)} .dynstr : {*(.dynstr)} }" > %t.script +# RUN: echo "SECTIONS { .data 0x4000 : { *(.data) } .text 0x2000 : { *(.text) } }" > %t.script # RUN: ld.lld --hash-style=sysv -o %t.so --script %t.script %t.o -shared # RUN: llvm-objdump -section-headers %t.so | FileCheck %s -# Note: how the layout is done: -# we need to layout 2 segments, each contains sections: -# seg1: .data .dynamic -# seg2: .dynsym .dynstr .text .hash -# for each segment, we start from the first section, regardless -# whether it is an orphan or not (sections that are not listed in the -# linkerscript are orphans): -# for seg1, we assign address: .data(0x4000), .dynamic(0x4008) -# for seg2, we assign address: .dynsym(0x2000), .dynstr(0x2018) ... -# .dynsym is not an orphan, so we take address from script, we assign -# .dynstr current address cursor, which is the end # of .dynsym and so -# on for later sections. - -# Also note, it is absolutely *illegal* to have section addresses of -# the same segment in none-increasing order, authors of linker scripts -# must take responsibility to make sure this does not happen. - # CHECK: Sections: # CHECK-NEXT: Idx Name Size Address Type # CHECK-NEXT: 0 00000000 0000000000000000 -# CHECK-NEXT: 1 .data 00000008 0000000000004000 +# CHECK-NEXT: 1 .data 00000008 0000000000004000 DATA # CHECK-NEXT: 2 .dynamic 00000060 0000000000004008 -# CHECK-NEXT: 3 .dynsym 00000018 0000000000002000 -# CHECK-NEXT: 4 .dynstr 00000001 0000000000002018 -# CHECK-NEXT: 5 .text 00000008 000000000000201c -# CHECK-NEXT: 6 .hash 00000010 0000000000002024 +# CHECK-NEXT: 3 .text 00000008 0000000000002000 TEXT DATA +# CHECK-NEXT: 4 .dynsym 00000018 0000000000002008 +# CHECK-NEXT: 5 .hash 00000010 0000000000002020 +# CHECK-NEXT: 6 .dynstr 00000001 0000000000002030 .quad 0 .data .quad 0 - diff --git a/lld/test/ELF/linkerscript/overlapping-sections.s b/lld/test/ELF/linkerscript/overlapping-sections.s index 98fa374..0b7b741 100644 --- a/lld/test/ELF/linkerscript/overlapping-sections.s +++ b/lld/test/ELF/linkerscript/overlapping-sections.s @@ -23,7 +23,7 @@ # BAD-LMA: .sec2 PROGBITS 0000000000008800 002800 000100 00 WA 0 0 1 # BAD-LMA-LABEL: Program Headers: # BAD-LMA-NEXT: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align -# BAD-LMA-NEXT: LOAD 0x001000 0x0000000000000000 0x0000000000000000 0x000104 0x000104 R E 0x1000 +# BAD-LMA-NEXT: LOAD 0x001000 0x0000000000000000 0x0000000000000000 0x0000fd 0x0000fd R E 0x1000 # BAD-LMA-NEXT: LOAD 0x002000 0x0000000000008000 0x0000000000008000 0x000100 0x000100 RW 0x1000 # BAD-LMA-NEXT: LOAD 0x002800 0x0000000000008800 0x0000000000008080 0x000170 0x000170 RW 0x1000 # BAD-LMA-LABEL: Section to Segment mapping: @@ -49,7 +49,7 @@ # BAD-VADDR: .sec2 PROGBITS 0000000000008020 003020 000100 00 WA 0 0 1 # BAD-VADDR-LABEL: Program Headers: # BAD-VADDR-NEXT: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align -# BAD-VADDR-NEXT: LOAD 0x001000 0x0000000000000000 0x0000000000000000 0x000104 0x000104 R E 0x1000 +# BAD-VADDR-NEXT: LOAD 0x001000 0x0000000000000000 0x0000000000000000 0x0000fd 0x0000fd R E 0x1000 # BAD-VADDR-NEXT: LOAD 0x002000 0x0000000000008000 0x0000000000008000 0x000100 0x000100 RW 0x1000 # BAD-VADDR-NEXT: LOAD 0x003020 0x0000000000008020 0x0000000000008800 0x000170 0x000170 RW 0x1000 # BAD-VADDR-LABEL: Section to Segment mapping: @@ -97,7 +97,7 @@ # BAD-BOTH: .sec2 PROGBITS 0000000000008040 002040 000100 00 WA 0 0 1 # BAD-BOTH-LABEL: Program Headers: # BAD-BOTH-NEXT: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align -# BAD-BOTH-NEXT: LOAD 0x001000 0x0000000000000000 0x0000000000000000 0x000104 0x000104 R E 0x1000 +# BAD-BOTH-NEXT: LOAD 0x001000 0x0000000000000000 0x0000000000000000 0x0000fd 0x0000fd R E 0x1000 # BAD-BOTH-NEXT: LOAD 0x002000 0x0000000000008000 0x0000000000008000 0x0001b0 0x0001b0 RW 0x1000 # BAD-BOTH-LABEL: Section to Segment mapping: # BAD-BOTH: 01 .sec1 .sec2 .dynamic diff --git a/lld/test/ELF/linkerscript/sections-sort.s b/lld/test/ELF/linkerscript/sections-sort.s index dd93f5a..99bbbea 100644 --- a/lld/test/ELF/linkerscript/sections-sort.s +++ b/lld/test/ELF/linkerscript/sections-sort.s @@ -15,11 +15,11 @@ nop # CHECK: Id # CHECK-NEXT: 0 -# CHECK-NEXT: 1 .dynsym -# CHECK-NEXT: 2 .dynstr -# CHECK-NEXT: 3 .text -# CHECK-NEXT: 4 foo -# CHECK-NEXT: 5 .hash +# CHECK-NEXT: 1 .text +# CHECK-NEXT: 2 foo +# CHECK-NEXT: 3 .dynsym +# CHECK-NEXT: 4 .hash +# CHECK-NEXT: 5 .dynstr # CHECK-NEXT: 6 .dynamic # CHECK-NEXT: 7 .comment # CHECK-NEXT: 8 .symtab diff --git a/lld/test/ELF/linkerscript/sort-non-script.s b/lld/test/ELF/linkerscript/sort-non-script.s index 563843c..4611b18 100644 --- a/lld/test/ELF/linkerscript/sort-non-script.s +++ b/lld/test/ELF/linkerscript/sort-non-script.s @@ -5,10 +5,10 @@ # RUN: ld.lld --hash-style=sysv -o %t1 --script %t.script %t -shared # RUN: llvm-readobj -elf-output-style=GNU -s %t1 | FileCheck %s -# CHECK: .dynsym {{.*}} A -# CHECK-NEXT: .dynstr {{.*}} A -# CHECK-NEXT: .text {{.*}} AX +# CHECK: .text {{.*}} AX +# CHECK-NEXT: .dynsym {{.*}} A # CHECK-NEXT: .hash {{.*}} A +# CHECK-NEXT: .dynstr {{.*}} A # CHECK-NEXT: foo {{.*}} WA # CHECK-NEXT: .dynamic {{.*}} WA diff --git a/lld/test/ELF/linkerscript/symbol-only.test b/lld/test/ELF/linkerscript/symbol-only.test index 6763423..e2123fb 100644 --- a/lld/test/ELF/linkerscript/symbol-only.test +++ b/lld/test/ELF/linkerscript/symbol-only.test @@ -15,8 +15,6 @@ SECTIONS { # CHECK-NEXT: Idx Name Size Address # CHECK-NEXT: 0 00000000 0000000000000000 # CHECK: abc 00000000 [[ADDR:[0-9a-f]*]] BSS -# CHECK-NEXT: .dynsym 00000030 0000000000000190 -# CHECK-NEXT: .dynstr 00000005 00000000000001c0 # CHECK-NEXT: bar 00000000 0000000000001000 DATA # CHECK: SYMBOL TABLE: diff --git a/lld/test/ELF/linkerscript/unused-synthetic.s b/lld/test/ELF/linkerscript/unused-synthetic.s index 80f0627..fb33421 100644 --- a/lld/test/ELF/linkerscript/unused-synthetic.s +++ b/lld/test/ELF/linkerscript/unused-synthetic.s @@ -10,10 +10,8 @@ # RUN: llvm-objdump -section-headers %t.so | FileCheck %s # CHECK-NOT: .got # CHECK-NOT: .plt -# CHECK: .dynsym -# CHECK-NEXT: .dynstr -# CHECK-NEXT: .text -# CHECK-NEXT: .gnu.hash +# CHECK: .text +# CHECK-NEXT: .dynsym # Test that the size of a removed unused synthetic input section is not added # to the output section size. Adding a symbol assignment prevents removal of diff --git a/lld/test/ELF/map-file.s b/lld/test/ELF/map-file.s index 390d880..f0831a8 100644 --- a/lld/test/ELF/map-file.s +++ b/lld/test/ELF/map-file.s @@ -43,20 +43,20 @@ labs = 0x1AB5 // CHECK: VMA LMA Size Align Out In Symbol // CHECK-NEXT: 2001c8 2001c8 78 8 .dynsym // CHECK-NEXT: 2001c8 2001c8 78 8 :(.dynsym) -// CHECK-NEXT: 200240 200240 31 1 .dynstr -// CHECK-NEXT: 200240 200240 31 1 :(.dynstr) -// CHECK-NEXT: 200278 200278 2c 8 .gnu.hash -// CHECK-NEXT: 200278 200278 2c 8 :(.gnu.hash) -// CHECK-NEXT: 2002a4 2002a4 30 4 .hash -// CHECK-NEXT: 2002a4 2002a4 30 4 :(.hash) -// CHECK-NEXT: 2002d8 2002d8 30 8 .rela.dyn -// CHECK-NEXT: 2002d8 2002d8 30 8 :(.rela.dyn) -// CHECK-NEXT: 200308 200308 30 8 .rela.plt -// CHECK-NEXT: 200308 200308 30 8 :(.rela.plt) -// CHECK-NEXT: 200338 200338 64 8 .eh_frame -// CHECK-NEXT: 200338 200338 2c 1 {{.*}}{{/|\\}}map-file.s.tmp1.o:(.eh_frame+0x0) -// CHECK-NEXT: 200368 200368 14 1 {{.*}}{{/|\\}}map-file.s.tmp1.o:(.eh_frame+0x2c) -// CHECK-NEXT: 200380 200380 18 1 {{.*}}{{/|\\}}map-file.s.tmp2.o:(.eh_frame+0x18) +// CHECK-NEXT: 200240 200240 2c 8 .gnu.hash +// CHECK-NEXT: 200240 200240 2c 8 :(.gnu.hash) +// CHECK-NEXT: 20026c 20026c 30 4 .hash +// CHECK-NEXT: 20026c 20026c 30 4 :(.hash) +// CHECK-NEXT: 20029c 20029c 31 1 .dynstr +// CHECK-NEXT: 20029c 20029c 31 1 :(.dynstr) +// CHECK-NEXT: 2002d0 2002d0 30 8 .rela.dyn +// CHECK-NEXT: 2002d0 2002d0 30 8 :(.rela.dyn) +// CHECK-NEXT: 200300 200300 30 8 .rela.plt +// CHECK-NEXT: 200300 200300 30 8 :(.rela.plt) +// CHECK-NEXT: 200330 200330 64 8 .eh_frame +// CHECK-NEXT: 200330 200330 2c 1 {{.*}}{{/|\\}}map-file.s.tmp1.o:(.eh_frame+0x0) +// CHECK-NEXT: 200360 200360 14 1 {{.*}}{{/|\\}}map-file.s.tmp1.o:(.eh_frame+0x2c) +// CHECK-NEXT: 200378 200378 18 1 {{.*}}{{/|\\}}map-file.s.tmp2.o:(.eh_frame+0x18) // CHECK-NEXT: 201000 201000 2d 4 .text // CHECK-NEXT: 201000 201000 28 4 {{.*}}{{/|\\}}map-file.s.tmp1.o:(.text) // CHECK-NEXT: 201000 201000 0 1 _start @@ -95,7 +95,6 @@ labs = 0x1AB5 // CHECK-NEXT: 0 0 6d 1 .strtab // CHECK-NEXT: 0 0 6d 1 :(.strtab) - // RUN: not ld.lld %t1.o %t2.o %t3.o %t4.a -o %t -Map=/ 2>&1 \ // RUN: | FileCheck -check-prefix=FAIL %s // FAIL: cannot open map file / diff --git a/lld/test/ELF/merge-gc-piece.s b/lld/test/ELF/merge-gc-piece.s index 95ea17c..329ba29 100644 --- a/lld/test/ELF/merge-gc-piece.s +++ b/lld/test/ELF/merge-gc-piece.s @@ -10,7 +10,7 @@ # CHECK-NEXT: SHF_ALLOC # CHECK-NEXT: SHF_MERGE # CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x1C8 +# CHECK-NEXT: Address: 0x190 # CHECK: Name: .bar # CHECK-NEXT: Type: SHT_PROGBITS @@ -24,7 +24,7 @@ # CHECK-NEXT: AddressAlignment: # CHECK-NEXT: EntrySize: # CHECK-NEXT: SectionData ( -# CHECK-NEXT: 0000: C9010000 00000000 CA010000 00000000 +# CHECK-NEXT: 0000: 91010000 00000000 92010000 00000000 # CHECK-NEXT: ) .section .foo,"aM",@progbits,8 diff --git a/lld/test/ELF/merge-shared-str.s b/lld/test/ELF/merge-shared-str.s index e06d00d..2ab03a4 100644 --- a/lld/test/ELF/merge-shared-str.s +++ b/lld/test/ELF/merge-shared-str.s @@ -19,10 +19,10 @@ // CHECK-NEXT: SHF_MERGE // CHECK-NEXT: SHF_STRINGS // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x1E1 +// CHECK-NEXT: Address: 0x1C8 // CHECK: Relocations [ // CHECK-NEXT: Section ({{.*}}) .rela.dyn { -// CHECK-NEXT: 0x{{.*}} R_X86_64_RELATIVE - 0x1E2 +// CHECK-NEXT: 0x{{.*}} R_X86_64_RELATIVE - 0x1C9 // CHECK-NEXT: } // CHECK-NEXT: ] diff --git a/lld/test/ELF/merge-shared.s b/lld/test/ELF/merge-shared.s index 3894e53..4c1d7c0 100644 --- a/lld/test/ELF/merge-shared.s +++ b/lld/test/ELF/merge-shared.s @@ -17,10 +17,10 @@ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_MERGE // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x1E4 +// CHECK-NEXT: Address: 0x1C8 // CHECK: Relocations [ // CHECK-NEXT: Section ({{.*}}) .rela.dyn { -// CHECK-NEXT: 0x{{.*}} R_X86_64_RELATIVE - 0x1E6 +// CHECK-NEXT: 0x{{.*}} R_X86_64_RELATIVE - 0x1CA // CHECK-NEXT: } // CHECK-NEXT: ] diff --git a/lld/test/ELF/merge-string.s b/lld/test/ELF/merge-string.s index 2496205..d284d0a 100644 --- a/lld/test/ELF/merge-string.s +++ b/lld/test/ELF/merge-string.s @@ -28,8 +28,8 @@ zed: // CHECK-NEXT: SHF_MERGE // CHECK-NEXT: SHF_STRINGS // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x1E1 -// CHECK-NEXT: Offset: 0x1E1 +// CHECK-NEXT: Address: 0x1C8 +// CHECK-NEXT: Offset: 0x1C8 // CHECK-NEXT: Size: 4 // CHECK-NEXT: Link: 0 // CHECK-NEXT: Info: 0 @@ -46,8 +46,8 @@ zed: // NOTAIL-NEXT: SHF_MERGE // NOTAIL-NEXT: SHF_STRINGS // NOTAIL-NEXT: ] -// NOTAIL-NEXT: Address: 0x1E1 -// NOTAIL-NEXT: Offset: 0x1E1 +// NOTAIL-NEXT: Address: 0x1C8 +// NOTAIL-NEXT: Offset: 0x1C8 // NOTAIL-NEXT: Size: 7 // NOTAIL-NEXT: Link: 0 // NOTAIL-NEXT: Info: 0 @@ -64,8 +64,8 @@ zed: // NOMERGE-NEXT: SHF_MERGE // NOMERGE-NEXT: SHF_STRINGS // NOMERGE-NEXT: ] -// NOMERGE-NEXT: Address: 0x1E1 -// NOMERGE-NEXT: Offset: 0x1E1 +// NOMERGE-NEXT: Address: 0x1C8 +// NOMERGE-NEXT: Offset: 0x1C8 // NOMERGE-NEXT: Size: 11 // NOMERGE-NEXT: Link: 0 // NOMERGE-NEXT: Info: 0 @@ -82,8 +82,8 @@ zed: // CHECK-NEXT: SHF_MERGE // CHECK-NEXT: SHF_STRINGS // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x1E6 -// CHECK-NEXT: Offset: 0x1E6 +// CHECK-NEXT: Address: 0x1CC +// CHECK-NEXT: Offset: 0x1CC // CHECK-NEXT: Size: 4 // CHECK-NEXT: Link: 0 // CHECK-NEXT: Info: 0 @@ -95,11 +95,11 @@ zed: // CHECK: Name: bar -// CHECK-NEXT: Value: 0x1E2 +// CHECK-NEXT: Value: 0x1C9 // CHECK: Name: foo -// CHECK-NEXT: Value: 0x1E1 +// CHECK-NEXT: Value: 0x1C8 // CHECK: Name: zed -// CHECK-NEXT: Value: 0x1E6 +// CHECK-NEXT: Value: 0x1CC // CHECK-NEXT: Size: 0 diff --git a/lld/test/ELF/merge-sym.s b/lld/test/ELF/merge-sym.s index 7329bd4..4a4e982 100644 --- a/lld/test/ELF/merge-sym.s +++ b/lld/test/ELF/merge-sym.s @@ -15,7 +15,7 @@ foo: // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_MERGE // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x1E4 +// CHECK-NEXT: Address: 0x1C8 // CHECK: Name: foo -// CHECK-NEXT: Value: 0x1E6 +// CHECK-NEXT: Value: 0x1CA diff --git a/lld/test/ELF/merge-to-non-alloc.s b/lld/test/ELF/merge-to-non-alloc.s index e2894ed..cb7a6e9 100644 --- a/lld/test/ELF/merge-to-non-alloc.s +++ b/lld/test/ELF/merge-to-non-alloc.s @@ -15,11 +15,11 @@ // CHECK-NEXT: AddressAlignment: // CHECK-NEXT: EntrySize: // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: E4010000 00000000 EC010000 00000000 | +// CHECK-NEXT: 0000: C8010000 00000000 D0010000 00000000 | // CHECK-NEXT: ) // CHECK: Name: foo -// CHECK-NEXT: Value: 0x1E4 +// CHECK-NEXT: Value: 0x1C8 .section .foo,"aM",@progbits,4 .align 4 diff --git a/lld/test/ELF/mips-got-string.s b/lld/test/ELF/mips-got-string.s index aec80dd..598865c 100644 --- a/lld/test/ELF/mips-got-string.s +++ b/lld/test/ELF/mips-got-string.s @@ -8,7 +8,7 @@ # CHECK: Symbol { # CHECK: Name: $.str -# CHECK-NEXT: Value: 0x105 +# CHECK-NEXT: Value: 0xF4 # CHECK: } # CHECK: Local entries [ diff --git a/lld/test/ELF/mips-gp-ext.s b/lld/test/ELF/mips-gp-ext.s index 4eed1ff..2fd21b7a 100644 --- a/lld/test/ELF/mips-gp-ext.s +++ b/lld/test/ELF/mips-gp-ext.s @@ -27,42 +27,42 @@ # REQUIRES: mips # REL: Contents of section .text: -# REL-NEXT: 0030 3c080000 2108010c 8f82ffcc +# REL-NEXT: 0000 3c080000 2108010c 8f82fffc # ^-- %hi(_gp_disp) # ^-- %lo(_gp_disp) # ^-- 8 - (0x10c - 0x100) # G - (GP - .got) # REL: Contents of section .reginfo: -# REL-NEXT: 0058 10000104 00000000 00000000 00000000 -# REL-NEXT: 0068 00000000 0000013c +# REL-NEXT: 0028 10000104 00000000 00000000 00000000 +# REL-NEXT: 0038 00000000 0000010c # ^-- _gp # REL: Contents of section .data: # REL-NEXT: 00f0 fffffef4 # ^-- 0-0x10c -# REL: 00000030 .text 00000000 foo +# REL: 00000000 .text 00000000 foo # REL: 00000000 *ABS* 00000000 .hidden _gp_disp -# REL: 0000013c *ABS* 00000000 .hidden _gp +# REL: 0000010c *ABS* 00000000 .hidden _gp # ABS: Contents of section .text: -# ABS-NEXT: 0030 3c080000 210801d0 8f82ff08 +# ABS-NEXT: 0000 3c080000 21080200 8f82ff08 # ^-- %hi(_gp_disp) # ^-- %lo(_gp_disp) # ^-- 8 - (0x200 - 0x100) # G - (GP - .got) # ABS: Contents of section .reginfo: -# ABS-NEXT: 0058 10000104 00000000 00000000 00000000 -# ABS-NEXT: 0068 00000000 00000200 +# ABS-NEXT: 0028 10000104 00000000 00000000 00000000 +# ABS-NEXT: 0038 00000000 00000200 # ^-- _gp # ABS: Contents of section .data: -# ABS-NEXT: 00f0 fffffe30 +# ABS-NEXT: 00f0 fffffe00 # ^-- 0-0x200 -# ABS: 00000030 .text 00000000 foo +# ABS: 00000000 .text 00000000 foo # ABS: 00000000 *ABS* 00000000 .hidden _gp_disp # ABS: 00000200 *ABS* 00000000 .hidden _gp diff --git a/lld/test/ELF/mips-gp-lowest.s b/lld/test/ELF/mips-gp-lowest.s index 7537ac8..32a3e85 100644 --- a/lld/test/ELF/mips-gp-lowest.s +++ b/lld/test/ELF/mips-gp-lowest.s @@ -26,7 +26,7 @@ foo: # CHECK-NEXT: SHF_MIPS_GPREL # CHECK-NEXT: SHF_WRITE # CHECK-NEXT: ] -# CHECK-NEXT: Address: 0xF0 +# CHECK-NEXT: Address: 0xE0 # CHECK: } # CHECK: Section { # CHECK: Name: .got @@ -36,9 +36,9 @@ foo: # CHECK-NEXT: SHF_MIPS_GPREL # CHECK-NEXT: SHF_WRITE # CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x100 +# CHECK-NEXT: Address: 0xF0 # CHECK: } # CHECK: Name: _gp (5) -# CHECK-NEXT: Value: 0x80E0 +# CHECK-NEXT: Value: 0x80D0 # ^-- 0xE0 + 0x7ff0 diff --git a/lld/test/ELF/note-noalloc.s b/lld/test/ELF/note-noalloc.s index ddbde3e..c79ba6e 100644 --- a/lld/test/ELF/note-noalloc.s +++ b/lld/test/ELF/note-noalloc.s @@ -25,7 +25,7 @@ // CHECK: Type: PT_NOTE // CHECK-NEXT: Offset: // CHECK-NEXT: VirtualAddress: 0x[[ADDR]] -// CHECK-NEXT: PhysicalAddress: 0x24C +// CHECK-NEXT: PhysicalAddress: 0x245 // CHECK-NEXT: FileSize: 16 // CHECK-NEXT: MemSize: 16 // CHECK-NOT: PT_NOTE diff --git a/lld/test/ELF/relocation-shared.s b/lld/test/ELF/relocation-shared.s index 730395a..4fba7a5 100644 --- a/lld/test/ELF/relocation-shared.s +++ b/lld/test/ELF/relocation-shared.s @@ -8,7 +8,7 @@ // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x1E1 +// CHECK-NEXT: Address: 0x1C8 // CHECK-NEXT: Offset: // CHECK-NEXT: Size: 8 // CHECK-NEXT: Link: 0 @@ -16,8 +16,8 @@ // CHECK-NEXT: AddressAlignment: 1 // CHECK-NEXT: EntrySize: 0 // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 1F0E0000 00000000 -// 0x1000 - 0x1E1 = 0xE1F +// CHECK-NEXT: 0000: 380E0000 00000000 +// 0x1000 - 0x1C8 = 0xE38 // CHECK-NEXT: ) // CHECK: Name: .text diff --git a/lld/test/ELF/relocation.s b/lld/test/ELF/relocation.s index 95d07738..3359a8b 100644 --- a/lld/test/ELF/relocation.s +++ b/lld/test/ELF/relocation.s @@ -113,7 +113,7 @@ R_X86_64_64: .quad R_X86_64_64 // CHECK: Contents of section .R_X86_64_64: -// CHECK-NEXT: 200298 98022000 00000000 +// CHECK-NEXT: 2001c8 c8012000 00000000 .section .R_X86_64_GOTPCREL,"a",@progbits .global R_X86_64_GOTPCREL @@ -123,7 +123,7 @@ R_X86_64_GOTPCREL: // 0x2020F8 - 0x2001D8 = 7952 // 7952 = 0x101f0000 in little endian // CHECK: Contents of section .R_X86_64_GOTPCREL -// CHECK-NEXT: 2002a0 502e0000 +// CHECK-NEXT: 2001d0 202f0000 .section .R_X86_64_GOT32,"a",@progbits .global R_X86_64_GOT32 diff --git a/lld/test/ELF/relro-omagic.s b/lld/test/ELF/relro-omagic.s index 3eac082..97c3a81 100644 --- a/lld/test/ELF/relro-omagic.s +++ b/lld/test/ELF/relro-omagic.s @@ -9,8 +9,8 @@ # NORELRO-NEXT: Idx Name Size Address Type # NORELRO-NEXT: 0 00000000 0000000000000000 # NORELRO-NEXT: 1 .dynsym 00000048 0000000000200120 -# NORELRO-NEXT: 2 .dynstr 00000021 0000000000200168 -# NORELRO-NEXT: 3 .hash 00000020 000000000020018c +# NORELRO-NEXT: 2 .hash 00000020 0000000000200168 +# NORELRO-NEXT: 3 .dynstr 00000021 0000000000200188 # NORELRO-NEXT: 4 .rela.dyn 00000018 00000000002001b0 # NORELRO-NEXT: 5 .rela.plt 00000018 00000000002001c8 # NORELRO-NEXT: 6 .text 0000000a 00000000002001e0 TEXT DATA diff --git a/lld/test/ELF/shared.s b/lld/test/ELF/shared.s index 6d4bcd1..65ad2c6 100644 --- a/lld/test/ELF/shared.s +++ b/lld/test/ELF/shared.s @@ -59,6 +59,21 @@ // CHECK-NEXT: 0030: // CHECK-NEXT: ) // CHECK-NEXT: } +// CHECK-NEXT: Section { +// CHECK-NEXT: Index: 3 +// CHECK-NEXT: Name: .hash +// CHECK-NEXT: Type: SHT_HASH +// CHECK-NEXT: Flags [ +// CHECK-NEXT: SHF_ALLOC +// CHECK-NEXT: ] +// CHECK-NEXT: Address: [[HASHADDR:.*]] +// CHECK-NEXT: Offset: +// CHECK-NEXT: Size: +// CHECK-NEXT: Link: 2 +// CHECK-NEXT: Info: 0 +// CHECK-NEXT: AddressAlignment: 4 +// CHECK-NEXT: EntrySize: 4 + // CHECK: Index: [[DYNSTR]] // CHECK-NEXT: Name: .dynstr // CHECK-NEXT: Type: SHT_STRTAB @@ -75,20 +90,6 @@ // CHECK-NEXT: SectionData ( // CHECK: ) // CHECK-NEXT: } -// CHECK-NEXT: Section { -// CHECK-NEXT: Index: 4 -// CHECK-NEXT: Name: .hash -// CHECK-NEXT: Type: SHT_HASH -// CHECK-NEXT: Flags [ -// CHECK-NEXT: SHF_ALLOC -// CHECK-NEXT: ] -// CHECK-NEXT: Address: [[HASHADDR:.*]] -// CHECK-NEXT: Offset: -// CHECK-NEXT: Size: -// CHECK-NEXT: Link: 2 -// CHECK-NEXT: Info: 0 -// CHECK-NEXT: AddressAlignment: 4 -// CHECK-NEXT: EntrySize: 4 // CHECK: Name: .rel.dyn // CHECK-NEXT: Type: SHT_REL diff --git a/lld/test/ELF/sort-norosegment.s b/lld/test/ELF/sort-norosegment.s index 6d02eee..bd74f2e 100644 --- a/lld/test/ELF/sort-norosegment.s +++ b/lld/test/ELF/sort-norosegment.s @@ -4,10 +4,10 @@ # RUN: ld.lld --hash-style=sysv -no-rosegment -o %t1 %t -shared # RUN: llvm-readobj -elf-output-style=GNU -s %t1 | FileCheck %s -# CHECK: .dynsym {{.*}} A -# CHECK-NEXT: .dynstr {{.*}} A -# CHECK-NEXT: .text {{.*}} AX +# CHECK: .text {{.*}} AX +# CHECK-NEXT: .dynsym {{.*}} A # CHECK-NEXT: .hash {{.*}} A +# CHECK-NEXT: .dynstr {{.*}} A # CHECK-NEXT: foo {{.*}} WA # CHECK-NEXT: .dynamic {{.*}} WA diff --git a/lld/test/ELF/synthetic-got.s b/lld/test/ELF/synthetic-got.s index 8bc7fc5..375a438 100644 --- a/lld/test/ELF/synthetic-got.s +++ b/lld/test/ELF/synthetic-got.s @@ -7,13 +7,13 @@ # RUN: | FileCheck %s --check-prefix=GOTDATA # GOT: Sections: -# GOT: 8 .got.plt 00000020 00000000000000d0 DATA -# GOT: 10 .got 00000008 00000000000001c0 DATA +# GOT: 8 .got.plt 00000020 00000000000000e0 DATA +# GOT: 10 .got 00000008 00000000000001d0 DATA # GOTDATA: Contents of section .got.plt: -# GOTDATA-NEXT: 00d0 f0000000 00000000 00000000 00000000 -# GOTDATA-NEXT: 00e0 00000000 00000000 c6000000 00000000 +# GOTDATA-NEXT: 00e0 00010000 00000000 00000000 00000000 +# GOTDATA-NEXT: 00f0 00000000 00000000 d6000000 00000000 # GOTDATA-NEXT: Contents of section .got: -# GOTDATA-NEXT: 01c0 00000000 00000000 +# GOTDATA-NEXT: 01d0 00000000 00000000 # RUN: echo "SECTIONS { .mygot : { *(.got) *(.got.plt) } }" > %t1.script # RUN: ld.lld --hash-style=sysv -shared %t.o -o %t1.out --script %t1.script @@ -21,12 +21,12 @@ # RUN: llvm-objdump -s -section=.mygot %t1.out | FileCheck %s --check-prefix=MYGOTDATA # MYGOT: Sections: -# MYGOT: 8 .mygot 00000028 00000000000000d0 DATA +# MYGOT: 8 .mygot 00000028 00000000000000e0 DATA # MYGOT-NOT: .got # MYGOT-NOT: .got.plt -# MYGOTDATA: 00d0 00000000 00000000 f8000000 00000000 -# MYGOTDATA-NEXT: 00e0 00000000 00000000 00000000 00000000 -# MYGOTDATA-NEXT: 00f0 c6000000 00000000 +# MYGOTDATA: 00e0 00000000 00000000 08010000 00000000 +# MYGOTDATA-NEXT: 00f0 00000000 00000000 00000000 00000000 +# MYGOTDATA-NEXT: 0100 d6000000 00000000 mov bar@gotpcrel(%rip), %rax call foo@plt diff --git a/lld/test/ELF/verdef-defaultver.s b/lld/test/ELF/verdef-defaultver.s index 4f01f17..c8444c4 100644 --- a/lld/test/ELF/verdef-defaultver.s +++ b/lld/test/ELF/verdef-defaultver.s @@ -55,8 +55,8 @@ # DSO-NEXT: ] # DSO-NEXT: Version symbols { # DSO-NEXT: Section Name: .gnu.version -# DSO-NEXT: Address: 0x256 -# DSO-NEXT: Offset: 0x256 +# DSO-NEXT: Address: 0x240 +# DSO-NEXT: Offset: 0x240 # DSO-NEXT: Link: 1 # DSO-NEXT: Symbols [ # DSO-NEXT: Symbol { @@ -150,8 +150,8 @@ # EXE-NEXT: ] # EXE-NEXT: Version symbols { # EXE-NEXT: Section Name: .gnu.version -# EXE-NEXT: Address: 0x20023C -# EXE-NEXT: Offset: 0x23C +# EXE-NEXT: Address: 0x200228 +# EXE-NEXT: Offset: 0x228 # EXE-NEXT: Link: 1 # EXE-NEXT: Symbols [ # EXE-NEXT: Symbol { diff --git a/lld/test/ELF/verdef.s b/lld/test/ELF/verdef.s index af7c2ad..b5d12ee 100644 --- a/lld/test/ELF/verdef.s +++ b/lld/test/ELF/verdef.s @@ -8,8 +8,8 @@ # DSO: Version symbols { # DSO-NEXT: Section Name: .gnu.version -# DSO-NEXT: Address: 0x260 -# DSO-NEXT: Offset: 0x260 +# DSO-NEXT: Address: 0x228 +# DSO-NEXT: Offset: 0x228 # DSO-NEXT: Link: 1 # DSO-NEXT: Symbols [ # DSO-NEXT: Symbol { @@ -70,8 +70,8 @@ # MAIN: Version symbols { # MAIN-NEXT: Section Name: .gnu.version -# MAIN-NEXT: Address: 0x200260 -# MAIN-NEXT: Offset: 0x260 +# MAIN-NEXT: Address: 0x200228 +# MAIN-NEXT: Offset: 0x228 # MAIN-NEXT: Link: 1 # MAIN-NEXT: Symbols [ # MAIN-NEXT: Symbol { diff --git a/lld/test/ELF/verneed.s b/lld/test/ELF/verneed.s index 3c92336..27ab047 100644 --- a/lld/test/ELF/verneed.s +++ b/lld/test/ELF/verneed.s @@ -10,70 +10,67 @@ # RUN: llvm-readobj -V -sections -section-data -dyn-symbols -dynamic-table %t | FileCheck %s # CHECK: Section { -# CHECK: Index: 1 -# CHECK-NEXT: Name: .dynsym -# CHECK-NEXT: Type: SHT_DYNSYM (0xB) -# CHECK-NEXT: Flags [ (0x2) -# CHECK-NEXT: SHF_ALLOC (0x2) -# CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x2001C8 -# CHECK-NEXT: Offset: 0x1C8 -# CHECK-NEXT: Size: 96 -# CHECK-NEXT: Link: 2 -# CHECK-NEXT: Info: 1 -# CHECK-NEXT: AddressAlignment: 8 -# CHECK-NEXT: EntrySize: 24 - -# CHECK: Section { -# CHECK-NEXT: Index: 2 -# CHECK-NEXT: Name: .dynstr -# CHECK-NEXT: Type: SHT_STRTAB (0x3) -# CHECK-NEXT: Flags [ (0x2) -# CHECK-NEXT: SHF_ALLOC (0x2) -# CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x200228 -# CHECK-NEXT: Offset: 0x228 -# CHECK-NEXT: Size: 47 -# CHECK-NEXT: Link: 0 -# CHECK-NEXT: Info: 0 -# CHECK-NEXT: AddressAlignment: 1 -# CHECK-NEXT: EntrySize: 0 -# CHECK-NEXT: SectionData ( -# CHECK-NEXT: 0000: 00766572 6E656564 312E736F 2E300076 |.verneed1.so.0.v| -# CHECK-NEXT: 0010: 65726E65 6564322E 736F2E30 00663100 |erneed2.so.0.f1.| -# CHECK-NEXT: 0020: 76330066 32007632 00673100 763100 |v3.f2.v2.g1.v1.| -# CHECK-NEXT: ) -# CHECK-NEXT: } - -# CHECK: Section { -# CHECK-NEXT: Index: 3 -# CHECK-NEXT: Name: .gnu.version -# CHECK-NEXT: Type: SHT_GNU_versym (0x6FFFFFFF) +# CHECK: Index: 1 +# CHECK-NEXT: Name: .dynsym +# CHECK-NEXT: Type: SHT_DYNSYM (0xB) # CHECK-NEXT: Flags [ (0x2) # CHECK-NEXT: SHF_ALLOC (0x2) # CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x200258 -# CHECK-NEXT: Offset: 0x258 -# CHECK-NEXT: Size: 8 -# CHECK-NEXT: Link: 1 -# CHECK-NEXT: Info: 0 -# CHECK-NEXT: AddressAlignment: 2 -# CHECK-NEXT: EntrySize: 2 - +# CHECK-NEXT: Address: 0x2001C8 +# CHECK-NEXT: Offset: 0x1C8 +# CHECK-NEXT: Size: 96 +# CHECK-NEXT: Link: 5 +# CHECK-NEXT: Info: 1 +# CHECK-NEXT: AddressAlignment: 8 +# CHECK-NEXT: EntrySize: 24 # CHECK: Section { -# CHECK-NEXT: Index: 4 -# CHECK-NEXT: Name: .gnu.version_r -# CHECK-NEXT: Type: SHT_GNU_verneed (0x6FFFFFFE) -# CHECK-NEXT: Flags [ (0x2) -# CHECK-NEXT: SHF_ALLOC (0x2) -# CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x200260 -# CHECK-NEXT: Offset: 0x260 -# CHECK-NEXT: Size: 80 -# CHECK-NEXT: Link: 2 -# CHECK-NEXT: Info: 2 -# CHECK-NEXT: AddressAlignment: 4 -# CHECK-NEXT: EntrySize: 0 +# CHECK-NEXT: Index: 2 +# CHECK-NEXT: Name: .gnu.version +# CHECK-NEXT: Type: SHT_GNU_versym (0x6FFFFFFF) +# CHECK-NEXT: Flags [ (0x2) +# CHECK-NEXT: SHF_ALLOC (0x2) +# CHECK-NEXT: ] +# CHECK-NEXT: Address: 0x200228 +# CHECK-NEXT: Offset: 0x228 +# CHECK-NEXT: Size: 8 +# CHECK-NEXT: Link: 1 +# CHECK-NEXT: Info: 0 +# CHECK-NEXT: AddressAlignment: 2 +# CHECK-NEXT: EntrySize: 2 +# CHECK: Section { +# CHECK-NEXT: Index: 3 +# CHECK-NEXT: Name: .gnu.version_r +# CHECK-NEXT: Type: SHT_GNU_verneed (0x6FFFFFFE) +# CHECK-NEXT: Flags [ (0x2) +# CHECK-NEXT: SHF_ALLOC (0x2) +# CHECK-NEXT: ] +# CHECK-NEXT: Address: 0x200230 +# CHECK-NEXT: Offset: 0x230 +# CHECK-NEXT: Size: 80 +# CHECK-NEXT: Link: 5 +# CHECK-NEXT: Info: 2 +# CHECK-NEXT: AddressAlignment: 4 +# CHECK-NEXT: EntrySize: 0 +# CHECK: Section { +# CHECK: Index: 5 +# CHECK-NEXT: Name: .dynstr +# CHECK-NEXT: Type: SHT_STRTAB +# CHECK-NEXT: Flags [ (0x2) +# CHECK-NEXT: SHF_ALLOC (0x2) +# CHECK-NEXT: ] +# CHECK-NEXT: Address: 0x2002A8 +# CHECK-NEXT: Offset: 0x2A8 +# CHECK-NEXT: Size: 47 +# CHECK-NEXT: Link: 0 +# CHECK-NEXT: Info: 0 +# CHECK-NEXT: AddressAlignment: 1 +# CHECK-NEXT: EntrySize: 0 +# CHECK-NEXT: SectionData ( +# CHECK-NEXT: 0000: 00766572 6E656564 312E736F 2E300076 |.verneed1.so.0.v| +# CHECK-NEXT: 0010: 65726E65 6564322E 736F2E30 00663100 |erneed2.so.0.f1.| +# CHECK-NEXT: 0020: 76330066 32007632 00673100 763100 |v3.f2.v2.g1.v1.| +# CHECK-NEXT: ) +# CHECK-NEXT: } # CHECK: DynamicSymbols [ # CHECK-NEXT: Symbol { @@ -114,14 +111,14 @@ # CHECK-NEXT: } # CHECK-NEXT: ] -# CHECK: 0x000000006FFFFFF0 VERSYM 0x200258 -# CHECK-NEXT: 0x000000006FFFFFFE VERNEED 0x200260 +# CHECK: 0x000000006FFFFFF0 VERSYM 0x200228 +# CHECK-NEXT: 0x000000006FFFFFFE VERNEED 0x200230 # CHECK-NEXT: 0x000000006FFFFFFF VERNEEDNUM 2 # CHECK: Version symbols { # CHECK-NEXT: Section Name: .gnu.version -# CHECK-NEXT: Address: 0x200258 -# CHECK-NEXT: Offset: 0x258 +# CHECK-NEXT: Address: 0x200228 +# CHECK-NEXT: Offset: 0x228 # CHECK-NEXT: Link: 1 # CHECK-NEXT: Symbols [ # CHECK-NEXT: Symbol { diff --git a/lld/test/ELF/version-script-extern.s b/lld/test/ELF/version-script-extern.s index cee5c7b..c63ff81 100644 --- a/lld/test/ELF/version-script-extern.s +++ b/lld/test/ELF/version-script-extern.s @@ -68,8 +68,8 @@ # DSO-NEXT: ] # DSO-NEXT: Version symbols { # DSO-NEXT: Section Name: .gnu.version -# DSO-NEXT: Address: 0x312 -# DSO-NEXT: Offset: 0x312 +# DSO-NEXT: Address: 0x258 +# DSO-NEXT: Offset: 0x258 # DSO-NEXT: Link: 1 # DSO-NEXT: Symbols [ # DSO-NEXT: Symbol { diff --git a/lld/test/ELF/x86-64-retpoline-linkerscript.s b/lld/test/ELF/x86-64-retpoline-linkerscript.s index 03c3ef2..d173cf5 100644 --- a/lld/test/ELF/x86-64-retpoline-linkerscript.s +++ b/lld/test/ELF/x86-64-retpoline-linkerscript.s @@ -14,8 +14,8 @@ // CHECK: Disassembly of section .plt: // CHECK-NEXT: .plt: -// CHECK-NEXT: 10: ff 35 ea 00 00 00 pushq 234(%rip) -// CHECK-NEXT: 16: 4c 8b 1d eb 00 00 00 movq 235(%rip), %r11 +// CHECK-NEXT: 10: ff 35 4a 01 00 00 pushq 330(%rip) +// CHECK-NEXT: 16: 4c 8b 1d 4b 01 00 00 movq 331(%rip), %r11 // CHECK-NEXT: 1d: e8 0e 00 00 00 callq 14 <.plt+0x20> // CHECK-NEXT: 22: f3 90 pause // CHECK-NEXT: 24: 0f ae e8 lfence @@ -40,7 +40,7 @@ // CHECK-NEXT: 3d: cc int3 // CHECK-NEXT: 3e: cc int3 // CHECK-NEXT: 3f: cc int3 -// CHECK-NEXT: 40: 4c 8b 1d c9 00 00 00 movq 201(%rip), %r11 +// CHECK-NEXT: 40: 4c 8b 1d 29 01 00 00 movq 297(%rip), %r11 // CHECK-NEXT: 47: e8 e4 ff ff ff callq -28 <.plt+0x20> // CHECK-NEXT: 4c: e9 d1 ff ff ff jmp -47 <.plt+0x12> // CHECK-NEXT: 51: 68 00 00 00 00 pushq $0 @@ -50,7 +50,7 @@ // CHECK-NEXT: 5d: cc int3 // CHECK-NEXT: 5e: cc int3 // CHECK-NEXT: 5f: cc int3 -// CHECK-NEXT: 60: 4c 8b 1d b1 00 00 00 movq 177(%rip), %r11 +// CHECK-NEXT: 60: 4c 8b 1d 11 01 00 00 movq 273(%rip), %r11 // CHECK-NEXT: 67: e8 c4 ff ff ff callq -60 <.plt+0x20> // CHECK-NEXT: 6c: e9 b1 ff ff ff jmp -79 <.plt+0x12> // CHECK-NEXT: 71: 68 01 00 00 00 pushq $1 diff --git a/lld/test/ELF/x86-64-retpoline-znow-linkerscript.s b/lld/test/ELF/x86-64-retpoline-znow-linkerscript.s index e4eed84..27737b8 100644 --- a/lld/test/ELF/x86-64-retpoline-znow-linkerscript.s +++ b/lld/test/ELF/x86-64-retpoline-znow-linkerscript.s @@ -35,13 +35,13 @@ // CHECK-NEXT: 2d: cc int3 // CHECK-NEXT: 2e: cc int3 // CHECK-NEXT: 2f: cc int3 -// CHECK-NEXT: 30: 4c 8b 1d a9 00 00 00 movq 169(%rip), %r11 +// CHECK-NEXT: 30: 4c 8b 1d 09 01 00 00 movq 265(%rip), %r11 // CHECK-NEXT: 37: e9 d4 ff ff ff jmp -44 <.plt> // CHECK-NEXT: 3c: cc int3 // CHECK-NEXT: 3d: cc int3 // CHECK-NEXT: 3e: cc int3 // CHECK-NEXT: 3f: cc int3 -// CHECK-NEXT: 40: 4c 8b 1d a1 00 00 00 movq 161(%rip), %r11 +// CHECK-NEXT: 40: 4c 8b 1d 01 01 00 00 movq 257(%rip), %r11 // CHECK-NEXT: 47: e9 c4 ff ff ff jmp -60 <.plt> // CHECK-NEXT: 4c: cc int3 // CHECK-NEXT: 4d: cc int3 -- 2.7.4