brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.8 KiB · b809661 Raw
137 lines · plain
1## Here we test how OS and processor specific flags are dumped.2 3# RUN: yaml2obj %s -o %t.o4# RUN: llvm-readobj -S %t.o | FileCheck --check-prefix=OS-PROC-LLVM %s5# RUN: llvm-readelf -S %t.o | FileCheck --check-prefix=OS-PROC-GNU %s6 7# OS-PROC-LLVM:      Name: .os.flags.low8# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS9# OS-PROC-LLVM-NEXT: Flags [ (0x100000)10# OS-PROC-LLVM-NEXT: ]11# OS-PROC-LLVM:      Name: .os.flags.high12# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS13# OS-PROC-LLVM-NEXT: Flags [ (0xFE00000)14# OS-PROC-LLVM-NEXT:   SHF_GNU_RETAIN (0x200000)15# OS-PROC-LLVM-NEXT: ]16# OS-PROC-LLVM:      Name: .os.flags.mask17# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS18# OS-PROC-LLVM-NEXT: Flags [ (0xFF00000)19# OS-PROC-LLVM-NEXT:   SHF_GNU_RETAIN (0x200000)20# OS-PROC-LLVM-NEXT: ]21# OS-PROC-LLVM:      Name: .proc.flags.low22# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS23# OS-PROC-LLVM-NEXT: Flags [ (0x10000000)24# OS-PROC-LLVM-NEXT: ]25# OS-PROC-LLVM:      Name: .proc.flags.high26# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS27# OS-PROC-LLVM-NEXT: Flags [ (0xE0000000)28# OS-PROC-LLVM-NEXT:   SHF_EXCLUDE (0x80000000)29# OS-PROC-LLVM-NEXT: ]30# OS-PROC-LLVM:      Name: .proc.flags.mask31# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS32# OS-PROC-LLVM-NEXT: Flags [ (0xF0000000)33# OS-PROC-LLVM-NEXT:   SHF_EXCLUDE (0x80000000)34# OS-PROC-LLVM-NEXT: ]35# OS-PROC-LLVM:      Name: .both.flags.low36# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS37# OS-PROC-LLVM-NEXT: Flags [ (0x10100000)38# OS-PROC-LLVM-NEXT: ]39# OS-PROC-LLVM:      Name: .both.flags.high40# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS41# OS-PROC-LLVM-NEXT: Flags [ (0xEFE00000)42# OS-PROC-LLVM-NEXT:   SHF_EXCLUDE (0x80000000)43# OS-PROC-LLVM-NEXT:   SHF_GNU_RETAIN (0x200000)44# OS-PROC-LLVM-NEXT: ]45# OS-PROC-LLVM:      Name: .both.flags.mask46# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS47# OS-PROC-LLVM-NEXT: Flags [ (0xFFF00000)48# OS-PROC-LLVM-NEXT:   SHF_EXCLUDE (0x80000000)49# OS-PROC-LLVM-NEXT:   SHF_GNU_RETAIN (0x200000)50# OS-PROC-LLVM-NEXT: ]51# OS-PROC-LLVM:      Name: .exclude52# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS53# OS-PROC-LLVM-NEXT: Flags [ (0x80000000)54# OS-PROC-LLVM-NEXT:   SHF_EXCLUDE (0x80000000)55# OS-PROC-LLVM-NEXT: ]56# OS-PROC-LLVM:      Name: .all.possible57# OS-PROC-LLVM-NEXT: Type: SHT_PROGBITS58# OS-PROC-LLVM-NEXT: Flags [ (0xFFFFFFFF)59# OS-PROC-LLVM-NEXT:   SHF_ALLOC (0x2)60# OS-PROC-LLVM-NEXT:   SHF_COMPRESSED (0x800)61# OS-PROC-LLVM-NEXT:   SHF_EXCLUDE (0x80000000)62# OS-PROC-LLVM-NEXT:   SHF_EXECINSTR (0x4)63# OS-PROC-LLVM-NEXT:   SHF_GNU_RETAIN (0x200000)64# OS-PROC-LLVM-NEXT:   SHF_GROUP (0x200)65# OS-PROC-LLVM-NEXT:   SHF_INFO_LINK (0x40)66# OS-PROC-LLVM-NEXT:   SHF_LINK_ORDER (0x80)67# OS-PROC-LLVM-NEXT:   SHF_MERGE (0x10)68# OS-PROC-LLVM-NEXT:   SHF_OS_NONCONFORMING (0x100)69# OS-PROC-LLVM-NEXT:   SHF_STRINGS (0x20)70# OS-PROC-LLVM-NEXT:   SHF_TLS (0x400)71# OS-PROC-LLVM-NEXT:   SHF_WRITE (0x1)72# OS-PROC-LLVM-NEXT: ]73 74# OS-PROC-GNU:      Section Headers:75# OS-PROC-GNU-NEXT:  [Nr] Name                   Type     Address          Off    Size   ES Flg            Lk Inf Al76# OS-PROC-GNU-NEXT:  [ 0]                        NULL     0000000000000000 000000 000000 00                0   0  077# OS-PROC-GNU-NEXT:  [ 1] .os.flags.low          PROGBITS 0000000000000000 000040 000000 00   o            0   0  078# OS-PROC-GNU-NEXT:  [ 2] .os.flags.high         PROGBITS 0000000000000000 000040 000000 00  Ro            0   0  079# OS-PROC-GNU-NEXT:  [ 3] .os.flags.mask         PROGBITS 0000000000000000 000040 000000 00   o            0   0  080# OS-PROC-GNU-NEXT:  [ 4] .proc.flags.low        PROGBITS 0000000000000000 000040 000000 00   p            0   0  081# OS-PROC-GNU-NEXT:  [ 5] .proc.flags.high       PROGBITS 0000000000000000 000040 000000 00   p            0   0  082# OS-PROC-GNU-NEXT:  [ 6] .proc.flags.mask       PROGBITS 0000000000000000 000040 000000 00   p            0   0  083# OS-PROC-GNU-NEXT:  [ 7] .both.flags.low        PROGBITS 0000000000000000 000040 000000 00  op            0   0  084# OS-PROC-GNU-NEXT:  [ 8] .both.flags.high       PROGBITS 0000000000000000 000040 000000 00 Rop            0   0  085# OS-PROC-GNU-NEXT:  [ 9] .both.flags.mask       PROGBITS 0000000000000000 000040 000000 00  op            0   0  086# OS-PROC-GNU-NEXT:  [10] .exclude               PROGBITS 0000000000000000 000040 000000 00   E            0   0  087# OS-PROC-GNU-NEXT:  [11] .all.possible          PROGBITS 0000000000000000 000040 000000 00 WAXMSILOGTCopx 0   0  088 89## Use an arbitrary EM_* machine type that does not have specific SHF_* OS/Processor90## flags to test what we dump when bits in the OS and processor specific ranges are set.91 92--- !ELF93FileHeader:94  Class: ELFCLASS6495  Data:  ELFDATA2LSB96  Type:  ET_REL97Sections:98  - Name:  .os.flags.low99    Type:  SHT_PROGBITS100    ShFlags: 0x00100000101  - Name:  .os.flags.high102    Type:  SHT_PROGBITS103    ShFlags: 0x0FE00000104  - Name:  .os.flags.mask105    Type:  SHT_PROGBITS106    ShFlags: 0x0FF00000107  - Name:  .proc.flags.low108    Type:  SHT_PROGBITS109    ShFlags: 0x10000000110  - Name:  .proc.flags.high111    Type:  SHT_PROGBITS112    ShFlags: 0xE0000000113  - Name:  .proc.flags.mask114    Type:  SHT_PROGBITS115    ShFlags: 0xF0000000116  - Name:  .both.flags.low117    Type:  SHT_PROGBITS118    ShFlags: 0x10100000119  - Name:  .both.flags.high120    Type:  SHT_PROGBITS121    ShFlags: 0xEFE00000122  - Name:  .both.flags.mask123    Type:  SHT_PROGBITS124    ShFlags: 0xFFF00000125## SHF_MASKPROC has a value of 0xf0000000, SHF_EXCLUDE has a value of126## 0x80000000. When SHF_EXCLUDE is mixed with other processor specific127## flags, GNU readelf does not necessarily print "E", because it handles128## the SHF_MASKPROC mask first. It only prints "E" when there are no other129## processor flags set. Check llvm-readelf output matches GNU.130  - Name:  .exclude131    Type:  SHT_PROGBITS132    ShFlags: 0x80000000133## Set all possible flags to test where we print 'o' and 'p' letters.134  - Name:  .all.possible135    Type:  SHT_PROGBITS136    ShFlags: 0xFFFFFFFF137