CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
159 lines
5.8 KiB
YAML
159 lines
5.8 KiB
YAML
## Check that obj2yaml dumps SHT_STRTAB/SHT_SYMTAB/SHT_DYNSYM sections
|
|
## when they are allocatable.
|
|
|
|
## In the following test we check the normal case: when .dynsym (SHT_DYNSYM)
|
|
## and .dynstr (SHT_STRTAB) are allocatable sections and .symtab (SHT_SYMTAB),
|
|
## .strtab (SHT_STRTAB) and .shstrtab (SHT_STRTAB) are not.
|
|
## Check we explicitly declare allocatable sections.
|
|
|
|
# RUN: yaml2obj %s -o %t1.so -D FLAG1=SHF_ALLOC -D FLAG2=""
|
|
# RUN: llvm-readelf -S %t1.so | FileCheck %s --check-prefixes=RE,RE-1
|
|
# RUN: obj2yaml %t1.so | FileCheck %s --check-prefix=OUTPUT
|
|
|
|
## Check the information about sections using an independent tool.
|
|
|
|
# RE: Section Headers:
|
|
# RE-NEXT: [Nr] Name Type Address Off Size ES Flg Lk Inf Al
|
|
# RE-NEXT: [ 0] NULL 0000000000000000 000000 000000 00 0 0 0
|
|
# RE-NEXT: [ 1] .foo.1 PROGBITS 0000000000000000 000040 000000 00 0 0 0
|
|
# RE-1-NEXT: [ 2] .dynsym DYNSYM 0000000000001000 000040 000030 18 A 4 2 0
|
|
# RE-2-NEXT: [ 2] .dynsym DYNSYM 0000000000001000 000040 000030 18 4 2 0
|
|
# RE-NEXT: [ 3] .foo.2 PROGBITS 0000000000000000 000070 000000 00 0 0 0
|
|
# RE-1-NEXT: [ 4] .dynstr STRTAB 0000000000002000 000070 000005 00 A 0 0 0
|
|
# RE-2-NEXT: [ 4] .dynstr STRTAB 0000000000002000 000070 000005 00 0 0 0
|
|
# RE-NEXT: [ 5] .foo.3 PROGBITS 0000000000000000 000075 000000 00 0 0 0
|
|
# RE-1-NEXT: [ 6] .symtab SYMTAB 0000000000003000 000075 000030 18 8 2 0
|
|
# RE-2-NEXT: [ 6] .symtab SYMTAB 0000000000003000 000075 000030 18 A 8 2 0
|
|
# RE-NEXT: [ 7] .foo.4 PROGBITS 0000000000000000 0000a5 000000 00 0 0 0
|
|
# RE-1-NEXT: [ 8] .strtab STRTAB 0000000000004000 0000a5 000005 00 0 0 0
|
|
# RE-2-NEXT: [ 8] .strtab STRTAB 0000000000004000 0000a5 000005 00 A 0 0 0
|
|
# RE-NEXT: [ 9] .foo.5 PROGBITS 0000000000000000 0000aa 000000 00 0 0 0
|
|
# RE-1-NEXT: [10] .shstrtab STRTAB 0000000000005000 0000aa 000055 00 0 0 0
|
|
# RE-2-NEXT: [10] .shstrtab STRTAB 0000000000005000 0000aa 000055 00 A 0 0 0
|
|
# RE-NEXT: [11] .foo.6 PROGBITS 0000000000000000 0000ff 000000 00 0 0 0
|
|
|
|
# OUTPUT: --- !ELF
|
|
# OUTPUT-NEXT: FileHeader:
|
|
# OUTPUT-NEXT: Class: ELFCLASS64
|
|
# OUTPUT-NEXT: Data: ELFDATA2LSB
|
|
# OUTPUT-NEXT: Type: ET_DYN
|
|
# OUTPUT-NEXT: Sections:
|
|
# OUTPUT-NEXT: - Name: .foo.1
|
|
# OUTPUT-NEXT: Type: SHT_PROGBITS
|
|
# OUTPUT-NEXT: - Name: .dynsym
|
|
# OUTPUT-NEXT: Type: SHT_DYNSYM
|
|
# OUTPUT-NEXT: Flags: [ SHF_ALLOC ]
|
|
# OUTPUT-NEXT: Address: 0x1000
|
|
# OUTPUT-NEXT: Link: .dynstr
|
|
# OUTPUT-NEXT: - Name: .foo.2
|
|
# OUTPUT-NEXT: Type: SHT_PROGBITS
|
|
# OUTPUT-NEXT: - Name: .dynstr
|
|
# OUTPUT-NEXT: Type: SHT_STRTAB
|
|
# OUTPUT-NEXT: Flags: [ SHF_ALLOC ]
|
|
# OUTPUT-NEXT: Address: 0x2000
|
|
# OUTPUT-NEXT: - Name: .foo.3
|
|
# OUTPUT-NEXT: Type: SHT_PROGBITS
|
|
# OUTPUT-NEXT: - Name: .foo.4
|
|
# OUTPUT-NEXT: Type: SHT_PROGBITS
|
|
# OUTPUT-NEXT: - Name: .foo.5
|
|
# OUTPUT-NEXT: Type: SHT_PROGBITS
|
|
# OUTPUT-NEXT: - Name: .foo.6
|
|
# OUTPUT-NEXT: Type: SHT_PROGBITS
|
|
# OUTPUT-NEXT: Symbols:
|
|
# OUTPUT-NEXT: - Name: foo
|
|
# OUTPUT-NEXT: DynamicSymbols:
|
|
# OUTPUT-NEXT: - Name: bar
|
|
# OUTPUT-NEXT: ...
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_DYN
|
|
Sections:
|
|
- Name: .foo.1
|
|
Type: SHT_PROGBITS
|
|
- Name: .dynsym
|
|
Type: SHT_DYNSYM
|
|
Address: 0x1000
|
|
Flags: [ [[FLAG1]] ]
|
|
- Name: .foo.2
|
|
Type: SHT_PROGBITS
|
|
- Name: .dynstr
|
|
Type: SHT_STRTAB
|
|
Address: 0x2000
|
|
Flags: [ [[FLAG1]] ]
|
|
- Name: .foo.3
|
|
Type: SHT_PROGBITS
|
|
- Name: .symtab
|
|
Type: SHT_SYMTAB
|
|
Address: 0x3000
|
|
Flags: [ [[FLAG2]] ]
|
|
- Name: .foo.4
|
|
Type: SHT_PROGBITS
|
|
- Name: .strtab
|
|
Type: SHT_STRTAB
|
|
Address: 0x4000
|
|
Flags: [ [[FLAG2]] ]
|
|
- Name: .foo.5
|
|
Type: SHT_PROGBITS
|
|
- Name: .shstrtab
|
|
Type: SHT_STRTAB
|
|
Address: 0x5000
|
|
Flags: [ [[FLAG2]] ]
|
|
- Name: .foo.6
|
|
Type: SHT_PROGBITS
|
|
Symbols:
|
|
- Name: foo
|
|
DynamicSymbols:
|
|
- Name: bar
|
|
|
|
## Now test the abnormal case: when .symtab (SHT_SYMTAB),
|
|
## .strtab (SHT_STRTAB) and .shstrtab (SHT_STRTAB) are
|
|
## allocatable sections, but .dynsym (SHT_DYNSYM) and
|
|
## .dynstr (SHT_STRTAB) are not.
|
|
## Check that only allocatable versions are explicitly declared.
|
|
|
|
# RUN: yaml2obj %s -o %t2.so -D FLAG1="" -D FLAG2=SHF_ALLOC
|
|
# RUN: llvm-readelf -S %t2.so | FileCheck %s --check-prefixes=RE,RE-2
|
|
# RUN: obj2yaml %t2.so | FileCheck %s --check-prefix=OUTPUT2
|
|
|
|
## Check we explicitly declare only allocatable
|
|
## SHT_STRTAB/SHT_SYMTAB/SHT_DYNSYM sections.
|
|
# OUTPUT2: --- !ELF
|
|
# OUTPUT2-NEXT: FileHeader:
|
|
# OUTPUT2-NEXT: Class: ELFCLASS64
|
|
# OUTPUT2-NEXT: Data: ELFDATA2LSB
|
|
# OUTPUT2-NEXT: Type: ET_DYN
|
|
# OUTPUT2-NEXT: Sections:
|
|
# OUTPUT2-NEXT: - Name: .foo.1
|
|
# OUTPUT2-NEXT: Type: SHT_PROGBITS
|
|
# OUTPUT2-NEXT: - Name: .foo.2
|
|
# OUTPUT2-NEXT: Type: SHT_PROGBITS
|
|
# OUTPUT2-NEXT: - Name: .foo.3
|
|
# OUTPUT2-NEXT: Type: SHT_PROGBITS
|
|
# OUTPUT2-NEXT: - Name: .symtab
|
|
# OUTPUT2-NEXT: Type: SHT_SYMTAB
|
|
# OUTPUT2-NEXT: Flags: [ SHF_ALLOC ]
|
|
# OUTPUT2-NEXT: Address: 0x3000
|
|
# OUTPUT2-NEXT: Link: .strtab
|
|
# OUTPUT2-NEXT: - Name: .foo.4
|
|
# OUTPUT2-NEXT: Type: SHT_PROGBITS
|
|
# OUTPUT2-NEXT: - Name: .strtab
|
|
# OUTPUT2-NEXT: Type: SHT_STRTAB
|
|
# OUTPUT2-NEXT: Flags: [ SHF_ALLOC ]
|
|
# OUTPUT2-NEXT: Address: 0x4000
|
|
# OUTPUT2-NEXT: - Name: .foo.5
|
|
# OUTPUT2-NEXT: Type: SHT_PROGBITS
|
|
# OUTPUT2-NEXT: - Name: .shstrtab
|
|
# OUTPUT2-NEXT: Type: SHT_STRTAB
|
|
# OUTPUT2-NEXT: Flags: [ SHF_ALLOC ]
|
|
# OUTPUT2-NEXT: Address: 0x5000
|
|
# OUTPUT2-NEXT: - Name: .foo.6
|
|
# OUTPUT2-NEXT: Type: SHT_PROGBITS
|
|
# OUTPUT2-NEXT: Symbols:
|
|
# OUTPUT2-NEXT: - Name: foo
|
|
# OUTPUT2-NEXT: DynamicSymbols:
|
|
# OUTPUT2-NEXT: - Name: bar
|
|
# OUTPUT2-NEXT: ...
|