LLVM-TLI-CHECKER(1)
π LLVM-TLI-CHECKER(1) β the LLVM manual, bestie edition β¨
okay so picture this: it's llvm-tli-checker, and it's literally the vibe check between what TargetLibraryInfo thinks is out there and what your library files actually ship. π That's the whole manual name folded in right there β we're in the LLVM fam, and this page is your group chat briefing. π«Ά
β¨ NAME β¨
llvm-tli-checker β the TargetLibraryInfo vs library checker, aka the little snitch that catches TLI when it's lying π
πΈ SYNOPSIS πΈ
llvm-tli-checker [options] [library-file...]
π¦ DESCRIPTION π¦
okay so here's the tea π: llvm-tli-checker takes TargetLibraryInfo's opinion about whether library functions are available and compares it against the actual set of functions exported by the library files you specified. Then it reports, very loudly, any disagreements between TLI's opinion and whether the function is actually there. No cap. π
This is lowkey a vendor thing β it's primarily useful for vendors to make sure the TLI for their target is correct, so the compiler doesn't "optimize" some code sequence into a library call that is genuinely not actually available. Imagine the compiler manifesting a function that doesn't exist. Not on our watch. π
π₯ 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.
it's giving receipts. the << lines are TLI saying "yes bestie it's available" while the SDK says nope, and the >> lines are the reverse. iconic little arrows, honestly. π§
π OPTIONS π
--dump-tliβ prints"available"/"not available"for each library function, according toTargetLibraryInfo's information for the specified triple, and then it exits. heads up: this option does not read any input files. it just dumps and dips. π--help,-hβ prints a summary of command line options and exits. the classic. π--libdir=<directory>β a base directory that gets prepended to each library file path. this is handy (highkey) when there are a number of library files all in the same directory, or when a list of input filenames are kept in a response file. π--report=<level>β the amount of information to report.<level>can besummary,discrepancy, orfull. asummaryreport gives only the count of matching and mis-matching symbols;discrepancylists the mis-matching symbols; andfulllists all symbols known to TLI, matching or mis-matching. the default isdiscrepancy. pick your fighter β¨--separateβ reads and reports a summary for each library file separately. this can be useful to identify library files that don't contribute anything that TLI knows about. implies--report=summary(can be overridden). so it's a default, not a cage π--triple=<triple>β the triple to use for initializingTargetLibraryInfo. manifest your target π@<FILE>β read command-line options and/or library names from response file<FILE>. say less, the file speaks for you π«Ά
β EXIT STATUS β
llvm-tli-checker returns 0 even if there are mismatches. yes, even then. it's very chill about that. π it returns a non-zero exit code if there is an unrecognized option, or if no input files are provided. so it only gets mad about vibes it can't parse or an empty hand-off. π
π Author π
Maintained by the LLVM Team (https://llvm.org/).
π Copyright π
2003-2026, LLVM Project
and that's the whole page, bestie β shoutout to the source/version 15 and the date 2026-09-09 from the LLVM-TLI-CHECKER(1) footer, signing off with a periodt. ππ¦β¨
π¦ where this page comes from
- ubuntu stonking: llvm-18 1:18.1.8-20ubuntu11 Β· APACHE-2-LLVM-EXCEPTIONS
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms