aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/tools/llvm-readobj/ELF/note-freebsd.test
blob: f079ac8b4c387f0207e632f2dba62eba264f5d9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
## Test that note values are interpreted correctly for FreeBSD executables.
# RUN: yaml2obj %s -o %t.o
# RUN: llvm-readelf --notes %t.o | FileCheck %s --check-prefixes=GNU --strict-whitespace
# RUN: llvm-readobj --notes %t.o | FileCheck %s --check-prefix=LLVM --strict-whitespace

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
  Machine: EM_RISCV
Sections:
  - Name:         .note.tag
    Type:         SHT_NOTE
    AddressAlign: 0x0000000000000004
    Notes:
      - Name: FreeBSD
        Desc: '6CD61300'
        Type: NT_FREEBSD_ABI_TAG
      - Name: FreeBSD
        Desc: '6C'  # Invalid data (should be 4 bytes)
        Type: NT_FREEBSD_ABI_TAG
      - Name: FreeBSD
        Desc: '61617263683634'
        Type: NT_FREEBSD_ARCH_TAG
      - Name: FreeBSD
        Desc: 'FFFFFFFF'
        Type: NT_FREEBSD_FEATURE_CTL
      - Name: FreeBSD
        Desc: '00'  # Invalid data (should be 4 bytes)
        Type: NT_FREEBSD_FEATURE_CTL
      - Name: FreeBSD
        Desc: '00000000'
        Type: NT_FREEBSD_NOINIT_TAG
      - Name: FreeBSD
        Desc: '616263646566'
        Type: 0xabcdef
      - Name: FreeBSD
        Desc: '616263646566'
        Type: NT_FREEBSD_PROCSTAT_RLIMIT # Only valid for coredumps.

# GNU: Displaying notes found in: .note.tag
# GNU-NEXT: Owner                Data size 	Description
# GNU-NEXT: FreeBSD              0x00000004	NT_FREEBSD_ABI_TAG (ABI version tag)
# GNU-NEXT:   ABI tag: 1300076
# GNU-NEXT: FreeBSD              0x00000001	NT_FREEBSD_ABI_TAG (ABI version tag)
# GNU-NEXT:   description data: 6c
# GNU-NEXT: FreeBSD              0x00000007	NT_FREEBSD_ARCH_TAG (architecture tag)
# GNU-NEXT:   Arch tag: aarch64
# GNU-NEXT: FreeBSD              0x00000004	NT_FREEBSD_FEATURE_CTL (FreeBSD feature control)
# GNU-NEXT:   Feature flags: ASLR_DISABLE PROTMAX_DISABLE STKGAP_DISABLE WXNEEDED LA48 ASG_DISABLE (0xFFFFFFFF)
# GNU-NEXT: FreeBSD              0x00000001	NT_FREEBSD_FEATURE_CTL (FreeBSD feature control)
# GNU-NEXT:   description data: 00
# GNU-NEXT: FreeBSD              0x00000004	NT_FREEBSD_NOINIT_TAG (no .init tag)
# GNU-NEXT:   description data: 00 00 00 00
# GNU-NEXT: FreeBSD              0x00000006	Unknown note type: (0x00abcdef)
# GNU-NEXT:   description data: 61 62 63 64 65 66
## NT_FREEBSD_PROCSTAT_RLIMIT is only a valid type for coredumps and should therefore not be decoded.
## Note: Binutils prints NT_PROCSTAT_RLIMIT, but this seems incorrect
# GNU-NEXT: FreeBSD              0x00000006	Unknown note type: (0x0000000d)
# GNU-NEXT:   description data: 61 62 63 64 65 66
# GNU-EMPTY:

# LLVM:     NoteSections [
# LLVM-NEXT:  NoteSection {
# LLVM-NEXT:    Name: .note.tag
# LLVM-NEXT:    Offset: 0x40
# LLVM-NEXT:    Size: 0xCC
# LLVM-NEXT:    Notes [
# LLVM-NEXT:        {
# LLVM-NEXT:            Owner: FreeBSD
# LLVM-NEXT:            Data size: 0x4
# LLVM-NEXT:            Type: NT_FREEBSD_ABI_TAG (ABI version tag)
# LLVM-NEXT:            ABI tag: 1300076
# LLVM-NEXT:        }
# LLVM-NEXT:        {
# LLVM-NEXT:            Owner: FreeBSD
# LLVM-NEXT:            Data size: 0x1
# LLVM-NEXT:            Type: NT_FREEBSD_ABI_TAG (ABI version tag)
# LLVM-NEXT:            Description data (
# LLVM-NEXT:                0000: 6C                                   |l|
# LLVM-NEXT:            )
# LLVM-NEXT:        }
# LLVM-NEXT:        {
# LLVM-NEXT:            Owner: FreeBSD
# LLVM-NEXT:            Data size: 0x7
# LLVM-NEXT:            Type: NT_FREEBSD_ARCH_TAG (architecture tag)
# LLVM-NEXT:            Arch tag: aarch64
# LLVM-NEXT:        }
# LLVM-NEXT:        {
# LLVM-NEXT:            Owner: FreeBSD
# LLVM-NEXT:            Data size: 0x4
# LLVM-NEXT:            Type: NT_FREEBSD_FEATURE_CTL (FreeBSD feature control)
# LLVM-NEXT:            Feature flags: ASLR_DISABLE PROTMAX_DISABLE STKGAP_DISABLE WXNEEDED LA48 ASG_DISABLE (0xFFFFFFFF)
# LLVM-NEXT:        }
# LLVM-NEXT:        {
# LLVM-NEXT:            Owner: FreeBSD
# LLVM-NEXT:            Data size: 0x1
# LLVM-NEXT:            Type: NT_FREEBSD_FEATURE_CTL (FreeBSD feature control)
# LLVM-NEXT:            Description data (
# LLVM-NEXT:                0000: 00                                   |.|
# LLVM-NEXT:            )
# LLVM-NEXT:        }
# LLVM-NEXT:        {
# LLVM-NEXT:            Owner: FreeBSD
# LLVM-NEXT:            Data size: 0x4
# LLVM-NEXT:            Type: NT_FREEBSD_NOINIT_TAG (no .init tag)
# LLVM-NEXT:            Description data (
# LLVM-NEXT:                0000: 00000000                             |....|
# LLVM-NEXT:            )
# LLVM-NEXT:        }
# LLVM-NEXT:        {
# LLVM-NEXT:            Owner: FreeBSD
# LLVM-NEXT:            Data size: 0x6
# LLVM-NEXT:            Type: Unknown (0x00abcdef)
# LLVM-NEXT:            Description data (
# LLVM-NEXT:                0000: 61626364 6566                        |abcdef|
# LLVM-NEXT:            )
# LLVM-NEXT:        }
# LLVM-NEXT:        {
# LLVM-NEXT:            Owner: FreeBSD
# LLVM-NEXT:            Data size: 0x6
# LLVM-NEXT:            Type: Unknown (0x0000000d)
# LLVM-NEXT:            Description data (
# LLVM-NEXT:                0000: 61626364 6566                        |abcdef|
# LLVM-NEXT:            )
# LLVM-NEXT:        }
# LLVM-NEXT:    ]
# LLVM-NEXT:  }
# LLVM-NEXT:]