diff --git a/llvm/test/tools/llvm-tli-checker/apple-darwin-tli-check.yaml b/llvm/test/tools/llvm-tli-checker/apple-darwin-tli-check.yaml new file mode 100644 index 0000000000000..e27275ceb7116 --- /dev/null +++ b/llvm/test/tools/llvm-tli-checker/apple-darwin-tli-check.yaml @@ -0,0 +1,1182 @@ +## This produces a static object that matches expectations for macOS target. +# RUN: yaml2obj %s -DTYPE=ET_REL -DLABEL=Symbols -DZDAPV=_ZdaPv -o=%t1 +# RUN: llvm-tli-checker --triple=x86_64-apple-darwin %t1 | FileCheck %s +# RUN: llvm-tli-checker --triple=aarch64-apple-darwin %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-apple-darwin %t2 | \ +# RUN: FileCheck %s --check-prefixes=WRONG_SUMMARY,WRONG_DETAIL \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple aarch64-apple-darwin %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-apple-darwin %t2 --report=discrepancy | \ +# RUN: FileCheck %s --check-prefixes=WRONG_SUMMARY,WRONG_DETAIL \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple aarch64-apple-darwin %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-apple-darwin %t2 --report=summary | \ +# RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple aarch64-apple-darwin %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-apple-darwin %t2 --separate | \ +# RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple aarch64-apple-darwin %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-apple-darwin --dump-tli > %t3.txt +# RUN: FileCheck %s --check-prefix=AVAIL --input-file %t3.txt +# RUN: FileCheck %s --check-prefix=UNAVAIL --input-file %t3.txt +# RUN: llvm-tli-checker --triple aarch64-apple-darwin --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: 18 +# CHECK: >> Total TLI no SDK yes: 0 +# CHECK: == Total TLI yes SDK yes: 271 +# +# 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_DETAIL-COUNT-4: << TLI yes SDK no : '__size_returning_new{{.*}} +# WRONG_DETAIL: << TLI yes SDK no : 'fmaximum_num' +# WRONG_DETAIL: << TLI yes SDK no : 'fmaximum_numf' +# WRONG_DETAIL: << TLI yes SDK no : 'fmaximum_numl' +# WRONG_DETAIL: << TLI yes SDK no : 'fminimum_num' +# WRONG_DETAIL: << TLI yes SDK no : 'fminimum_numf' +# WRONG_DETAIL: << TLI yes SDK no : 'fminimum_numl' +# WRONG_SUMMARY: << Total TLI yes SDK no: 19{{$}} +# WRONG_SUMMARY: >> Total TLI no SDK yes: 1{{$}} +# WRONG_SUMMARY: == Total TLI yes SDK yes: 270 +# +## 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 522 symbols, 289 available +# AVAIL-COUNT-289: {{^}} 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 macOS, 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 macOS. + - 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_throw + 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: atexit + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: abort + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: exit + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: _Exit + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: _ZSt9terminatev + 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: erf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: erff + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: erfl + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: tgamma + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: tgammaf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: tgammal + 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: hypot + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: hypotf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: hypotl + 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: ilogb + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: ilogbf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: ilogbl + 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: nan + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: nanf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: nanl + 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: remquo + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: remquof + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: remquol + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: fdim + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: fdimf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: fdiml + 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: scalbln + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: scalblnf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: scalblnl + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: scalbn + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: scalbnf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: scalbnl + 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: sincos + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: sincosf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: sincosl + 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 +... diff --git a/llvm/test/tools/llvm-tli-checker/linux-gnu-tli-check.yaml b/llvm/test/tools/llvm-tli-checker/linux-gnu-tli-check.yaml new file mode 100644 index 0000000000000..99d7724a9aaac --- /dev/null +++ b/llvm/test/tools/llvm-tli-checker/linux-gnu-tli-check.yaml @@ -0,0 +1,1198 @@ +## This produces a static object that matches expectations for Linux target. +# RUN: yaml2obj %s -DTYPE=ET_REL -DLABEL=Symbols -DZDAPV=_ZdaPv -o=%t1 +# RUN: llvm-tli-checker --triple=i686-unknown-linux-gnu %t1 | FileCheck %s +# RUN: llvm-tli-checker --triple=x86_64-unknown-linux-gnu %t1 | FileCheck %s +# RUN: llvm-tli-checker --triple=aarch64-unknown-linux-gnu %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 i686-unknown-linux-gnu %t2 | \ +# RUN: FileCheck %s --check-prefixes=WRONG_SUMMARY,WRONG_DETAIL \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple x86_64-unknown-linux-gnu %t2 | \ +# RUN: FileCheck %s --check-prefixes=WRONG_SUMMARY,WRONG_DETAIL \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple aarch64-unknown-linux-gnu %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 i686-unknown-linux-gnu %t2 --report=discrepancy | \ +# RUN: FileCheck %s --check-prefixes=WRONG_SUMMARY,WRONG_DETAIL \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple x86_64-unknown-linux-gnu %t2 --report=discrepancy | \ +# RUN: FileCheck %s --check-prefixes=WRONG_SUMMARY,WRONG_DETAIL \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple aarch64-unknown-linux-gnu %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 i686-unknown-linux-gnu %t2 --report=summary | \ +# RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple x86_64-unknown-linux-gnu %t2 --report=summary | \ +# RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple aarch64-unknown-linux-gnu %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 i686-unknown-linux-gnu %t2 --separate | \ +# RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple x86_64-unknown-linux-gnu %t2 --separate | \ +# RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple aarch64-unknown-linux-gnu %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 i686-unknown-linux-gnu --dump-tli > %t3.txt +# RUN: FileCheck %s --check-prefix=AVAIL --input-file %t3.txt +# RUN: FileCheck %s --check-prefix=UNAVAIL --input-file %t3.txt +# RUN: llvm-tli-checker --triple x86_64-unknown-linux-gnu --dump-tli > %t3.txt +# RUN: FileCheck %s --check-prefix=AVAIL --input-file %t3.txt +# RUN: FileCheck %s --check-prefix=UNAVAIL --input-file %t3.txt +# RUN: llvm-tli-checker --triple aarch64-unknown-linux-gnu --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: 18 +# CHECK: >> Total TLI no SDK yes: 0 +# CHECK: == Total TLI yes SDK yes: 271 +# +# 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_DETAIL-COUNT-4: << TLI yes SDK no : '__size_returning_new{{.*}} +# WRONG_DETAIL: << TLI yes SDK no : 'fmaximum_num' +# WRONG_DETAIL: << TLI yes SDK no : 'fmaximum_numf' +# WRONG_DETAIL: << TLI yes SDK no : 'fmaximum_numl' +# WRONG_DETAIL: << TLI yes SDK no : 'fminimum_num' +# WRONG_DETAIL: << TLI yes SDK no : 'fminimum_numf' +# WRONG_DETAIL: << TLI yes SDK no : 'fminimum_numl' +# WRONG_SUMMARY: << Total TLI yes SDK no: 19{{$}} +# WRONG_SUMMARY: >> Total TLI no SDK yes: 1{{$}} +# WRONG_SUMMARY: == Total TLI yes SDK yes: 270 +# +## 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 522 symbols, 289 available +# AVAIL-COUNT-289: {{^}} 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 Linux, 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 Linux. + - 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_throw + 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: atexit + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: abort + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: exit + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: _Exit + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: _ZSt9terminatev + 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: erf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: erff + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: erfl + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: tgamma + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: tgammaf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: tgammal + 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: hypot + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: hypotf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: hypotl + 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: ilogb + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: ilogbf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: ilogbl + 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: nan + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: nanf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: nanl + 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: remquo + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: remquof + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: remquol + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: fdim + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: fdimf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: fdiml + 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: scalbln + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: scalblnf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: scalblnl + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: scalbn + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: scalbnf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: scalbnl + 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: sincos + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: sincosf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: sincosl + 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 +... diff --git a/llvm/test/tools/llvm-tli-checker/windows-msvc-tli-check.yaml b/llvm/test/tools/llvm-tli-checker/windows-msvc-tli-check.yaml new file mode 100644 index 0000000000000..740b7d11c8c40 --- /dev/null +++ b/llvm/test/tools/llvm-tli-checker/windows-msvc-tli-check.yaml @@ -0,0 +1,1198 @@ +## This produces a static object that matches expectations for Windows MSVC target. +# RUN: yaml2obj %s -DTYPE=ET_REL -DLABEL=Symbols -DZDAPV=_ZdaPv -o=%t1 +# RUN: llvm-tli-checker --triple=i686-windows-msvc %t1 | FileCheck %s +# RUN: llvm-tli-checker --triple=x86_64-windows-msvc %t1 | FileCheck %s +# RUN: llvm-tli-checker --triple=aarch64-windows-msvc %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 i686-windows-msvc %t2 | \ +# RUN: FileCheck %s --check-prefixes=WRONG_SUMMARY,WRONG_DETAIL \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple x86_64-windows-msvc %t2 | \ +# RUN: FileCheck %s --check-prefixes=WRONG_SUMMARY,WRONG_DETAIL \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple aarch64-windows-msvc %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 i686-windows-msvc %t2 --report=discrepancy | \ +# RUN: FileCheck %s --check-prefixes=WRONG_SUMMARY,WRONG_DETAIL \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple x86_64-windows-msvc %t2 --report=discrepancy | \ +# RUN: FileCheck %s --check-prefixes=WRONG_SUMMARY,WRONG_DETAIL \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple aarch64-windows-msvc %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 i686-windows-msvc %t2 --report=summary | \ +# RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple x86_64-windows-msvc %t2 --report=summary | \ +# RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple aarch64-windows-msvc %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 i686-windows-msvc %t2 --separate | \ +# RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple x86_64-windows-msvc %t2 --separate | \ +# RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \ +# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>" +# RUN: llvm-tli-checker --triple aarch64-windows-msvc %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 i686-windows-msvc --dump-tli > %t3.txt +# RUN: FileCheck %s --check-prefix=AVAIL --input-file %t3.txt +# RUN: FileCheck %s --check-prefix=UNAVAIL --input-file %t3.txt +# RUN: llvm-tli-checker --triple x86_64-windows-msvc --dump-tli > %t3.txt +# RUN: FileCheck %s --check-prefix=AVAIL --input-file %t3.txt +# RUN: FileCheck %s --check-prefix=UNAVAIL --input-file %t3.txt +# RUN: llvm-tli-checker --triple aarch64-windows-msvc --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: 18 +# CHECK: >> Total TLI no SDK yes: 0 +# CHECK: == Total TLI yes SDK yes: 271 +# +# 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_DETAIL-COUNT-4: << TLI yes SDK no : '__size_returning_new{{.*}} +# WRONG_DETAIL: << TLI yes SDK no : 'fmaximum_num' +# WRONG_DETAIL: << TLI yes SDK no : 'fmaximum_numf' +# WRONG_DETAIL: << TLI yes SDK no : 'fmaximum_numl' +# WRONG_DETAIL: << TLI yes SDK no : 'fminimum_num' +# WRONG_DETAIL: << TLI yes SDK no : 'fminimum_numf' +# WRONG_DETAIL: << TLI yes SDK no : 'fminimum_numl' +# WRONG_SUMMARY: << Total TLI yes SDK no: 19{{$}} +# WRONG_SUMMARY: >> Total TLI no SDK yes: 1{{$}} +# WRONG_SUMMARY: == Total TLI yes SDK yes: 270 +# +## 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 522 symbols, 289 available +# AVAIL-COUNT-289: {{^}} 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 Windows, 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 Windows. + - 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_throw + 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: atexit + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: abort + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: exit + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: _Exit + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: _ZSt9terminatev + 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: erf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: erff + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: erfl + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: tgamma + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: tgammaf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: tgammal + 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: hypot + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: hypotf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: hypotl + 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: ilogb + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: ilogbf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: ilogbl + 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: nan + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: nanf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: nanl + 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: remquo + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: remquof + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: remquol + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: fdim + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: fdimf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: fdiml + 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: scalbln + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: scalblnf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: scalblnl + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: scalbn + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: scalbnf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: scalbnl + 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: sincos + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: sincosf + Type: STT_FUNC + Section: .text + Binding: STB_GLOBAL + - Name: sincosl + 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 +...