# REQUIRES: x86-registered-target # ## This produces a static object that matches expectations for PS4/PS5. # RUN: yaml2obj %s -DTYPE=ET_REL -DLABEL=Symbols -DZDAPV=_ZdaPv -o=%t1 # RUN: llvm-tli-checker --triple=x86_64-scei-ps4 %t1 | FileCheck %s # RUN: llvm-tli-checker --triple=x86_64-sie-ps5 %t1 | FileCheck %s # ## This produces a dynamic object that has _ZdaPvj instead of _ZdaPv. # RUN: yaml2obj %s -DTYPE=ET_DYN -DLABEL=DynamicSymbols -DZDAPV=_ZdaPvj -o=%t2 # RUN: llvm-tli-checker --triple x86_64-scei-ps4 %t2 | \ # RUN: FileCheck %s --check-prefixes=WRONG_SUMMARY,WRONG_DETAIL \ # RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" # ## --report=discrepancy is the default, check we get the same output. # RUN: llvm-tli-checker --triple x86_64-scei-ps4 %t2 --report=discrepancy | \ # RUN: FileCheck %s --check-prefixes=WRONG_SUMMARY,WRONG_DETAIL \ # RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" # ## --report=summary should not print the details (checked by the ## implicit-check-not strings). # RUN: llvm-tli-checker --triple x86_64-scei-ps4 %t2 --report=summary | \ # RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \ # RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" # ## --separate implies --report=summary. # RUN: llvm-tli-checker --triple x86_64-scei-ps4 %t2 --separate | \ # RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \ # RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" # ## Verify --dump-tli reports the full set. # RUN: llvm-tli-checker --triple x86_64-scei-ps4 --dump-tli > %t3.txt # RUN: FileCheck %s --check-prefix=AVAIL --input-file %t3.txt # RUN: FileCheck %s --check-prefix=UNAVAIL --input-file %t3.txt # # CHECK: << Total TLI yes SDK no: 8 # CHECK: >> Total TLI no SDK yes: 0 # CHECK: == Total TLI yes SDK yes: 235 # # WRONG_DETAIL: << TLI yes SDK no : '_ZdaPv' aka operator delete[](void*) # WRONG_DETAIL: >> TLI no SDK yes: '_ZdaPvj' aka operator delete[](void*, unsigned int) # WRONG_DETAIL-COUNT-8: << TLI yes SDK no : {{.*}}__hot_cold_t # WRONG_SUMMARY: << Total TLI yes SDK no: 9{{$}} # WRONG_SUMMARY: >> Total TLI no SDK yes: 1{{$}} # WRONG_SUMMARY: == Total TLI yes SDK yes: 234 # ## The -COUNT suffix doesn't care if there are too many matches, so check ## the exact count first; the two directives should add up to that. ## Yes, this means additions to TLI will fail this test, but the argument ## to -COUNT can't be an expression. # AVAIL: TLI knows 476 symbols, 243 available # AVAIL-COUNT-243: {{^}} available # AVAIL-NOT: {{^}} available # UNAVAIL-COUNT-233: not available # UNAVAIL-NOT: not available ## This is a large file so it's worth telling lit to stop here. # END. --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB OSABI: ELFOSABI_FREEBSD Type: ET_DYN Machine: EM_X86_64 Sections: - Name: .text Type: SHT_PROGBITS DynamicSymbols: # This is an undefined symbol that is known to TLI but not in the # available set for PS4, showing the tool will ignore undefined symbols. # Omitting the Section attribute makes it undefined. - Name: memcpy_chk Type: STT_FUNC Binding: STB_GLOBAL # This will be either _ZdaPv or _ZdaPvj (see yaml2obj invocations above). - Name: [[ZDAPV]] Type: STT_FUNC Section: .text Binding: STB_GLOBAL # The rest of these are the remaining symbols needed for PS4. - Name: _ZdaPvRKSt9nothrow_t Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZdaPvSt11align_val_t Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZdaPvSt11align_val_tRKSt9nothrow_t Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZdaPvm Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZdaPvmSt11align_val_t Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZdlPv Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZdlPvRKSt9nothrow_t Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZdlPvSt11align_val_t Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZdlPvSt11align_val_tRKSt9nothrow_t Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZdlPvm Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZdlPvmSt11align_val_t Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _Znam Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZnamRKSt9nothrow_t Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZnamSt11align_val_t Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZnamSt11align_val_tRKSt9nothrow_t Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _Znwm Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZnwmRKSt9nothrow_t Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZnwmSt11align_val_t Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: _ZnwmSt11align_val_tRKSt9nothrow_t Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: __cxa_atexit Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: __cxa_guard_abort Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: __cxa_guard_acquire Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: __cxa_guard_release Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: abs Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: acos Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: acosf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: acosh Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: acoshf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: acoshl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: acosl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: aligned_alloc Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: asin Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: asinf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: asinh Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: asinhf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: asinhl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: asinl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: atan Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: atan2 Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: atan2f Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: atan2l Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: atanf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: atanh Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: atanhf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: atanhl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: atanl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: atof Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: atoi Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: atol Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: atoll Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: calloc Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: cbrt Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: cbrtf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: cbrtl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: ceil Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: ceilf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: ceill Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: clearerr Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: copysign Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: copysignf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: copysignl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: cos Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: cosf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: cosh Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: coshf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: coshl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: cosl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: exp Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: exp2 Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: exp2f Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: exp2l Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: expf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: expl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: expm1 Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: expm1f Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: expm1l Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fabs Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fabsf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fabsl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fclose Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fdopen Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: feof Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: ferror Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fflush Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fgetc Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fgetpos Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fgets Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fileno Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: floor Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: floorf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: floorl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fmax Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fmaxf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fmaxl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fmin Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fminf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fminl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fmod Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fmodf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fmodl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fopen Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fprintf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fputc Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fputs Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fread Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: free Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: frexp Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: frexpf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: frexpl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fscanf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fseek Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fsetpos Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: ftell Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: fwrite Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: getc Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: getchar Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: gets Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: isdigit Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: labs Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: ldexp Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: ldexpf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: ldexpl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: llabs Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: log Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: log10 Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: log10f Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: log10l Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: log1p Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: log1pf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: log1pl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: log2 Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: log2f Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: log2l Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: logb Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: logbf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: logbl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: logf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: logl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: malloc Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: memalign Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: memchr Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: memcmp Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: memcpy Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: memmove Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: memset Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: mktime Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: modf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: modff Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: modfl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: nearbyint Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: nearbyintf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: nearbyintl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: perror Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: posix_memalign Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: pow Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: powf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: powl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: printf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: putc Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: putchar Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: puts Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: qsort Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: realloc Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: remainder Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: remainderf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: remainderl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: remove Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: rewind Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: rint Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: rintf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: rintl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: round Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: roundf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: roundl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: scanf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: setbuf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: setvbuf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: sin Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: sinf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: sinh Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: sinhf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: sinhl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: sinl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: snprintf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: sprintf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: sqrt Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: sqrtf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: sqrtl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: sscanf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strcasecmp Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strcat Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strchr Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strcmp Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strcoll Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strcpy Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strcspn Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strdup Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strlen Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strncasecmp Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strncat Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strncmp Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strncpy Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strpbrk Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strrchr Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strspn Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strstr Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strtod Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strtof Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strtok Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strtok_r Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strtol Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strtold Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strtoll Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strtoul Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strtoull Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: strxfrm Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: tan Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: tanf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: tanh Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: tanhf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: tanhl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: tanl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: trunc Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: truncf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: truncl Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: ungetc Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: vfprintf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: vfscanf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: vprintf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: vscanf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: vsnprintf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: vsprintf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: vsscanf Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: wcslen Type: STT_FUNC Section: .text Binding: STB_GLOBAL ...