LLVM-TLI-CHECKER(1)
π llvm-tli-checker β the TargetLibraryInfo vs library checker, bestie edition
okay so this is llvm-tli-checker(1), straight out of the LLVM manual fam β it's the vibe check between what TLI thinks exists and what your library actually exports, and honestly it's giving main character energy π«Ά
β¨ NAME β¨
llvm-tli-checker β TargetLibraryInfo vs library checker. that's it, that's the whole mood π
πΈ SYNOPSIS πΈ
llvm-tli-checker [options] [library-file...]
π¦ DESCRIPTION π¦
So here's the tea, bestie: llvm-tli-checker takes TargetLibraryInfo's whole opinion about whether library functions are available, and holds it up next to the actual set of functions exported by the library files you handed it. Then it reports every single disagreement between TLI's opinion and whether the function is actually present. like, no cap, it's a full-on receipts situation π
This is highkey useful for vendors β it's literally there so you can make sure the TLI for your target is correct, and so the compiler doesn't go and "optimize" some code sequence into a library call that is not actually available. that would be so embarrassing for everyone involved π
π EXAMPLE π
$ llvm-tli-checker --triple x86_64-scei-ps4 example.so
TLI knows 466 symbols, 235 available for 'x86_64-scei-ps4'
Looking for symbols in 'example.so'
Found 235 global function symbols in 'example.so'
Found a grand total of 235 library symbols
<< TLI yes SDK no: '_ZdaPv' aka operator delete[](void*)
>> TLI no SDK yes: '_ZdaPvj' aka operator delete[](void*, unsigned int)
<< Total TLI yes SDK no: 1
>> Total TLI no SDK yes: 1
== Total TLI yes SDK yes: 234
FAIL: LLVM TLI doesn't match SDK libraries.
and yes the FAIL at the end is real β she's dramatic but she's honest π
β OPTIONS β
--dump-tliβ prints"available"/"not available"for every single library function, according to TargetLibraryInfo's info for the triple you specified, then dips out. lowkey important: this option does not read any input files. none. zero. it's not even looking at them π--help,-hβ prints a summary of the command line options and exits. the classic, the icon, the legend π--libdir=<directory>β a base directory that gets prepended to each library file path. so handy when you've got a bunch of library files all chilling in the same directory, or when a whole list of input filenames is being kept in a response file. it's giving organized queen π--report=<level>β how much info you want reported.<level>can besummary,discrepancy, orfull:summarygives you only the count of matching and mis-matching symbolsdiscrepancylists the mis-matching symbolsfulllists all symbols known to TLI, matching or mis-matching
the default is discrepancy. choose your fighter bestie βοΈ
--separateβ reads and reports a summary for each library file separately. super useful for spotting library files that don't contribute anything TLI knows about. heads up: this implies--report=summary(and yes, you can override that) π--triple=<triple>β the<triple>to use when initializing TargetLibraryInfo. it's the target's whole identity, respect it π@<FILE>β reads command-line options and/or library names from the response file<FILE>. iykyk, response files ate π
π₯ EXIT STATUS π₯
okay so llvm-tli-checker returns 0 even if there are mismatches β yes, even then, she's chill like that π. But she returns a non-zero exit code if there's an unrecognized option, or if no input files are provided. so bring your files, bestie, or it's a wrap π
π AUTHOR π
Maintained by the LLVM Team (https://llvm.org/). absolute icons, no notes π«Ά
π COPYRIGHT π
2003-2025, LLVM Project
and that's the whole page, bestie β version 19, dated 2025-01-17, delivered with love from the LLVM manual β¨ go forth and check those symbols, periodt π π¦
π¦ where this page comes from
- opensuse-leap 16.0: llvm19 19.1.7-160000.2.2 Β· Apache-2.0 WITH LLVM-exception AND NCSA
- opensuse-leap 16.0: llvm19 19.1.7-160000.2.2 Β· Apache-2.0 WITH LLVM-exception AND NCSA
- opensuse-leap 16.0: llvm19 19.1.7-160000.2.2 Β· Apache-2.0 WITH LLVM-exception AND NCSA
- opensuse-leap 16.0: llvm19 19.1.7-160000.2.2 Β· Apache-2.0 WITH LLVM-exception AND NCSA
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms