brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.3 KiB · c90c36b Raw
82 lines · plain
1# RUN: yaml2obj %s -o %t2# RUN: llvm-objcopy --add-symbol='abs1=1' \ 3# RUN:              --add-symbol='abs2=2,LoCaL,HiDdEn,FuNcTiOn' \4# RUN:              --add-symbol='abs3=3,global,default,object' \5# RUN:              --add-symbol='abs4=4,global,protected,object' \6# RUN:              --add-symbol='foo.cpp=0,file' \7# RUN:              --add-symbol='=.text:0,section' \8# RUN:              --add-symbol='data=.data:0x100,weak' \9# RUN:              --add-symbol='ifunc=.text:0,indirect-function' \10# RUN:              %t %t211# RUN: llvm-readelf -s %t2 | FileCheck %s12 13# Checked ignored options14# RUN: llvm-objcopy \15# RUN:   --add-symbol='dummy1=0,indirect,constructor,debug,synthetic' \16# RUN:   --add-symbol='dummy2=0,before=foo,unique-object,warning' %t %t317# RUN: llvm-readelf -s %t3 | FileCheck %s --check-prefix=IGNORED18 19# Check errors20# RUN: not llvm-objcopy --add-symbol='test' %t %t4 2>&1 | FileCheck %s --check-prefix=ERR121# RUN: not llvm-objcopy --add-symbol='test=:0' %t %t5 2>&1 | FileCheck %s --check-prefix=ERR222# RUN: not llvm-objcopy --add-symbol='test=foo:' %t %t6 2>&1 | FileCheck %s --check-prefix=ERR223# RUN: not llvm-objcopy --add-symbol='test=0,cool' %t %t7 2>&1 | FileCheck %s --check-prefix=ERR324# RUN: not llvm-objcopy --add-symbol='test=0,foo,bar' %t %t8 2>&1 | FileCheck %s --check-prefix=ERR425# RUN: not llvm-objcopy --add-symbol='test=xyz' %t %t9 2>&1 | FileCheck %s --check-prefix=ERR526 27!ELF28FileHeader:29  Class:           ELFCLASS3230  Data:            ELFDATA2LSB31  Type:            ET_EXEC32  Machine:         EM_ARM33Sections:34  - Name:            .text35    Type:            SHT_PROGBITS36    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]37    Address:         0x100038    AddressAlign:    0x000000000000100039    Size:            6440  - Name:            .data41    Type:            SHT_PROGBITS42    Flags:           [ SHF_ALLOC ]43    Address:         0x200044    AddressAlign:    0x000000000000100045    Size:            6446ProgramHeaders:47  - Type:     PT_LOAD48    Flags:    [ PF_X, PF_R ]49    VAddr:    0x100050    Align:    0x100051    FirstSec: .text52    LastSec:  .text53  - Type:     PT_LOAD54    Flags:    [ PF_R, PF_W ]55    VAddr:    0x200056    Align:    0x100057    FirstSec: .data58    LastSec:  .data59## TODO (grimar): llvm-objcopy seems produce a broken output without60## the following line, i.e. when there is no symbol table in the input.61Symbols: []62 63# CHECK:      0: 00000000 0 NOTYPE LOCAL DEFAULT UND64# CHECK-NEXT: 1: 00000001 0 NOTYPE GLOBAL DEFAULT ABS abs165# CHECK-NEXT: 2: 00000002 0 FUNC LOCAL HIDDEN ABS abs266# CHECK-NEXT: 3: 00000003 0 OBJECT GLOBAL DEFAULT ABS abs367# CHECK-NEXT: 4: 00000004 0 OBJECT GLOBAL PROTECTED ABS abs468# CHECK-NEXT: 5: 00000000 0 FILE GLOBAL DEFAULT ABS foo.cpp69# CHECK-NEXT: 6: 00001000 0 SECTION GLOBAL DEFAULT 170# CHECK-NEXT: 7: 00002100 0 NOTYPE WEAK DEFAULT 2 data71# CHECK-NEXT: 8: 00001000 0 IFUNC GLOBAL DEFAULT 1 ifunc72 73# IGNORED:       1: 00000000 0 NOTYPE GLOBAL DEFAULT ABS dummy174# IGNORED-NEXT:  2: 00000000 0 NOTYPE GLOBAL DEFAULT ABS dummy275 76# ERR1: error: bad format for --add-symbol, missing '=' after 'test'77# ERR2: error: bad format for --add-symbol, missing section name or symbol value78# ERR3: error: unsupported flag for --add-symbol: 'cool'79# ERR4: error: unsupported flags for --add-symbol: 'foo', 'bar'80# ERR5: error: bad symbol value: 'xyz'81 82