brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · d2d0bda Raw
113 lines · plain
1## In this test we check the --needed-libs option.2 3# RUN: yaml2obj %s --docnum=1 -o %t14# RUN: llvm-readobj --needed-libs %t1 2>&1 \5# RUN:   | FileCheck %s -DFILE=%t1 --implicit-check-not=warning: --strict-whitespace --check-prefix=NEEDED-LIBS6# RUN: llvm-readelf --needed-libs %t1 2>&1 \7# RUN:   | FileCheck %s -DFILE=%t1 --implicit-check-not=warning: --strict-whitespace --check-prefix=NEEDED-LIBS8# RUN: llvm-readobj --elf-output-style=JSON --needed-libs --pretty-print %t1 2>&1 \9# RUN:   | FileCheck %s -DFILE=%t1 --implicit-check-not=warning: --match-full-lines --strict-whitespace --check-prefix=JSON10 11## Check that library names are sorted when printed.12## Document that we also sort error entries.13 14#      NEEDED-LIBS:{{^}}NeededLibraries [{{$}}15# NEEDED-LIBS-NEXT:  warning: '[[FILE]]': string table at offset 0x78: unable to read the string at 0x9999a11: it goes past the end of the table (0x85){{$}}16# NEEDED-LIBS-NEXT:  warning: '[[FILE]]': string table at offset 0x78: unable to read the string at 0x1111189: it goes past the end of the table (0x85){{$}}17# NEEDED-LIBS-NEXT:{{^}}  <?>{{$}}18# NEEDED-LIBS-NEXT:{{^}}  <?>{{$}}19# NEEDED-LIBS-NEXT:{{^}}  aaa{{$}}20# NEEDED-LIBS-NEXT:{{^}}  bbb{{$}}21# NEEDED-LIBS-NEXT:{{^}}  ccc{{$}}22# NEEDED-LIBS-NEXT:{{^}}]{{$}}23 24#      JSON:    "FileSummary": {25#      JSON:    "NeededLibraries": [{{.*}}warning: '[[FILE]]': string table at offset 0x78: unable to read the string at 0x9999a11: it goes past the end of the table (0x85)26# JSON-NEXT:{{.*}}warning: '[[FILE]]': string table at offset 0x78: unable to read the string at 0x1111189: it goes past the end of the table (0x85)27# JSON-EMPTY:28# JSON-NEXT:      "<?>",29# JSON-NEXT:      "<?>",30# JSON-NEXT:      "aaa",31# JSON-NEXT:      "bbb",32# JSON-NEXT:      "ccc"33# JSON-NEXT:    ]34 35--- !ELF36FileHeader:37  Class: ELFCLASS6438  Data:  ELFDATA2LSB39  Type:  ET_EXEC40Sections:41  - Name:  .dynstr42    Type:  SHT_STRTAB43    Flags: [ SHF_ALLOC ]44    Content: '00616161006262620063636300' ## 0,a,a,a,0,b,b,b,0,c,c,c,045  - Name:    .dynamic46    Type:    SHT_DYNAMIC47    Entries:48      - Tag:   DT_STRTAB49        Value: 0x000000000000000050      - Tag:   DT_NEEDED51        Value: 0x999999952      - Tag:   DT_NEEDED53        Value: 954      - Tag:   DT_NEEDED55        Value: 156      - Tag:   DT_NEEDED57        Value: 558      - Tag:   DT_NEEDED59        Value: 0x111111160      - Tag:   DT_STRSZ61        Value: [[SIZE=0xD]]62      - Tag:   DT_NULL63        Value: 0x064ProgramHeaders:65  - Type: PT_LOAD66    VAddr: 0x067    FirstSec: .dynstr68    LastSec:  .dynamic69 70## Check what we print when the dynamic string table is empty.71# RUN: yaml2obj %s --docnum=2 -o %t272# RUN: llvm-readobj --needed-libs %t2 2>&1 | \73# RUN:   FileCheck %s -DFILE=%t2 --implicit-check-not=warning: --check-prefix=EMPTY-DYNSTR74# RUN: llvm-readelf --needed-libs %t2 2>&1 | \75# RUN:   FileCheck %s -DFILE=%t2 --implicit-check-not=warning: --check-prefix=EMPTY-DYNSTR76 77# EMPTY-DYNSTR:      NeededLibraries [78# EMPTY-DYNSTR-NEXT: warning: '[[FILE]]': string table at offset 0x78: unable to read the string at 0x79: it goes past the end of the table (0x78)79# EMPTY-DYNSTR-NEXT: warning: '[[FILE]]': string table at offset 0x78: unable to read the string at 0x7a: it goes past the end of the table (0x78)80# EMPTY-DYNSTR-NEXT:   <?>81# EMPTY-DYNSTR-NEXT:   <?>82# EMPTY-DYNSTR-NEXT: ]83 84--- !ELF85FileHeader:86  Class: ELFCLASS6487  Data:  ELFDATA2LSB88  Type:  ET_EXEC89Sections:90  - Name:  .dynstr91    Type:  SHT_STRTAB92    Flags: [ SHF_ALLOC ]93    Size:  094  - Name:    .dynamic95    Type:    SHT_DYNAMIC96    Address: 0x100097    Entries:98      - Tag:   DT_STRTAB99        Value: 0x0000000000000000100      - Tag:   DT_NEEDED101        Value: 1102      - Tag:   DT_NEEDED103        Value: 2104      - Tag:   DT_STRSZ105        Value: 0x0106      - Tag:   DT_NULL107        Value: 0x0108ProgramHeaders:109  - Type:     PT_LOAD110    VAddr:    0x0111    FirstSec: .dynstr112    LastSec:  .dynamic113