129 lines
4.8 KiB
Plaintext
129 lines
4.8 KiB
Plaintext
## 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: Notes [
|
|
# LLVM-NEXT: NoteSection {
|
|
# LLVM-NEXT: Name: .note.tag
|
|
# LLVM-NEXT: Offset: 0x40
|
|
# LLVM-NEXT: Size: 0xCC
|
|
# LLVM-NEXT: Note {
|
|
# 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: Note {
|
|
# 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: Note {
|
|
# 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: Note {
|
|
# 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: Note {
|
|
# 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: Note {
|
|
# 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: Note {
|
|
# 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: Note {
|
|
# 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:]
|