1 // See tests for GNU_PROPERTY_AARCH64_FEATURE_PAUTH in aarch64-feature-pauth.s
3 // RUN
: llvm-mc
-filetype
=obj
-triple aarch64-linux-gnu
%s
-o
%t
4 // RUN
: llvm-readelf
--notes
%t | FileCheck
%s
--check-prefix
=GNU
5 // RUN
: llvm-readobj
--notes
%t | FileCheck
%s
--check-prefix
=LLVM
7 // GNU
: Displaying notes found in
: .note.gnu.property
8 // GNU-NEXT
: Owner Data size Description
9 // GNU-NEXT
: GNU
0x00000010 NT_GNU_PROPERTY_TYPE_0
(property note
)
10 // GNU-NEXT
: Properties
: aarch64 feature
: BTI
, PAC
, GCS
12 // LLVM
: NoteSections
[
13 // LLVM-NEXT
: NoteSection
{
14 // LLVM-NEXT
: Name
: .note.gnu.property
15 // LLVM-NEXT
: Offset
: 0x40
16 // LLVM-NEXT
: Size
: 0x20
19 // LLVM-NEXT
: Owner
: GNU
20 // LLVM-NEXT
: Data size
: 0x10
21 // LLVM-NEXT
: Type
: NT_GNU_PROPERTY_TYPE_0
(property note
)
22 // LLVM-NEXT
: Property
[
23 // LLVM-NEXT
: aarch64 feature
: BTI
, PAC
, GCS
30 .section ".note.gnu.property", "a"
31 .long 4 /* Name length is always 4 ("GNU") */
32 .long end - begin /* Data length */
33 .long 5 /* Type: NT_GNU_PROPERTY_TYPE_0 */
34 .asciz "GNU" /* Name */
37 /* BTI, PAC, and GCS property note */
38 .long 0xc0000000 /* Type: GNU_PROPERTY_AARCH64_FEATURE_1_AND */
39 .long 4 /* Data size */
40 .long 7 /* BTI, PAC, GCS */
41 .p2align 3 /* Align to 8 byte for 64 bit */