brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.0 KiB · a924a72 Raw
128 lines · plain
1# RUN: echo -n abcd > %t.x-txt2# Preserve input to verify it is not modified3# RUN: cp %t.x-txt %t-copy.txt4# RUN: llvm-objcopy -I binary -O elf64-x86-64 %t.x-txt %t.o5# RUN: llvm-readobj --sections --symbols %t.o | FileCheck %s6# RUN: cmp %t.x-txt %t-copy.txt7 8# CHECK:      Sections [9# CHECK-NEXT:   Section {10# CHECK-NEXT:     Index: 011# CHECK-NEXT:     Name:  (0)12# CHECK-NEXT:     Type: SHT_NULL (0x0)13# CHECK-NEXT:     Flags [ (0x0)14# CHECK-NEXT:     ]15# CHECK-NEXT:     Address: 0x016# CHECK-NEXT:     Offset:17# CHECK-NEXT:     Size:18# CHECK-NEXT:     Link: 019# CHECK-NEXT:     Info: 020# CHECK-NEXT:     AddressAlignment: 021# CHECK-NEXT:     EntrySize: 022# CHECK-NEXT:   }23# CHECK-NEXT:   Section {24# CHECK-NEXT:     Index: 125# CHECK-NEXT:     Name: .strtab26# CHECK-NEXT:     Type: SHT_STRTAB (0x3)27# CHECK-NEXT:     Flags [ (0x0)28# CHECK-NEXT:     ]29# CHECK-NEXT:     Address: 0x030# CHECK-NEXT:     Offset:31# CHECK-NEXT:     Size:32# CHECK-NEXT:     Link: 033# CHECK-NEXT:     Info: 034# CHECK-NEXT:     AddressAlignment: 135# CHECK-NEXT:     EntrySize: 036# CHECK-NEXT:   }37# CHECK-NEXT:   Section {38# CHECK-NEXT:     Index: 239# CHECK-NEXT:     Name: .symtab40# CHECK-NEXT:     Type: SHT_SYMTAB (0x2)41# CHECK-NEXT:     Flags [ (0x0)42# CHECK-NEXT:     ]43# CHECK-NEXT:     Address: 0x044# CHECK-NEXT:     Offset:45# CHECK-NEXT:     Size:46# CHECK-NEXT:     Link: 147# CHECK-NEXT:     Info: 148# CHECK-NEXT:     AddressAlignment: 849# CHECK-NEXT:     EntrySize: 2450# CHECK-NEXT:   }51# CHECK-NEXT:   Section {52# CHECK-NEXT:     Index: 353# CHECK-NEXT:     Name: .data54# CHECK-NEXT:     Type: SHT_PROGBITS (0x1)55# CHECK-NEXT:     Flags [ (0x3)56# CHECK-NEXT:       SHF_ALLOC (0x2)57# CHECK-NEXT:       SHF_WRITE (0x1)58# CHECK-NEXT:     ]59# CHECK-NEXT:     Address: 0x060# CHECK-NEXT:     Offset:61# CHECK-NEXT:     Size: 462# CHECK-NEXT:     Link: 063# CHECK-NEXT:     Info: 064# CHECK-NEXT:     AddressAlignment: 165# CHECK-NEXT:     EntrySize: 066# CHECK-NEXT:   }67# CHECK-NEXT: ]68 69# Note: the symbol names are derived from the full path (with non-alnum values70# replaced with "_"), e.g. "/tmp/a-b.c" should yield71# _binary__tmp_a_b_c_{start,end,size}.72# Just check for _binary_{{[_a-zA-Z0-9]*}}_x_txt_{start,end,size} to avoid73# making assumptions about how this test is run.74 75# CHECK:      Symbols [76# CHECK-NEXT:   Symbol {77# CHECK-NEXT:     Name:78# CHECK-NEXT:     Value: 0x079# CHECK-NEXT:     Size: 080# CHECK-NEXT:     Binding: Local (0x0)81# CHECK-NEXT:     Type: None (0x0)82# CHECK-NEXT:     Other: 083# CHECK-NEXT:     Section: Undefined (0x0)84# CHECK-NEXT:   }85# CHECK-NEXT:   Symbol {86# CHECK-NEXT:     Name: _binary_{{[_a-zA-Z0-9]*}}_x_txt_start87# CHECK-NEXT:     Value: 0x088# CHECK-NEXT:     Size: 089# CHECK-NEXT:     Binding: Global (0x1)90# CHECK-NEXT:     Type: None (0x0)91# CHECK-NEXT:     Other: 092# CHECK-NEXT:     Section: .data93# CHECK-NEXT:   }94# CHECK-NEXT:   Symbol {95# CHECK-NEXT:     Name: _binary_{{[_a-zA-Z0-9]*}}_x_txt_end96# CHECK-NEXT:     Value: 0x497# CHECK-NEXT:     Size: 098# CHECK-NEXT:     Binding: Global (0x1)99# CHECK-NEXT:     Type: None (0x0)100# CHECK-NEXT:     Other: 0101# CHECK-NEXT:     Section: .data102# CHECK-NEXT:   }103# CHECK-NEXT:   Symbol {104# CHECK-NEXT:     Name: _binary_{{[_a-zA-Z0-9]*}}_x_txt_size105# CHECK-NEXT:     Value: 0x4106# CHECK-NEXT:     Size: 0107# CHECK-NEXT:     Binding: Global (0x1)108# CHECK-NEXT:     Type: None (0x0)109# CHECK-NEXT:     Other: 0110# CHECK-NEXT:     Section: Absolute111# CHECK-NEXT:   }112# CHECK-NEXT: ]113 114## The alignment can be changed by --set-section-alignment.115# RUN: llvm-objcopy -I binary -O elf64-x86-64 --set-section-alignment .data=8 %t.x-txt %t2.o116# RUN: llvm-readobj --sections %t2.o | FileCheck --check-prefix=ALIGN %s117 118# ALIGN:      Name: .data119# ALIGN:      AddressAlignment:120# ALIGN-SAME:                   8{{$}}121 122## Show that a filename with non-ASCII characters can be handled appropriately.123## The exact encoding of the non-ASCII character will determine what characters124## are used, so don't check for them specifically.125# RUN: cp %t.x-txt %t€.x-txt126# RUN: llvm-objcopy -I binary -O elf64-x86-64 %t€.x-txt %t3.o127# RUN: llvm-readobj --sections --symbols %t3.o | FileCheck %s128