brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.6 KiB · ed413dc Raw
259 lines · yaml
1## Check we can use obj2yaml to yamalize the object containing .dynamic2## section. Check that resulting section has the proper attributes and3## dynamic tags and that we do not dump the default sh_entsize.4 5# RUN: yaml2obj -DENTSIZE=0x10 %s -o %t16# RUN: obj2yaml %t1 | FileCheck %s7 8# CHECK:       Sections:9# CHECK-NEXT:  - Name:            .dynamic10# CHECK-NEXT:    Type:            SHT_DYNAMIC11# CHECK-NEXT:    Address:         0x100012# CHECK-NEXT:    AddressAlign:    0x200013# CHECK-NEXT:    Entries:14# CHECK-NEXT:      - Tag:             DT_NULL15# CHECK-NEXT:        Value:           0x016# CHECK-NEXT:      - Tag:             DT_NEEDED17# CHECK-NEXT:        Value:           0x118# CHECK-NEXT:      - Tag:             DT_PLTRELSZ19# CHECK-NEXT:        Value:           0x220# CHECK-NEXT:      - Tag:             DT_PLTGOT21# CHECK-NEXT:        Value:           0x322# CHECK-NEXT:      - Tag:             DT_HASH23# CHECK-NEXT:        Value:           0x424# CHECK-NEXT:      - Tag:             DT_STRTAB25# CHECK-NEXT:        Value:           0x526# CHECK-NEXT:      - Tag:             DT_SYMTAB27# CHECK-NEXT:        Value:           0x628# CHECK-NEXT:      - Tag:             DT_RELA29# CHECK-NEXT:        Value:           0x730# CHECK-NEXT:      - Tag:             DT_RELASZ31# CHECK-NEXT:        Value:           0x832# CHECK-NEXT:      - Tag:             DT_RELAENT33# CHECK-NEXT:        Value:           0x934# CHECK-NEXT:      - Tag:             DT_STRSZ35# CHECK-NEXT:        Value:           0xA36# CHECK-NEXT:      - Tag:             DT_SYMENT37# CHECK-NEXT:        Value:           0xB38# CHECK-NEXT:      - Tag:             DT_INIT39# CHECK-NEXT:        Value:           0xC40# CHECK-NEXT:      - Tag:             DT_FINI41# CHECK-NEXT:        Value:           0xD42# CHECK-NEXT:      - Tag:             DT_SONAME43# CHECK-NEXT:        Value:           0xE44# CHECK-NEXT:      - Tag:             DT_RPATH45# CHECK-NEXT:        Value:           0xF46# CHECK-NEXT:      - Tag:             DT_SYMBOLIC47# CHECK-NEXT:        Value:           0x1048# CHECK-NEXT:      - Tag:             DT_REL49# CHECK-NEXT:        Value:           0x1150# CHECK-NEXT:      - Tag:             DT_RELSZ51# CHECK-NEXT:        Value:           0x1252# CHECK-NEXT:      - Tag:             DT_RELENT53# CHECK-NEXT:        Value:           0x1354# CHECK-NEXT:      - Tag:             DT_PLTREL55# CHECK-NEXT:        Value:           0x1456# CHECK-NEXT:      - Tag:             DT_DEBUG57# CHECK-NEXT:        Value:           0x1558# CHECK-NEXT:      - Tag:             DT_TEXTREL59# CHECK-NEXT:        Value:           0x1660# CHECK-NEXT:      - Tag:             DT_JMPREL61# CHECK-NEXT:        Value:           0x1762# CHECK-NEXT:      - Tag:             DT_BIND_NOW63# CHECK-NEXT:        Value:           0x1864# CHECK-NEXT:      - Tag:             DT_INIT_ARRAY65# CHECK-NEXT:        Value:           0x1966# CHECK-NEXT:      - Tag:             DT_FINI_ARRAY67# CHECK-NEXT:        Value:           0x1A68# CHECK-NEXT:      - Tag:             DT_INIT_ARRAYSZ69# CHECK-NEXT:        Value:           0x1B70# CHECK-NEXT:      - Tag:             DT_FINI_ARRAYSZ71# CHECK-NEXT:        Value:           0x1C72# CHECK-NEXT:      - Tag:             DT_RUNPATH73# CHECK-NEXT:        Value:           0x1D74# CHECK-NEXT:      - Tag:             DT_FLAGS75# CHECK-NEXT:        Value:           0x1E76# CHECK-NEXT:      - Tag:             DT_PREINIT_ARRAY77# CHECK-NEXT:        Value:           0x1F78# CHECK-NEXT:      - Tag:             DT_PREINIT_ARRAYSZ79# CHECK-NEXT:        Value:           0x2080# CHECK-NEXT:      - Tag:             DT_SYMTAB_SHNDX81# CHECK-NEXT:        Value:           0x2182# CHECK-NEXT:      - Tag:             DT_RELRSZ83# CHECK-NEXT:        Value:           0x2284# CHECK-NEXT:      - Tag:             DT_RELR85# CHECK-NEXT:        Value:           0x2386# CHECK-NEXT:      - Tag:             DT_RELRENT87# CHECK-NEXT:        Value:           0x2488# CHECK-NEXT:      - Tag:             DT_ANDROID_REL89# CHECK-NEXT:        Value:           0x2590# CHECK-NEXT:      - Tag:             DT_ANDROID_RELSZ91# CHECK-NEXT:        Value:           0x2692# CHECK-NEXT:      - Tag:             DT_ANDROID_RELA93# CHECK-NEXT:        Value:           0x2794# CHECK-NEXT:      - Tag:             DT_ANDROID_RELASZ95# CHECK-NEXT:        Value:           0x2896# CHECK-NEXT:      - Tag:             DT_ANDROID_RELR97# CHECK-NEXT:        Value:           0x2998# CHECK-NEXT:      - Tag:             DT_ANDROID_RELRSZ99# CHECK-NEXT:        Value:           0x2A100# CHECK-NEXT:      - Tag:             DT_ANDROID_RELRENT101# CHECK-NEXT:        Value:           0x2B102# CHECK-NEXT:      - Tag:             DT_GNU_HASH103# CHECK-NEXT:        Value:           0x2C104# CHECK-NEXT:      - Tag:             DT_TLSDESC_PLT105# CHECK-NEXT:        Value:           0x2D106# CHECK-NEXT:      - Tag:             DT_TLSDESC_GOT107# CHECK-NEXT:        Value:           0x2E108# CHECK-NEXT:      - Tag:             DT_RELACOUNT109# CHECK-NEXT:        Value:           0x2F110# CHECK-NEXT:      - Tag:             DT_RELCOUNT111# CHECK-NEXT:        Value:           0x30112# CHECK-NEXT:      - Tag:             DT_FLAGS_1113# CHECK-NEXT:        Value:           0x31114# CHECK-NEXT:      - Tag:             DT_VERSYM115# CHECK-NEXT:        Value:           0x32116# CHECK-NEXT:      - Tag:             DT_VERDEF117# CHECK-NEXT:        Value:           0x33118# CHECK-NEXT:      - Tag:             DT_VERDEFNUM119# CHECK-NEXT:        Value:           0x34120# CHECK-NEXT:      - Tag:             DT_VERNEED121# CHECK-NEXT:        Value:           0x35122# CHECK-NEXT:      - Tag:             DT_VERNEEDNUM123# CHECK-NEXT:        Value:           0x36124# CHECK-NEXT:      - Tag:             DT_USED125# CHECK-NEXT:        Value:           0x1126 127!ELF128FileHeader:129  Class: ELFCLASS64130  Data:  ELFDATA2LSB131  Type:  ET_DYN132Sections:133  - Name:            .dynamic134    Type:            SHT_DYNAMIC135    Address:         0x0000000000001000136    AddressAlign:    0x0000000000002000137    EntSize:         [[ENTSIZE]]138    Entries:139      - Tag:             DT_NULL140        Value:           0x0000000000000000141      - Tag:             DT_NEEDED142        Value:           0x0000000000000001143      - Tag:             DT_PLTRELSZ144        Value:           0x0000000000000002145      - Tag:             DT_PLTGOT146        Value:           0x0000000000000003147      - Tag:             DT_HASH148        Value:           0x0000000000000004149      - Tag:             DT_STRTAB150        Value:           0x0000000000000005151      - Tag:             DT_SYMTAB152        Value:           0x0000000000000006153      - Tag:             DT_RELA154        Value:           0x0000000000000007155      - Tag:             DT_RELASZ156        Value:           0x0000000000000008157      - Tag:             DT_RELAENT158        Value:           0x0000000000000009159      - Tag:             DT_STRSZ160        Value:           0x000000000000000A161      - Tag:             DT_SYMENT162        Value:           0x000000000000000B163      - Tag:             DT_INIT164        Value:           0x000000000000000C165      - Tag:             DT_FINI166        Value:           0x000000000000000D167      - Tag:             DT_SONAME168        Value:           0x000000000000000E169      - Tag:             DT_RPATH170        Value:           0x000000000000000F171      - Tag:             DT_SYMBOLIC172        Value:           0x0000000000000010173      - Tag:             DT_REL174        Value:           0x0000000000000011175      - Tag:             DT_RELSZ176        Value:           0x0000000000000012177      - Tag:             DT_RELENT178        Value:           0x0000000000000013179      - Tag:             DT_PLTREL180        Value:           0x0000000000000014181      - Tag:             DT_DEBUG182        Value:           0x0000000000000015183      - Tag:             DT_TEXTREL184        Value:           0x0000000000000016185      - Tag:             DT_JMPREL186        Value:           0x0000000000000017187      - Tag:             DT_BIND_NOW188        Value:           0x0000000000000018189      - Tag:             DT_INIT_ARRAY190        Value:           0x0000000000000019191      - Tag:             DT_FINI_ARRAY192        Value:           0x000000000000001A193      - Tag:             DT_INIT_ARRAYSZ194        Value:           0x000000000000001B195      - Tag:             DT_FINI_ARRAYSZ196        Value:           0x000000000000001C197      - Tag:             DT_RUNPATH198        Value:           0x000000000000001D199      - Tag:             DT_FLAGS200        Value:           0x000000000000001E201      - Tag:             DT_PREINIT_ARRAY202        Value:           0x000000000000001F203      - Tag:             DT_PREINIT_ARRAYSZ204        Value:           0x0000000000000020205      - Tag:             DT_SYMTAB_SHNDX206        Value:           0x0000000000000021207      - Tag:             DT_RELRSZ208        Value:           0x0000000000000022209      - Tag:             DT_RELR210        Value:           0x0000000000000023211      - Tag:             DT_RELRENT212        Value:           0x0000000000000024213      - Tag:             DT_ANDROID_REL214        Value:           0x0000000000000025215      - Tag:             DT_ANDROID_RELSZ216        Value:           0x0000000000000026217      - Tag:             DT_ANDROID_RELA218        Value:           0x0000000000000027219      - Tag:             DT_ANDROID_RELASZ220        Value:           0x0000000000000028221      - Tag:             DT_ANDROID_RELR222        Value:           0x0000000000000029223      - Tag:             DT_ANDROID_RELRSZ224        Value:           0x000000000000002A225      - Tag:             DT_ANDROID_RELRENT226        Value:           0x000000000000002B227      - Tag:             DT_GNU_HASH228        Value:           0x000000000000002C229      - Tag:             DT_TLSDESC_PLT230        Value:           0x000000000000002D231      - Tag:             DT_TLSDESC_GOT232        Value:           0x000000000000002E233      - Tag:             DT_RELACOUNT234        Value:           0x000000000000002F235      - Tag:             DT_RELCOUNT236        Value:           0x0000000000000030237      - Tag:             DT_FLAGS_1238        Value:           0x0000000000000031239      - Tag:             DT_VERSYM240        Value:           0x0000000000000032241      - Tag:             DT_VERDEF242        Value:           0x0000000000000033243      - Tag:             DT_VERDEFNUM244        Value:           0x0000000000000034245      - Tag:             DT_VERNEED246        Value:           0x0000000000000035247      - Tag:             DT_VERNEEDNUM248        Value:           0x0000000000000036249      - Tag:             DT_USED250        Value:           0x0000000000000001251 252## Test the behavior when sh_entsize is invalid.253## Here we use 0xFE as an arbitrary broken value instead of expected 0x16.254 255# RUN: yaml2obj -DENTSIZE=0xff %s -o %t2256# RUN: not obj2yaml %t2 2>&1 | FileCheck %s --check-prefix=ENTSIZE257 258# ENTSIZE: section [index 1] has invalid sh_entsize: expected 16, but got 255259