1*07d8a457SIlia Kuklin# RUN: yaml2obj --docnum=1 %s -o %t.o 2*07d8a457SIlia Kuklin# RUN: echo '.*' > %t.symbols.regex 3*07d8a457SIlia Kuklin 4*07d8a457SIlia Kuklin## Check that the visibility of all symbols is properly set to DEFAULT. 5*07d8a457SIlia Kuklin# RUN: llvm-objcopy %t.o %t0.o --set-symbols-visibility=%t.symbols.regex=default --regex 6*07d8a457SIlia Kuklin# RUN: llvm-readelf -s %t0.o | FileCheck %s --check-prefix=DEF 7*07d8a457SIlia Kuklin 8*07d8a457SIlia Kuklin# DEF-DAG: DEFAULT 1 default_local 9*07d8a457SIlia Kuklin# DEF-DAG: DEFAULT 1 internal_local 10*07d8a457SIlia Kuklin# DEF-DAG: DEFAULT 1 hidden_local 11*07d8a457SIlia Kuklin# DEF-DAG: DEFAULT 1 protected_local 12*07d8a457SIlia Kuklin# DEF-DAG: DEFAULT 1 default_global 13*07d8a457SIlia Kuklin# DEF-DAG: DEFAULT 1 default_weak 14*07d8a457SIlia Kuklin# DEF-DAG: DEFAULT 1 internal_global 15*07d8a457SIlia Kuklin# DEF-DAG: DEFAULT 1 internal_weak 16*07d8a457SIlia Kuklin# DEF-DAG: DEFAULT 1 hidden_global 17*07d8a457SIlia Kuklin# DEF-DAG: DEFAULT 1 hidden_weak 18*07d8a457SIlia Kuklin# DEF-DAG: DEFAULT 1 protected_global 19*07d8a457SIlia Kuklin# DEF-DAG: DEFAULT 1 protected_weak 20*07d8a457SIlia Kuklin 21*07d8a457SIlia Kuklin## Check that the visibility of all symbols is properly set to HIDDEN. 22*07d8a457SIlia Kuklin# RUN: llvm-objcopy %t.o %t1.o --set-symbols-visibility=%t.symbols.regex=hidden --regex 23*07d8a457SIlia Kuklin# RUN: llvm-readelf -s %t1.o | FileCheck %s --check-prefix=HID 24*07d8a457SIlia Kuklin 25*07d8a457SIlia Kuklin# HID-DAG: HIDDEN 1 default_local 26*07d8a457SIlia Kuklin# HID-DAG: HIDDEN 1 internal_local 27*07d8a457SIlia Kuklin# HID-DAG: HIDDEN 1 hidden_local 28*07d8a457SIlia Kuklin# HID-DAG: HIDDEN 1 protected_local 29*07d8a457SIlia Kuklin# HID-DAG: HIDDEN 1 default_global 30*07d8a457SIlia Kuklin# HID-DAG: HIDDEN 1 default_weak 31*07d8a457SIlia Kuklin# HID-DAG: HIDDEN 1 internal_global 32*07d8a457SIlia Kuklin# HID-DAG: HIDDEN 1 internal_weak 33*07d8a457SIlia Kuklin# HID-DAG: HIDDEN 1 hidden_global 34*07d8a457SIlia Kuklin# HID-DAG: HIDDEN 1 hidden_weak 35*07d8a457SIlia Kuklin# HID-DAG: HIDDEN 1 protected_global 36*07d8a457SIlia Kuklin# HID-DAG: HIDDEN 1 protected_weak 37*07d8a457SIlia Kuklin 38*07d8a457SIlia Kuklin## Check that the visibility of all symbols is properly set to PROTECTED. 39*07d8a457SIlia Kuklin# RUN: llvm-objcopy %t.o %t2.o --set-symbols-visibility=%t.symbols.regex=protected --regex 40*07d8a457SIlia Kuklin# RUN: llvm-readelf -s %t2.o | FileCheck %s --check-prefix=PRO 41*07d8a457SIlia Kuklin 42*07d8a457SIlia Kuklin# PRO-DAG: PROTECTED 1 default_local 43*07d8a457SIlia Kuklin# PRO-DAG: PROTECTED 1 internal_local 44*07d8a457SIlia Kuklin# PRO-DAG: PROTECTED 1 hidden_local 45*07d8a457SIlia Kuklin# PRO-DAG: PROTECTED 1 protected_local 46*07d8a457SIlia Kuklin# PRO-DAG: PROTECTED 1 default_global 47*07d8a457SIlia Kuklin# PRO-DAG: PROTECTED 1 default_weak 48*07d8a457SIlia Kuklin# PRO-DAG: PROTECTED 1 internal_global 49*07d8a457SIlia Kuklin# PRO-DAG: PROTECTED 1 internal_weak 50*07d8a457SIlia Kuklin# PRO-DAG: PROTECTED 1 hidden_global 51*07d8a457SIlia Kuklin# PRO-DAG: PROTECTED 1 hidden_weak 52*07d8a457SIlia Kuklin# PRO-DAG: PROTECTED 1 protected_global 53*07d8a457SIlia Kuklin# PRO-DAG: PROTECTED 1 protected_weak 54*07d8a457SIlia Kuklin 55*07d8a457SIlia Kuklin## Check that the visibility of all symbols is properly set to INTERNAL. 56*07d8a457SIlia Kuklin# RUN: llvm-objcopy %t.o %t3.o --set-symbols-visibility=%t.symbols.regex=internal --regex 57*07d8a457SIlia Kuklin# RUN: llvm-readelf -s %t3.o | FileCheck %s --check-prefix=INT 58*07d8a457SIlia Kuklin 59*07d8a457SIlia Kuklin# INT-DAG: INTERNAL 1 default_local 60*07d8a457SIlia Kuklin# INT-DAG: INTERNAL 1 internal_local 61*07d8a457SIlia Kuklin# INT-DAG: INTERNAL 1 hidden_local 62*07d8a457SIlia Kuklin# INT-DAG: INTERNAL 1 protected_local 63*07d8a457SIlia Kuklin# INT-DAG: INTERNAL 1 default_global 64*07d8a457SIlia Kuklin# INT-DAG: INTERNAL 1 default_weak 65*07d8a457SIlia Kuklin# INT-DAG: INTERNAL 1 internal_global 66*07d8a457SIlia Kuklin# INT-DAG: INTERNAL 1 internal_weak 67*07d8a457SIlia Kuklin# INT-DAG: INTERNAL 1 hidden_global 68*07d8a457SIlia Kuklin# INT-DAG: INTERNAL 1 hidden_weak 69*07d8a457SIlia Kuklin# INT-DAG: INTERNAL 1 protected_global 70*07d8a457SIlia Kuklin# INT-DAG: INTERNAL 1 protected_weak 71*07d8a457SIlia Kuklin 72*07d8a457SIlia Kuklin## Check that setting the visibility of certain symbols that were read from 73*07d8a457SIlia Kuklin## a file does not affect other symbols. 74*07d8a457SIlia Kuklin# RUN: echo -e "default_local\ninternal_local" > %t.symbol.list 75*07d8a457SIlia Kuklin# RUN: llvm-objcopy %t.o %t4.o --set-symbols-visibility=%t.symbol.list=hidden 76*07d8a457SIlia Kuklin# RUN: llvm-readelf -s %t4.o | FileCheck %s --check-prefix=FILE 77*07d8a457SIlia Kuklin 78*07d8a457SIlia Kuklin# FILE-DAG: HIDDEN 1 default_local 79*07d8a457SIlia Kuklin# FILE-DAG: HIDDEN 1 internal_local 80*07d8a457SIlia Kuklin## Unaffected symbols: 81*07d8a457SIlia Kuklin# FILE-DAG: HIDDEN 1 hidden_local 82*07d8a457SIlia Kuklin# FILE-DAG: PROTECTED 1 protected_local 83*07d8a457SIlia Kuklin# FILE-DAG: DEFAULT 1 default_global 84*07d8a457SIlia Kuklin# FILE-DAG: DEFAULT 1 default_weak 85*07d8a457SIlia Kuklin# FILE-DAG: INTERNAL 1 internal_global 86*07d8a457SIlia Kuklin# FILE-DAG: INTERNAL 1 internal_weak 87*07d8a457SIlia Kuklin# FILE-DAG: HIDDEN 1 hidden_global 88*07d8a457SIlia Kuklin# FILE-DAG: HIDDEN 1 hidden_weak 89*07d8a457SIlia Kuklin# FILE-DAG: PROTECTED 1 protected_global 90*07d8a457SIlia Kuklin# FILE-DAG: PROTECTED 1 protected_weak 91*07d8a457SIlia Kuklin 92*07d8a457SIlia Kuklin## Check that the visibility of a single symbol is set correctly, 93*07d8a457SIlia Kuklin## and that no other symbols are affected. 94*07d8a457SIlia Kuklin# RUN: llvm-objcopy %t.o %t5.o --set-symbol-visibility=default_local=hidden \ 95*07d8a457SIlia Kuklin# RUN: --set-symbol-visibility=internal_local=protected \ 96*07d8a457SIlia Kuklin# RUN: --set-symbol-visibility=hidden_local=internal \ 97*07d8a457SIlia Kuklin# RUN: --set-symbol-visibility=protected_local=default 98*07d8a457SIlia Kuklin# RUN: llvm-readelf -s %t5.o | FileCheck %s --check-prefix=SINGLE 99*07d8a457SIlia Kuklin 100*07d8a457SIlia Kuklin# SINGLE-DAG: HIDDEN 1 default_local 101*07d8a457SIlia Kuklin# SINGLE-DAG: PROTECTED 1 internal_local 102*07d8a457SIlia Kuklin# SINGLE-DAG: INTERNAL 1 hidden_local 103*07d8a457SIlia Kuklin# SINGLE-DAG: DEFAULT 1 protected_local 104*07d8a457SIlia Kuklin## Unaffected symbols: 105*07d8a457SIlia Kuklin# SINGLE-DAG: DEFAULT 1 default_global 106*07d8a457SIlia Kuklin# SINGLE-DAG: DEFAULT 1 default_weak 107*07d8a457SIlia Kuklin# SINGLE-DAG: INTERNAL 1 internal_global 108*07d8a457SIlia Kuklin# SINGLE-DAG: INTERNAL 1 internal_weak 109*07d8a457SIlia Kuklin# SINGLE-DAG: HIDDEN 1 hidden_global 110*07d8a457SIlia Kuklin# SINGLE-DAG: HIDDEN 1 hidden_weak 111*07d8a457SIlia Kuklin# SINGLE-DAG: PROTECTED 1 protected_global 112*07d8a457SIlia Kuklin# SINGLE-DAG: PROTECTED 1 protected_weak 113*07d8a457SIlia Kuklin 114*07d8a457SIlia Kuklin## Check that the visibility of symbols specified by a regex are set correctly, 115*07d8a457SIlia Kuklin## and that no other symbols are affected. 116*07d8a457SIlia Kuklin# RUN: llvm-objcopy %t.o %t6.o --set-symbol-visibility='.*'_local=hidden --regex 117*07d8a457SIlia Kuklin# RUN: llvm-readelf -s %t6.o | FileCheck %s --check-prefix=REGEX 118*07d8a457SIlia Kuklin 119*07d8a457SIlia Kuklin# REGEX-DAG: HIDDEN 1 default_local 120*07d8a457SIlia Kuklin# REGEX-DAG: HIDDEN 1 internal_local 121*07d8a457SIlia Kuklin# REGEX-DAG: HIDDEN 1 hidden_local 122*07d8a457SIlia Kuklin# REGEX-DAG: HIDDEN 1 protected_local 123*07d8a457SIlia Kuklin## Unaffected symbols: 124*07d8a457SIlia Kuklin# REGEX-DAG: DEFAULT 1 default_global 125*07d8a457SIlia Kuklin# REGEX-DAG: DEFAULT 1 default_weak 126*07d8a457SIlia Kuklin# REGEX-DAG: INTERNAL 1 internal_global 127*07d8a457SIlia Kuklin# REGEX-DAG: INTERNAL 1 internal_weak 128*07d8a457SIlia Kuklin# REGEX-DAG: HIDDEN 1 hidden_global 129*07d8a457SIlia Kuklin# REGEX-DAG: HIDDEN 1 hidden_weak 130*07d8a457SIlia Kuklin# REGEX-DAG: PROTECTED 1 protected_global 131*07d8a457SIlia Kuklin# REGEX-DAG: PROTECTED 1 protected_weak 132*07d8a457SIlia Kuklin 133*07d8a457SIlia Kuklin## Check that the visibility of symbols specified by a wildcard are set correctly, 134*07d8a457SIlia Kuklin## and that no other symbols are affected. 135*07d8a457SIlia Kuklin# RUN: llvm-objcopy %t.o %t7.o --set-symbol-visibility='*_local'=hidden --wildcard 136*07d8a457SIlia Kuklin# RUN: llvm-readelf -s %t7.o | FileCheck %s --check-prefix=WILDCARD 137*07d8a457SIlia Kuklin 138*07d8a457SIlia Kuklin# WILDCARD-DAG: HIDDEN 1 default_local 139*07d8a457SIlia Kuklin# WILDCARD-DAG: HIDDEN 1 internal_local 140*07d8a457SIlia Kuklin# WILDCARD-DAG: HIDDEN 1 hidden_local 141*07d8a457SIlia Kuklin# WILDCARD-DAG: HIDDEN 1 protected_local 142*07d8a457SIlia Kuklin## Unaffected symbols: 143*07d8a457SIlia Kuklin# WILDCARD-DAG: DEFAULT 1 default_global 144*07d8a457SIlia Kuklin# WILDCARD-DAG: DEFAULT 1 default_weak 145*07d8a457SIlia Kuklin# WILDCARD-DAG: INTERNAL 1 internal_global 146*07d8a457SIlia Kuklin# WILDCARD-DAG: INTERNAL 1 internal_weak 147*07d8a457SIlia Kuklin# WILDCARD-DAG: HIDDEN 1 hidden_global 148*07d8a457SIlia Kuklin# WILDCARD-DAG: HIDDEN 1 hidden_weak 149*07d8a457SIlia Kuklin# WILDCARD-DAG: PROTECTED 1 protected_global 150*07d8a457SIlia Kuklin# WILDCARD-DAG: PROTECTED 1 protected_weak 151*07d8a457SIlia Kuklin 152*07d8a457SIlia Kuklin## Check that the latest option that matches the same symbols as any of the previous 153*07d8a457SIlia Kuklin## options overwrites the visibility of these symbols. 154*07d8a457SIlia Kuklin# RUN: echo -e '*_weak\n*_local' > %t.symbols.pattern 155*07d8a457SIlia Kuklin# RUN: llvm-objcopy %t.o %t8.o --set-symbol-visibility='default_*'=hidden \ 156*07d8a457SIlia Kuklin# RUN: --set-symbol-visibility='internal_*'=hidden \ 157*07d8a457SIlia Kuklin# RUN: --set-symbols-visibility=%t.symbols.pattern=protected \ 158*07d8a457SIlia Kuklin# RUN: --wildcard 159*07d8a457SIlia Kuklin# RUN: llvm-readelf -s %t8.o | FileCheck %s --check-prefix=REWRITE 160*07d8a457SIlia Kuklin 161*07d8a457SIlia Kuklin# REWRITE-DAG: PROTECTED 1 default_local 162*07d8a457SIlia Kuklin# REWRITE-DAG: HIDDEN 1 default_global 163*07d8a457SIlia Kuklin# REWRITE-DAG: PROTECTED 1 default_weak 164*07d8a457SIlia Kuklin# REWRITE-DAG: PROTECTED 1 internal_local 165*07d8a457SIlia Kuklin# REWRITE-DAG: HIDDEN 1 internal_global 166*07d8a457SIlia Kuklin# REWRITE-DAG: PROTECTED 1 internal_weak 167*07d8a457SIlia Kuklin# REWRITE-DAG: PROTECTED 1 hidden_local 168*07d8a457SIlia Kuklin# REWRITE-DAG: PROTECTED 1 hidden_weak 169*07d8a457SIlia Kuklin# REWRITE-DAG: PROTECTED 1 protected_local 170*07d8a457SIlia Kuklin# REWRITE-DAG: PROTECTED 1 protected_weak 171*07d8a457SIlia Kuklin## Unaffected symbols: 172*07d8a457SIlia Kuklin# REWRITE-DAG: HIDDEN 1 hidden_global 173*07d8a457SIlia Kuklin# REWRITE-DAG: PROTECTED 1 protected_global 174*07d8a457SIlia Kuklin 175*07d8a457SIlia Kuklin## Check that a symbol name with a special charater is treated as a plain name 176*07d8a457SIlia Kuklin## when pattern matching options are not enabled. 177*07d8a457SIlia Kuklin# RUN: yaml2obj --docnum=2 %s -o %t9.o 178*07d8a457SIlia Kuklin# RUN: llvm-objcopy %t9.o --set-symbol-visibility='f*o'=hidden 179*07d8a457SIlia Kuklin# RUN: llvm-readelf -s %t9.o | FileCheck %s --check-prefix=SPECIAL 180*07d8a457SIlia Kuklin 181*07d8a457SIlia Kuklin# SPECIAL-DAG: HIDDEN 1 f*o 182*07d8a457SIlia Kuklin## Unaffected symbol: 183*07d8a457SIlia Kuklin# SPECIAL-DAG: DEFAULT 1 foo 184*07d8a457SIlia Kuklin 185*07d8a457SIlia Kuklin# RUN: yaml2obj --docnum=3 %s -o %t10.o 186*07d8a457SIlia Kuklin 187*07d8a457SIlia Kuklin## Check that the visibility of undefined symbols can be changed as well. 188*07d8a457SIlia Kuklin# RUN: llvm-objcopy %t10.o --set-symbol-visibility=foo=hidden 189*07d8a457SIlia Kuklin# RUN: llvm-readelf -s %t10.o | FileCheck %s --check-prefix=UNDEF 190*07d8a457SIlia Kuklin# UNDEF: HIDDEN UND foo 191*07d8a457SIlia Kuklin 192*07d8a457SIlia Kuklin## Check that passing an invalid visibility type generates an error message. 193*07d8a457SIlia Kuklin# RUN: echo 'foo' > %t.symbols 194*07d8a457SIlia Kuklin# RUN: not llvm-objcopy %t10.o --set-symbols-visibility=%t.symbols=invalid-type 2>&1 | \ 195*07d8a457SIlia Kuklin# RUN: FileCheck %s --check-prefix=TYPE 196*07d8a457SIlia Kuklin# RUN: not llvm-objcopy %t10.o --set-symbol-visibility=foo=invalid-type 2>&1 | \ 197*07d8a457SIlia Kuklin# RUN: FileCheck %s --check-prefix=TYPE 198*07d8a457SIlia Kuklin# TYPE: error: 'invalid-type' is not a valid symbol visibility 199*07d8a457SIlia Kuklin 200*07d8a457SIlia Kuklin## Check that omitting the '=' character generates an error. 201*07d8a457SIlia Kuklin# RUN: not llvm-objcopy %t10.o --set-symbols-visibility=%t.symbols,hidden 2>&1 | \ 202*07d8a457SIlia Kuklin# RUN: FileCheck %s --check-prefix=FORMAT -DOPTION=--set-symbols-visibility 203*07d8a457SIlia Kuklin# RUN: not llvm-objcopy %t10.o --set-symbol-visibility=foo default 2>&1 | \ 204*07d8a457SIlia Kuklin# RUN: FileCheck %s --check-prefix=FORMAT -DOPTION=--set-symbol-visibility 205*07d8a457SIlia Kuklin# FORMAT: error: bad format for [[OPTION]] 206*07d8a457SIlia Kuklin 207*07d8a457SIlia Kuklin## Check that using an invalid symbol pattern generates an error. 208*07d8a457SIlia Kuklin# RUN: echo '*.' > %t.symbols.regex 209*07d8a457SIlia Kuklin# RUN: not llvm-objcopy %t10.o --set-symbols-visibility=%t.symbols.regex=hidden --regex 2>&1 | \ 210*07d8a457SIlia Kuklin# RUN: FileCheck %s --check-prefix=SYMBOL 211*07d8a457SIlia Kuklin# RUN: not llvm-objcopy %t10.o --set-symbol-visibility='*.'=default --regex 2>&1 | \ 212*07d8a457SIlia Kuklin# RUN: FileCheck %s --check-prefix=SYMBOL 213*07d8a457SIlia Kuklin# SYMBOL: error: cannot compile regular expression '*.': repetition-operator operand invalid 214*07d8a457SIlia Kuklin 215*07d8a457SIlia Kuklin## Check passing an invalid filename generates an error. 216*07d8a457SIlia Kuklin# RUN: not llvm-objcopy %t10.o --set-symbols-visibility=no_file=hidden 2>&1 | \ 217*07d8a457SIlia Kuklin# RUN: FileCheck %s --check-prefix=NO_FILE -DMSG=%errc_ENOENT 218*07d8a457SIlia Kuklin# NO_FILE: error: 'no_file': [[MSG]] 219*07d8a457SIlia Kuklin 220*07d8a457SIlia Kuklin--- 221*07d8a457SIlia Kuklin!ELF 222*07d8a457SIlia KuklinFileHeader: 223*07d8a457SIlia Kuklin Class: ELFCLASS64 224*07d8a457SIlia Kuklin Data: ELFDATA2LSB 225*07d8a457SIlia Kuklin Type: ET_REL 226*07d8a457SIlia Kuklin Machine: EM_X86_64 227*07d8a457SIlia KuklinSections: 228*07d8a457SIlia Kuklin - Name: .text 229*07d8a457SIlia Kuklin Type: SHT_PROGBITS 230*07d8a457SIlia KuklinSymbols: 231*07d8a457SIlia Kuklin - Name: default_local 232*07d8a457SIlia Kuklin Section: .text 233*07d8a457SIlia Kuklin Binding: STB_LOCAL 234*07d8a457SIlia Kuklin - Name: protected_local 235*07d8a457SIlia Kuklin Section: .text 236*07d8a457SIlia Kuklin Binding: STB_LOCAL 237*07d8a457SIlia Kuklin Other: [ STV_PROTECTED ] 238*07d8a457SIlia Kuklin - Name: internal_local 239*07d8a457SIlia Kuklin Section: .text 240*07d8a457SIlia Kuklin Binding: STB_LOCAL 241*07d8a457SIlia Kuklin Other: [ STV_INTERNAL ] 242*07d8a457SIlia Kuklin - Name: hidden_local 243*07d8a457SIlia Kuklin Section: .text 244*07d8a457SIlia Kuklin Binding: STB_LOCAL 245*07d8a457SIlia Kuklin Other: [ STV_HIDDEN ] 246*07d8a457SIlia Kuklin - Name: default_weak 247*07d8a457SIlia Kuklin Section: .text 248*07d8a457SIlia Kuklin Binding: STB_WEAK 249*07d8a457SIlia Kuklin - Name: internal_weak 250*07d8a457SIlia Kuklin Section: .text 251*07d8a457SIlia Kuklin Binding: STB_WEAK 252*07d8a457SIlia Kuklin Other: [ STV_INTERNAL ] 253*07d8a457SIlia Kuklin - Name: hidden_weak 254*07d8a457SIlia Kuklin Section: .text 255*07d8a457SIlia Kuklin Binding: STB_WEAK 256*07d8a457SIlia Kuklin Other: [ STV_HIDDEN ] 257*07d8a457SIlia Kuklin - Name: protected_weak 258*07d8a457SIlia Kuklin Section: .text 259*07d8a457SIlia Kuklin Binding: STB_WEAK 260*07d8a457SIlia Kuklin Other: [ STV_PROTECTED ] 261*07d8a457SIlia Kuklin - Name: default_global 262*07d8a457SIlia Kuklin Section: .text 263*07d8a457SIlia Kuklin Binding: STB_GLOBAL 264*07d8a457SIlia Kuklin - Name: internal_global 265*07d8a457SIlia Kuklin Section: .text 266*07d8a457SIlia Kuklin Binding: STB_GLOBAL 267*07d8a457SIlia Kuklin Other: [ STV_INTERNAL ] 268*07d8a457SIlia Kuklin - Name: hidden_global 269*07d8a457SIlia Kuklin Section: .text 270*07d8a457SIlia Kuklin Binding: STB_GLOBAL 271*07d8a457SIlia Kuklin Other: [ STV_HIDDEN ] 272*07d8a457SIlia Kuklin - Name: protected_global 273*07d8a457SIlia Kuklin Section: .text 274*07d8a457SIlia Kuklin Binding: STB_GLOBAL 275*07d8a457SIlia Kuklin Other: [ STV_PROTECTED ] 276*07d8a457SIlia Kuklin - Name: ignored_name 277*07d8a457SIlia Kuklin Section: .text 278*07d8a457SIlia Kuklin Binding: STB_GLOBAL 279*07d8a457SIlia Kuklin Other: [ STV_INTERNAL ] 280*07d8a457SIlia Kuklin... 281*07d8a457SIlia Kuklin 282*07d8a457SIlia Kuklin--- 283*07d8a457SIlia Kuklin!ELF 284*07d8a457SIlia KuklinFileHeader: 285*07d8a457SIlia Kuklin Class: ELFCLASS64 286*07d8a457SIlia Kuklin Data: ELFDATA2LSB 287*07d8a457SIlia Kuklin Type: ET_REL 288*07d8a457SIlia Kuklin Machine: EM_X86_64 289*07d8a457SIlia KuklinSections: 290*07d8a457SIlia Kuklin - Name: .text 291*07d8a457SIlia Kuklin Type: SHT_PROGBITS 292*07d8a457SIlia KuklinSymbols: 293*07d8a457SIlia Kuklin - Name: f*o 294*07d8a457SIlia Kuklin Section: .text 295*07d8a457SIlia Kuklin Binding: STB_LOCAL 296*07d8a457SIlia Kuklin - Name: foo 297*07d8a457SIlia Kuklin Section: .text 298*07d8a457SIlia Kuklin Binding: STB_LOCAL 299*07d8a457SIlia Kuklin... 300*07d8a457SIlia Kuklin 301*07d8a457SIlia Kuklin--- 302*07d8a457SIlia Kuklin!ELF 303*07d8a457SIlia KuklinFileHeader: 304*07d8a457SIlia Kuklin Class: ELFCLASS64 305*07d8a457SIlia Kuklin Data: ELFDATA2LSB 306*07d8a457SIlia Kuklin Type: ET_REL 307*07d8a457SIlia Kuklin Machine: EM_X86_64 308*07d8a457SIlia KuklinSymbols: 309*07d8a457SIlia Kuklin - Name: foo 310*07d8a457SIlia Kuklin Binding: STB_LOCAL 311*07d8a457SIlia Kuklin... 312