brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · ec97e37 Raw
57 lines · plain
1## Show that llvm-objcopy can replace the symbol table with a new one.2 3# RUN: yaml2obj %s -o %t4 5# RUN: llvm-objcopy -R .symtab --add-symbol newsym=1234 %t %t26# RUN: llvm-readelf -S -s %t2 | FileCheck %s --match-full-lines7 8# CHECK: There are 5 section headers, starting at offset {{.+}}:9# CHECK:      [Nr] Name      Type     Address          Off    Size   ES  Flg Lk Inf Al10# CHECK-NEXT: [ 0]           NULL     0000000000000000 {{.+}} 000000 00      0  0   011# CHECK-NEXT: [ 1] .text     PROGBITS 0000000000001000 {{.+}} 000040 00  AX  0  0   1612# CHECK-NEXT: [ 2] .strtab   STRTAB   0000000000000000 {{.+}} 000001 00      0  0   113# CHECK-NEXT: [ 3] .shstrtab STRTAB   0000000000000000 {{.+}} 000028 00      0  0   114# CHECK-NEXT: [ 4] .symtab   SYMTAB   0000000000000000 {{.+}} 000030 18      3  1   815 16# CHECK: Symbol table '.symtab' contains 2 entries:17# CHECK-NEXT:   Num:    Value          Size Type    Bind   Vis       Ndx Name18# CHECK-NEXT:     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT   UND19# CHECK-NEXT:     1: 00000000000004d2     0 NOTYPE  GLOBAL DEFAULT   ABS newsym20 21## --set-section-flags works for newly created .symtab, which GNU objcopy does not do.22# RUN: llvm-objcopy -R .symtab --add-symbol newsym=1234 --set-section-flags .symtab=readonly,exclude %t %t323# RUN: llvm-readelf -S %t3 | FileCheck %s --check-prefix=CHECK224 25# CHECK2:     [ 4] .symtab   SYMTAB   0000000000000000 {{.+}} 000030 18  E   3  1   826 27--- !ELF28FileHeader:29  Class:   ELFCLASS6430  Data:    ELFDATA2LSB31  Type:    ET_DYN32  Machine: EM_X86_6433Sections:34  - Name:            .text35    Type:            SHT_PROGBITS36    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]37    Address:         0x100038    AddressAlign:    0x000000000000001039    Size:            6440Symbols:41  - Name:     foo42    Type:     STT_FUNC43    Section:  .text44    Value:    0x100045    Size:     846  - Name:     bar47    Type:     STT_FUNC48    Section:  .text49    Value:    0x100850    Size:     851  - Name:     baz52    Type:     STT_FUNC53    Section:  .text54    Value:    0x101055    Size:     856 57