150
|
1 # REQUIRES: x86
|
|
2 # RUN: llvm-mc -filetype=obj -triple=x86_64-linux-gnu %s -o %t.o
|
|
3 # RUN: ld.lld %t.o -o %t
|
|
4 # RUN: llvm-readobj --sections -n %t | FileCheck %s
|
|
5
|
|
6 ## Check that .note.gnu.property has alignment 8 and is readable by llvm-readobj
|
|
7
|
|
8 # CHECK: Name: .note.gnu.property
|
|
9 # CHECK-NEXT: Type: SHT_NOTE (0x7)
|
|
10 # CHECK-NEXT: Flags [ (0x2)
|
|
11 # CHECK-NEXT: SHF_ALLOC (0x2)
|
|
12 # CHECK-NEXT: ]
|
|
13 # CHECK-NEXT: Address: 0x200190
|
|
14 # CHECK-NEXT: Offset: 0x190
|
|
15 # CHECK-NEXT: Size: 32
|
|
16 # CHECK-NEXT: Link: 0
|
|
17 # CHECK-NEXT: Info: 0
|
|
18 # CHECK-NEXT: AddressAlignment: 8
|
|
19
|
|
20 # CHECK: Note {
|
|
21 # CHECK-NEXT: Owner: GNU
|
|
22 # CHECK-NEXT: Data size: 0x10
|
|
23 # CHECK-NEXT: Type: NT_GNU_PROPERTY_TYPE_0 (property note)
|
|
24 # CHECK-NEXT: Property [
|
|
25 # CHECK-NEXT: x86 feature: IBT
|
|
26
|
|
27
|
|
28 .section ".note.gnu.property", "a"
|
|
29 .long 4
|
|
30 .long 0x10
|
|
31 .long 0x5
|
|
32 .asciz "GNU"
|
|
33
|
|
34 .long 0xc0000002 # GNU_PROPERTY_X86_FEATURE_1_AND
|
|
35 .long 4
|
|
36 .long 1 # GNU_PROPERTY_X86_FEATURE_1_IBT
|
|
37 .long 0
|
|
38
|
|
39 .text
|
|
40 .globl _start
|
|
41 .type _start, %function
|
|
42 _start: ret
|