190 lines · plain
1## Check how we dump regular ELF section flags.2 3# RUN: yaml2obj %s -o %t.o4# RUN: llvm-readobj -S %t.o | FileCheck --check-prefix=LLVM %s5# RUN: llvm-readelf -S %t.o | FileCheck --check-prefix=GNU %s6 7# LLVM: Name: allflags8# LLVM-NEXT: Type: SHT_PROGBITS9# LLVM-NEXT: Flags [ (0x80200FF7)10# LLVM-NEXT: SHF_ALLOC (0x2)11# LLVM-NEXT: SHF_COMPRESSED (0x800)12# LLVM-NEXT: SHF_EXCLUDE (0x80000000)13# LLVM-NEXT: SHF_EXECINSTR (0x4)14# LLVM-NEXT: SHF_GNU_RETAIN (0x200000)15# LLVM-NEXT: SHF_GROUP (0x200)16# LLVM-NEXT: SHF_INFO_LINK (0x40)17# LLVM-NEXT: SHF_LINK_ORDER (0x80)18# LLVM-NEXT: SHF_MERGE (0x10)19# LLVM-NEXT: SHF_OS_NONCONFORMING (0x100)20# LLVM-NEXT: SHF_STRINGS (0x20)21# LLVM-NEXT: SHF_TLS (0x400)22# LLVM-NEXT: SHF_WRITE (0x1)23# LLVM-NEXT: ]24 25# LLVM: Name: noflags26# LLVM-NEXT: Type: SHT_PROGBITS27# LLVM-NEXT: Flags [ (0x0)28# LLVM-NEXT: ]29 30# LLVM: Name: write31# LLVM-NEXT: Type: SHT_PROGBITS32# LLVM-NEXT: Flags [ (0x1)33# LLVM-NEXT: SHF_WRITE (0x1)34# LLVM-NEXT: ]35 36# LLVM: Name: alloc37# LLVM-NEXT: Type: SHT_PROGBITS38# LLVM-NEXT: Flags [ (0x2)39# LLVM-NEXT: SHF_ALLOC (0x2)40# LLVM-NEXT: ]41 42# LLVM: Name: exec43# LLVM-NEXT: Type: SHT_PROGBITS44# LLVM-NEXT: Flags [ (0x4)45# LLVM-NEXT: SHF_EXECINSTR (0x4)46# LLVM-NEXT: ]47 48# LLVM: Name: merge49# LLVM-NEXT: Type: SHT_PROGBITS50# LLVM-NEXT: Flags [ (0x10)51# LLVM-NEXT: SHF_MERGE (0x10)52# LLVM-NEXT: ]53 54# LLVM: Name: strings55# LLVM-NEXT: Type: SHT_PROGBITS56# LLVM-NEXT: Flags [ (0x20)57# LLVM-NEXT: SHF_STRINGS (0x20)58# LLVM-NEXT: ]59 60# LLVM: Name: infolink61# LLVM-NEXT: Type: SHT_PROGBITS62# LLVM-NEXT: Flags [ (0x40)63# LLVM-NEXT: SHF_INFO_LINK (0x40)64# LLVM-NEXT: ]65 66# LLVM: Name: linkorder67# LLVM-NEXT: Type: SHT_PROGBITS68# LLVM-NEXT: Flags [ (0x80)69# LLVM-NEXT: SHF_LINK_ORDER (0x80)70# LLVM-NEXT: ]71 72# LLVM: Name: nonconforming73# LLVM-NEXT: Type: SHT_PROGBITS74# LLVM-NEXT: Flags [ (0x100)75# LLVM-NEXT: SHF_OS_NONCONFORMING (0x100)76# LLVM-NEXT: ]77 78# LLVM: Name: group79# LLVM-NEXT: Type: SHT_PROGBITS80# LLVM-NEXT: Flags [ (0x200)81# LLVM-NEXT: SHF_GROUP (0x200)82# LLVM-NEXT: ]83 84# LLVM: Name: tls85# LLVM-NEXT: Type: SHT_PROGBITS86# LLVM-NEXT: Flags [ (0x400)87# LLVM-NEXT: SHF_TLS (0x400)88# LLVM-NEXT: ]89 90# LLVM: Name: compressed91# LLVM-NEXT: Type: SHT_PROGBITS92# LLVM-NEXT: Flags [ (0x800)93# LLVM-NEXT: SHF_COMPRESSED (0x800)94# LLVM-NEXT: ]95 96## SHF_GNU_RETAIN is defined in the OS-specific range, but we treat it generic97## and allow it to be used with OSABI values other than GNU and FREEBSD.98# LLVM: Name: retain99# LLVM-NEXT: Type: SHT_PROGBITS100# LLVM-NEXT: Flags [ (0x200000)101# LLVM-NEXT: SHF_GNU_RETAIN (0x200000)102# LLVM-NEXT: ]103 104# LLVM: Name: exclude105# LLVM-NEXT: Type: SHT_PROGBITS106# LLVM-NEXT: Flags [ (0x80000000)107# LLVM-NEXT: SHF_EXCLUDE (0x80000000)108# LLVM-NEXT: ]109 110# LLVM: Name: unknown111# LLVM-NEXT: Type: SHT_PROGBITS112# LLVM-NEXT: Flags [ (0xF0000)113# LLVM-NEXT: ]114 115# GNU: [Nr] Name Type Address Off Size ES Flg Lk Inf Al116# GNU: [ 1] allflags PROGBITS 0000000000000000 000040 000000 00 WAXMSILOGTCRE 0 0 0117# GNU: [ 2] noflags PROGBITS 0000000000000000 000040 000000 00 0 0 0118# GNU: [ 3] write PROGBITS 0000000000000000 000040 000000 00 W 0 0 0119# GNU: [ 4] alloc PROGBITS 0000000000000000 000040 000000 00 A 0 0 0120# GNU: [ 5] exec PROGBITS 0000000000000000 000040 000000 00 X 0 0 0121# GNU: [ 6] merge PROGBITS 0000000000000000 000040 000000 00 M 0 0 0122# GNU: [ 7] strings PROGBITS 0000000000000000 000040 000000 00 S 0 0 0123# GNU: [ 8] infolink PROGBITS 0000000000000000 000040 000000 00 I 0 0 0124# GNU: [ 9] linkorder PROGBITS 0000000000000000 000040 000000 00 L 0 0 0125# GNU: [10] nonconforming PROGBITS 0000000000000000 000040 000000 00 O 0 0 0126# GNU: [11] group PROGBITS 0000000000000000 000040 000000 00 G 0 0 0127# GNU: [12] tls PROGBITS 0000000000000000 000040 000000 00 T 0 0 0128# GNU: [13] compressed PROGBITS 0000000000000000 000040 000000 00 C 0 0 0129# GNU: [14] retain PROGBITS 0000000000000000 000040 000000 00 R 0 0 0130# GNU: [15] exclude PROGBITS 0000000000000000 000040 000000 00 E 0 0 0131# GNU: [16] unknown PROGBITS 0000000000000000 000040 000000 00 x 0 0 0132 133--- !ELF134FileHeader:135 Class: ELFCLASS64136 Data: ELFDATA2LSB137 Type: ET_REL138 Flags: []139Sections:140 - Name: allflags141 Type: SHT_PROGBITS142 Flags: [ SHF_WRITE, SHF_ALLOC, SHF_EXECINSTR, SHF_MERGE,143 SHF_STRINGS, SHF_INFO_LINK, SHF_LINK_ORDER, SHF_OS_NONCONFORMING,144 SHF_GROUP, SHF_TLS, SHF_COMPRESSED, SHF_GNU_RETAIN, SHF_EXCLUDE ]145 - Name: noflags146 Type: SHT_PROGBITS147 Flags: [ ]148 - Name: write149 Type: SHT_PROGBITS150 Flags: [ SHF_WRITE ]151 - Name: alloc152 Type: SHT_PROGBITS153 Flags: [ SHF_ALLOC ]154 - Name: exec155 Type: SHT_PROGBITS156 Flags: [ SHF_EXECINSTR ]157 - Name: merge158 Type: SHT_PROGBITS159 Flags: [ SHF_MERGE ]160 - Name: strings161 Type: SHT_PROGBITS162 Flags: [ SHF_STRINGS ]163 - Name: infolink164 Type: SHT_PROGBITS165 Flags: [ SHF_INFO_LINK ]166 - Name: linkorder167 Type: SHT_PROGBITS168 Flags: [ SHF_LINK_ORDER ]169 - Name: nonconforming170 Type: SHT_PROGBITS171 Flags: [ SHF_OS_NONCONFORMING ]172 - Name: group173 Type: SHT_PROGBITS174 Flags: [ SHF_GROUP ]175 - Name: tls176 Type: SHT_PROGBITS177 Flags: [ SHF_TLS ]178 - Name: compressed179 Type: SHT_PROGBITS180 Flags: [ SHF_COMPRESSED ]181 - Name: retain182 Type: SHT_PROGBITS183 Flags: [ SHF_GNU_RETAIN ]184 - Name: exclude185 Type: SHT_PROGBITS186 Flags: [ SHF_EXCLUDE ]187 - Name: unknown188 Type: SHT_PROGBITS189 ShFlags: 0x000f0000190