1## Test that note values are interpreted correctly for FreeBSD executables. 2# RUN: yaml2obj %s -o %t.o 3# RUN: llvm-readelf --notes %t.o | FileCheck %s --check-prefixes=GNU --strict-whitespace 4# RUN: llvm-readobj --notes %t.o | FileCheck %s --check-prefix=LLVM --strict-whitespace 5 6--- !ELF 7FileHeader: 8 Class: ELFCLASS64 9 Data: ELFDATA2LSB 10 Type: ET_EXEC 11 Machine: EM_RISCV 12Sections: 13 - Name: .note.tag 14 Type: SHT_NOTE 15 AddressAlign: 0x0000000000000004 16 Notes: 17 - Name: FreeBSD 18 Desc: '6CD61300' 19 Type: NT_FREEBSD_ABI_TAG 20 - Name: FreeBSD 21 Desc: '6C' # Invalid data (should be 4 bytes) 22 Type: NT_FREEBSD_ABI_TAG 23 - Name: FreeBSD 24 Desc: '61617263683634' 25 Type: NT_FREEBSD_ARCH_TAG 26 - Name: FreeBSD 27 Desc: 'FFFFFFFF' 28 Type: NT_FREEBSD_FEATURE_CTL 29 - Name: FreeBSD 30 Desc: '00' # Invalid data (should be 4 bytes) 31 Type: NT_FREEBSD_FEATURE_CTL 32 - Name: FreeBSD 33 Desc: '00000000' 34 Type: NT_FREEBSD_NOINIT_TAG 35 - Name: FreeBSD 36 Desc: '616263646566' 37 Type: 0xabcdef 38 - Name: FreeBSD 39 Desc: '616263646566' 40 Type: NT_FREEBSD_PROCSTAT_RLIMIT # Only valid for coredumps. 41 42# GNU: Displaying notes found in: .note.tag 43# GNU-NEXT: Owner Data size Description 44# GNU-NEXT: FreeBSD 0x00000004 NT_FREEBSD_ABI_TAG (ABI version tag) 45# GNU-NEXT: ABI tag: 1300076 46# GNU-NEXT: FreeBSD 0x00000001 NT_FREEBSD_ABI_TAG (ABI version tag) 47# GNU-NEXT: description data: 6c 48# GNU-NEXT: FreeBSD 0x00000007 NT_FREEBSD_ARCH_TAG (architecture tag) 49# GNU-NEXT: Arch tag: aarch64 50# GNU-NEXT: FreeBSD 0x00000004 NT_FREEBSD_FEATURE_CTL (FreeBSD feature control) 51# GNU-NEXT: Feature flags: ASLR_DISABLE PROTMAX_DISABLE STKGAP_DISABLE WXNEEDED LA48 ASG_DISABLE (0xFFFFFFFF) 52# GNU-NEXT: FreeBSD 0x00000001 NT_FREEBSD_FEATURE_CTL (FreeBSD feature control) 53# GNU-NEXT: description data: 00 54# GNU-NEXT: FreeBSD 0x00000004 NT_FREEBSD_NOINIT_TAG (no .init tag) 55# GNU-NEXT: description data: 00 00 00 00 56# GNU-NEXT: FreeBSD 0x00000006 Unknown note type: (0x00abcdef) 57# GNU-NEXT: description data: 61 62 63 64 65 66 58## NT_FREEBSD_PROCSTAT_RLIMIT is only a valid type for coredumps and should therefore not be decoded. 59## Note: Binutils prints NT_PROCSTAT_RLIMIT, but this seems incorrect 60# GNU-NEXT: FreeBSD 0x00000006 Unknown note type: (0x0000000d) 61# GNU-NEXT: description data: 61 62 63 64 65 66 62# GNU-EMPTY: 63 64# LLVM: NoteSections [ 65# LLVM-NEXT: NoteSection { 66# LLVM-NEXT: Name: .note.tag 67# LLVM-NEXT: Offset: 0x40 68# LLVM-NEXT: Size: 0xCC 69# LLVM-NEXT: Notes [ 70# LLVM-NEXT: { 71# LLVM-NEXT: Owner: FreeBSD 72# LLVM-NEXT: Data size: 0x4 73# LLVM-NEXT: Type: NT_FREEBSD_ABI_TAG (ABI version tag) 74# LLVM-NEXT: ABI tag: 1300076 75# LLVM-NEXT: } 76# LLVM-NEXT: { 77# LLVM-NEXT: Owner: FreeBSD 78# LLVM-NEXT: Data size: 0x1 79# LLVM-NEXT: Type: NT_FREEBSD_ABI_TAG (ABI version tag) 80# LLVM-NEXT: Description data ( 81# LLVM-NEXT: 0000: 6C |l| 82# LLVM-NEXT: ) 83# LLVM-NEXT: } 84# LLVM-NEXT: { 85# LLVM-NEXT: Owner: FreeBSD 86# LLVM-NEXT: Data size: 0x7 87# LLVM-NEXT: Type: NT_FREEBSD_ARCH_TAG (architecture tag) 88# LLVM-NEXT: Arch tag: aarch64 89# LLVM-NEXT: } 90# LLVM-NEXT: { 91# LLVM-NEXT: Owner: FreeBSD 92# LLVM-NEXT: Data size: 0x4 93# LLVM-NEXT: Type: NT_FREEBSD_FEATURE_CTL (FreeBSD feature control) 94# LLVM-NEXT: Feature flags: ASLR_DISABLE PROTMAX_DISABLE STKGAP_DISABLE WXNEEDED LA48 ASG_DISABLE (0xFFFFFFFF) 95# LLVM-NEXT: } 96# LLVM-NEXT: { 97# LLVM-NEXT: Owner: FreeBSD 98# LLVM-NEXT: Data size: 0x1 99# LLVM-NEXT: Type: NT_FREEBSD_FEATURE_CTL (FreeBSD feature control) 100# LLVM-NEXT: Description data ( 101# LLVM-NEXT: 0000: 00 |.| 102# LLVM-NEXT: ) 103# LLVM-NEXT: } 104# LLVM-NEXT: { 105# LLVM-NEXT: Owner: FreeBSD 106# LLVM-NEXT: Data size: 0x4 107# LLVM-NEXT: Type: NT_FREEBSD_NOINIT_TAG (no .init tag) 108# LLVM-NEXT: Description data ( 109# LLVM-NEXT: 0000: 00000000 |....| 110# LLVM-NEXT: ) 111# LLVM-NEXT: } 112# LLVM-NEXT: { 113# LLVM-NEXT: Owner: FreeBSD 114# LLVM-NEXT: Data size: 0x6 115# LLVM-NEXT: Type: Unknown (0x00abcdef) 116# LLVM-NEXT: Description data ( 117# LLVM-NEXT: 0000: 61626364 6566 |abcdef| 118# LLVM-NEXT: ) 119# LLVM-NEXT: } 120# LLVM-NEXT: { 121# LLVM-NEXT: Owner: FreeBSD 122# LLVM-NEXT: Data size: 0x6 123# LLVM-NEXT: Type: Unknown (0x0000000d) 124# LLVM-NEXT: Description data ( 125# LLVM-NEXT: 0000: 61626364 6566 |abcdef| 126# LLVM-NEXT: ) 127# LLVM-NEXT: } 128# LLVM-NEXT: ] 129# LLVM-NEXT: } 130# LLVM-NEXT:] 131