[lld] r308005 - [ELF] - Remove dependency on precompiled inputs from -gdb-index testcases.

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 14 01:26:44 PDT 2017


Author: grimar
Date: Fri Jul 14 01:26:44 2017
New Revision: 308005

URL: http://llvm.org/viewvc/llvm-project?rev=308005&view=rev
Log:
[ELF] - Remove dependency on precompiled inputs from -gdb-index testcases.

Previously we used precompiled objects in gdb-index.s and
debug-gnu-pubnames.s testcases. We can avoid that.

Differential revision: https://reviews.llvm.org/D35360


Added:
    lld/trunk/test/ELF/Inputs/gdb-index.s
Removed:
    lld/trunk/test/ELF/Inputs/gdb-index-a.elf
    lld/trunk/test/ELF/Inputs/gdb-index-b.elf
Modified:
    lld/trunk/test/ELF/debug-gnu-pubnames.s
    lld/trunk/test/ELF/gdb-index.s

Removed: lld/trunk/test/ELF/Inputs/gdb-index-a.elf
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/Inputs/gdb-index-a.elf?rev=308004&view=auto
==============================================================================
Binary file - no diff available.

Removed: lld/trunk/test/ELF/Inputs/gdb-index-b.elf
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/Inputs/gdb-index-b.elf?rev=308004&view=auto
==============================================================================
Binary file - no diff available.

Added: lld/trunk/test/ELF/Inputs/gdb-index.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/Inputs/gdb-index.s?rev=308005&view=auto
==============================================================================
--- lld/trunk/test/ELF/Inputs/gdb-index.s (added)
+++ lld/trunk/test/ELF/Inputs/gdb-index.s Fri Jul 14 01:26:44 2017
@@ -0,0 +1,73 @@
+.text
+.Ltext0:
+.globl main2
+.type main2, @function
+main2:
+ nop
+ nop
+.Letext0:
+
+.section .debug_info,"", at progbits
+.long 0x30
+.value 0x4
+.long 0
+.byte 0x8
+.uleb128 0x1
+.quad .Ltext0
+.quad .Letext0-.Ltext0
+.long 0
+.long 0
+.long 0
+.long 0
+.byte 0x63
+.byte 0x88
+.byte 0xb4
+.byte 0x61
+.byte 0xaa
+.byte 0xb6
+.byte 0xb0
+.byte 0x67
+
+.section .debug_abbrev,"", at progbits
+.uleb128 0x1
+.uleb128 0x11
+.byte 0
+.uleb128 0x11
+.uleb128 0x1
+.uleb128 0x12
+.uleb128 0x7
+.uleb128 0x10
+.uleb128 0x17
+.uleb128 0x2130
+.uleb128 0xe
+.uleb128 0x1b
+.uleb128 0xe
+.uleb128 0x2134
+.uleb128 0x19
+.uleb128 0x2133
+.uleb128 0x17
+.uleb128 0x2131
+.uleb128 0x7
+.byte 0
+.byte 0
+.byte 0
+
+.section .debug_gnu_pubnames,"", at progbits
+.long 0x18
+.value 0x2
+.long 0
+.long 0x33
+.long 0x18
+.byte 0x30
+.string "main2"
+.long 0
+
+.section .debug_gnu_pubtypes,"", at progbits
+.long 0x17
+.value 0x2
+.long 0
+.long 0x33
+.long 0x2b
+.byte 0x90
+.string "int"
+.long 0

Modified: lld/trunk/test/ELF/debug-gnu-pubnames.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/debug-gnu-pubnames.s?rev=308005&r1=308004&r2=308005&view=diff
==============================================================================
--- lld/trunk/test/ELF/debug-gnu-pubnames.s (original)
+++ lld/trunk/test/ELF/debug-gnu-pubnames.s Fri Jul 14 01:26:44 2017
@@ -1,10 +1,18 @@
 # REQUIRES: x86
-# RUN: ld.lld -e main %p/Inputs/gdb-index-a.elf %p/Inputs/gdb-index-b.elf -o %t1.exe
-# RUN: llvm-readobj -sections %t1.exe | FileCheck -check-prefix=CHECK1 %s
-# CHECK1: Name: .debug_gnu_pubnames
-# CHECK1: Name: .debug_gnu_pubtypes
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
 
-# RUN: ld.lld -gdb-index -e main %p/Inputs/gdb-index-a.elf %p/Inputs/gdb-index-b.elf -o %t2.exe
-# RUN: llvm-readobj -sections %t2.exe | FileCheck -check-prefix=CHECK2 %s
-# CHECK2-NOT: Name: .debug_gnu_pubnames
-# CHECK2-NOT: Name: .debug_gnu_pubtypes
+# RUN: ld.lld %t.o -o %t1.exe
+# RUN: llvm-readobj -sections %t1.exe | FileCheck %s
+# CHECK: .debug_gnu_pubnames
+# CHECK: .debug_gnu_pubtypes
+
+# RUN: ld.lld -gdb-index %t.o -o %t2.exe
+# RUN: llvm-readobj -sections %t2.exe | FileCheck %s --check-prefix=GDB
+# GDB-NOT: .debug_gnu_pubnames
+# GDB-NOT: .debug_gnu_pubtypes
+
+.section .debug_gnu_pubnames,"", at progbits
+.long 0
+
+.section .debug_gnu_pubtypes,"", at progbits
+.long 0

Modified: lld/trunk/test/ELF/gdb-index.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/gdb-index.s?rev=308005&r1=308004&r2=308005&view=diff
==============================================================================
--- lld/trunk/test/ELF/gdb-index.s (original)
+++ lld/trunk/test/ELF/gdb-index.s Fri Jul 14 01:26:44 2017
@@ -1,32 +1,19 @@
-## gdb-index-a.elf and gdb-index-b.elf are a test.o and test2.o renamed,
-## were generated in this way:
-## test.cpp:
-##  int main() { return 0; }
-## test2.cpp:
-##  int main2() { return 0; }
-## Compiled with:
-## gcc -gsplit-dwarf -c test.cpp test2.cpp
-## gcc version 5.3.1 20160413
-## Info about gdb-index: https://sourceware.org/gdb/onlinedocs/gdb/Index-Section-Format.html
-
 # REQUIRES: x86
-# RUN: ld.lld --gdb-index -e main %p/Inputs/gdb-index-a.elf %p/Inputs/gdb-index-b.elf -o %t
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t1.o
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/gdb-index.s -o %t2.o
+# RUN: ld.lld --gdb-index -e main %t1.o %t2.o -o %t
 # RUN: llvm-dwarfdump -debug-dump=gdb_index %t | FileCheck %s
 # RUN: llvm-objdump -d %t | FileCheck %s --check-prefix=DISASM
 
 # DISASM:       Disassembly of section .text:
 # DISASM:       main:
-# DISASM-CHECK:     11000: 55 pushq %rbp
-# DISASM-CHECK:     11001: 48 89 e5 movq %rsp, %rbp
-# DISASM-CHECK:     11004: b8 00 00 00 00 movl $0, %eax
-# DISASM-CHECK:     11009: 5d popq %rbp
-# DISASM-CHECK:     1100a: c3 retq
-# DISASM:       _Z5main2v:
-# DISASM-CHECK:     1100b: 55 pushq %rbp
-# DISASM-CHECK:     1100c: 48 89 e5  movq %rsp, %rbp
-# DISASM-CHECK:     1100f: b8 00 00 00 00 movl $0, %eax
-# DISASM-CHECK:     11014: 5d popq %rbp
-# DISASM-CHECK:     11015: c3 retq
+# DISASM-CHECK:   201000: 90 nop
+# DISASM-CHECK:   201001: cc int3
+# DISASM-CHECK:   201002: cc int3
+# DISASM-CHECK:   201003: cc int3
+# DISASM:       main2:
+# DISASM-CHECK:   201004: 90 nop
+# DISASM-CHECK:   201005: 90 nop
 
 # CHECK:      .gnu_index contents:
 # CHECK-NEXT:    Version = 7
@@ -34,8 +21,8 @@
 # CHECK-NEXT:    0: Offset = 0x0, Length = 0x34
 # CHECK-NEXT:    1: Offset = 0x34, Length = 0x34
 # CHECK:       Address area offset = 0x38, has 2 entries:
-# CHECK-NEXT:    Low/High address = [0x201000, 0x20100b) (Size: 0xb), CU id = 0
-# CHECK-NEXT:    Low/High address = [0x20100b, 0x201016) (Size: 0xb), CU id = 1
+# CHECK-NEXT:    Low/High address = [0x201000, 0x201001) (Size: 0x1), CU id = 0
+# CHECK-NEXT:    Low/High address = [0x201004, 0x201006) (Size: 0x2), CU id = 1
 # CHECK:       Symbol table offset = 0x60, size = 1024, filled slots:
 # CHECK-NEXT:    489: Name offset = 0x1d, CU vector offset = 0x0
 # CHECK-NEXT:      String name: main, CU vector index: 0
@@ -47,3 +34,79 @@
 # CHECK-NEXT:    0(0x0): 0x30000000
 # CHECK-NEXT:    1(0x8): 0x90000000 0x90000001
 # CHECK-NEXT:    2(0x14): 0x30000001
+
+## The following section contents are created by this using gcc 7.1.0:
+## echo 'int main() { return 0; }' | gcc -gsplit-dwarf -xc++ -S -o- -
+
+.text
+.Ltext0:
+.globl main
+.type main, @function
+main:
+ nop
+.Letext0:
+
+.section .debug_info,"", at progbits
+.long 0x30
+.value 0x4
+.long 0
+.byte 0x8
+.uleb128 0x1
+.quad .Ltext0
+.quad .Letext0-.Ltext0
+.long 0
+.long 0
+.long 0
+.long 0
+.byte 0x63
+.byte 0x88
+.byte 0xb4
+.byte 0x61
+.byte 0xaa
+.byte 0xb6
+.byte 0xb0
+.byte 0x67
+
+.section .debug_abbrev,"", at progbits
+.uleb128 0x1
+.uleb128 0x11
+.byte 0
+.uleb128 0x11
+.uleb128 0x1
+.uleb128 0x12
+.uleb128 0x7
+.uleb128 0x10
+.uleb128 0x17
+.uleb128 0x2130
+.uleb128 0xe
+.uleb128 0x1b
+.uleb128 0xe
+.uleb128 0x2134
+.uleb128 0x19
+.uleb128 0x2133
+.uleb128 0x17
+.uleb128 0x2131
+.uleb128 0x7
+.byte 0
+.byte 0
+.byte 0
+
+.section .debug_gnu_pubnames,"", at progbits
+.long 0x18
+.value 0x2
+.long 0
+.long 0x33
+.long 0x18
+.byte 0x30
+.string "main"
+.long 0
+
+.section .debug_gnu_pubtypes,"", at progbits
+.long 0x17
+.value 0x2
+.long 0
+.long 0x33
+.long 0x2b
+.byte 0x90
+.string "int"
+.long 0




More information about the llvm-commits mailing list