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:]
|