[llvm] [TLI Checker] Extend the targets for Linux, macOS and Windows. (PR #114556)
Kenji Mouri / 毛利 研二 via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 1 09:00:43 PDT 2024
https://github.com/MouriNaruto created https://github.com/llvm/llvm-project/pull/114556
According to the suggestions (https://github.com/llvm/llvm-project/pull/114536#discussion_r1825894016) from @arsenm, I try to create new baseline TLI checker tests PR first.
Based on the "Tier 1 with Host Tools" section in https://doc.rust-lang.org/nightly/rustc/platform-support.html, I have added some typical targets for TLI checker tests.
Kenji Mouri
>From 7f4abf53eaea4cf51077604b1b9d8d36a2ba0400 Mon Sep 17 00:00:00 2001
From: MouriNaruto <Kenji.Mouri at outlook.com>
Date: Fri, 1 Nov 2024 22:57:19 +0800
Subject: [PATCH] [TLI Checker] Extend the targets for Linux, macOS and
Windows.
---
.../aarch64-apple-darwin-tli-check.yaml | 1168 +++++++++++++++++
.../aarch64-unknown-linux-gnu-tli-check.yaml | 1168 +++++++++++++++++
.../aarch64-windows-msvc-tli-check.yaml | 1168 +++++++++++++++++
.../i686-unknown-linux-gnu-tli-check.yaml | 1168 +++++++++++++++++
.../i686-windows-msvc-tli-check.yaml | 1168 +++++++++++++++++
.../x86_64-apple-darwin-tli-check.yaml | 1168 +++++++++++++++++
.../x86_64-unknown-linux-gnu-tli-check.yaml | 1168 +++++++++++++++++
.../x86_64-windows-msvc-tli-check.yaml | 1168 +++++++++++++++++
8 files changed, 9344 insertions(+)
create mode 100644 llvm/test/tools/llvm-tli-checker/aarch64-apple-darwin-tli-check.yaml
create mode 100644 llvm/test/tools/llvm-tli-checker/aarch64-unknown-linux-gnu-tli-check.yaml
create mode 100644 llvm/test/tools/llvm-tli-checker/aarch64-windows-msvc-tli-check.yaml
create mode 100644 llvm/test/tools/llvm-tli-checker/i686-unknown-linux-gnu-tli-check.yaml
create mode 100644 llvm/test/tools/llvm-tli-checker/i686-windows-msvc-tli-check.yaml
create mode 100644 llvm/test/tools/llvm-tli-checker/x86_64-apple-darwin-tli-check.yaml
create mode 100644 llvm/test/tools/llvm-tli-checker/x86_64-unknown-linux-gnu-tli-check.yaml
create mode 100644 llvm/test/tools/llvm-tli-checker/x86_64-windows-msvc-tli-check.yaml
diff --git a/llvm/test/tools/llvm-tli-checker/aarch64-apple-darwin-tli-check.yaml b/llvm/test/tools/llvm-tli-checker/aarch64-apple-darwin-tli-check.yaml
new file mode 100644
index 00000000000000..655c5a768bf3f4
--- /dev/null
+++ b/llvm/test/tools/llvm-tli-checker/aarch64-apple-darwin-tli-check.yaml
@@ -0,0 +1,1168 @@
+# REQUIRES: aarch64-registered-target
+#
+## This produces a static object that matches expectations for aarch64 macOS.
+# RUN: yaml2obj %s -DTYPE=ET_REL -DLABEL=Symbols -DZDAPV=_ZdaPv -o=%t1
+# 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 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 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 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 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 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 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_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/aarch64-unknown-linux-gnu-tli-check.yaml b/llvm/test/tools/llvm-tli-checker/aarch64-unknown-linux-gnu-tli-check.yaml
new file mode 100644
index 00000000000000..ec849377f1e68a
--- /dev/null
+++ b/llvm/test/tools/llvm-tli-checker/aarch64-unknown-linux-gnu-tli-check.yaml
@@ -0,0 +1,1168 @@
+# REQUIRES: aarch64-registered-target
+#
+## This produces a static object that matches expectations for aarch64 Linux target.
+# RUN: yaml2obj %s -DTYPE=ET_REL -DLABEL=Symbols -DZDAPV=_ZdaPv -o=%t1
+# 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 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 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 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 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 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 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_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/aarch64-windows-msvc-tli-check.yaml b/llvm/test/tools/llvm-tli-checker/aarch64-windows-msvc-tli-check.yaml
new file mode 100644
index 00000000000000..f2ebe57c48e34c
--- /dev/null
+++ b/llvm/test/tools/llvm-tli-checker/aarch64-windows-msvc-tli-check.yaml
@@ -0,0 +1,1168 @@
+# REQUIRES: aarch64-registered-target
+#
+## This produces a static object that matches expectations for aarch64 Windows MSVC target.
+# RUN: yaml2obj %s -DTYPE=ET_REL -DLABEL=Symbols -DZDAPV=_ZdaPv -o=%t1
+# 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 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 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 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 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 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 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_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/i686-unknown-linux-gnu-tli-check.yaml b/llvm/test/tools/llvm-tli-checker/i686-unknown-linux-gnu-tli-check.yaml
new file mode 100644
index 00000000000000..ce2d347cfc0599
--- /dev/null
+++ b/llvm/test/tools/llvm-tli-checker/i686-unknown-linux-gnu-tli-check.yaml
@@ -0,0 +1,1168 @@
+# REQUIRES: x86-registered-target
+#
+## This produces a static object that matches expectations for i686 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
+#
+## 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=">>"
+#
+## --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=">>"
+#
+## --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=">>"
+#
+## --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=">>"
+#
+## 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
+#
+# 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 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_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/i686-windows-msvc-tli-check.yaml b/llvm/test/tools/llvm-tli-checker/i686-windows-msvc-tli-check.yaml
new file mode 100644
index 00000000000000..2626f38a62bee7
--- /dev/null
+++ b/llvm/test/tools/llvm-tli-checker/i686-windows-msvc-tli-check.yaml
@@ -0,0 +1,1168 @@
+# REQUIRES: x86-registered-target
+#
+## This produces a static object that matches expectations for i686 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
+#
+## 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=">>"
+#
+## --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=">>"
+#
+## --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=">>"
+#
+## --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=">>"
+#
+## 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
+#
+# 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 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_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/x86_64-apple-darwin-tli-check.yaml b/llvm/test/tools/llvm-tli-checker/x86_64-apple-darwin-tli-check.yaml
new file mode 100644
index 00000000000000..01b569dd02b3df
--- /dev/null
+++ b/llvm/test/tools/llvm-tli-checker/x86_64-apple-darwin-tli-check.yaml
@@ -0,0 +1,1168 @@
+# REQUIRES: x86-registered-target
+#
+## This produces a static object that matches expectations for x86_64 macOS.
+# RUN: yaml2obj %s -DTYPE=ET_REL -DLABEL=Symbols -DZDAPV=_ZdaPv -o=%t1
+# RUN: llvm-tli-checker --triple=x86_64-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=">>"
+#
+## --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=">>"
+#
+## --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=">>"
+#
+## --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=">>"
+#
+## 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
+#
+# 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 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_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/x86_64-unknown-linux-gnu-tli-check.yaml b/llvm/test/tools/llvm-tli-checker/x86_64-unknown-linux-gnu-tli-check.yaml
new file mode 100644
index 00000000000000..c2655fe5ba9e95
--- /dev/null
+++ b/llvm/test/tools/llvm-tli-checker/x86_64-unknown-linux-gnu-tli-check.yaml
@@ -0,0 +1,1168 @@
+# REQUIRES: x86-registered-target
+#
+## This produces a static object that matches expectations for x86_64 Linux target.
+# RUN: yaml2obj %s -DTYPE=ET_REL -DLABEL=Symbols -DZDAPV=_ZdaPv -o=%t1
+# RUN: llvm-tli-checker --triple=x86_64-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 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=">>"
+#
+## --report=discrepancy is the default, check we get the same output.
+# 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=">>"
+#
+## --report=summary should not print the details (checked by the
+## implicit-check-not strings).
+# 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=">>"
+#
+## --separate implies --report=summary.
+# 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=">>"
+#
+## Verify --dump-tli reports the full set.
+# 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
+#
+# 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 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_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/x86_64-windows-msvc-tli-check.yaml b/llvm/test/tools/llvm-tli-checker/x86_64-windows-msvc-tli-check.yaml
new file mode 100644
index 00000000000000..a46d7c1cb95176
--- /dev/null
+++ b/llvm/test/tools/llvm-tli-checker/x86_64-windows-msvc-tli-check.yaml
@@ -0,0 +1,1168 @@
+# REQUIRES: x86-registered-target
+#
+## This produces a static object that matches expectations for x86_64 Windows MSVC target.
+# RUN: yaml2obj %s -DTYPE=ET_REL -DLABEL=Symbols -DZDAPV=_ZdaPv -o=%t1
+# RUN: llvm-tli-checker --triple=x86_64-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 x86_64-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 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=">>"
+#
+## --report=summary should not print the details (checked by the
+## implicit-check-not strings).
+# 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=">>"
+#
+## --separate implies --report=summary.
+# 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=">>"
+#
+## Verify --dump-tli reports the full set.
+# 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
+#
+# 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 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_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
+...
More information about the llvm-commits
mailing list