LLVM-TLI-CHECKER(1)

πŸ’… NAME πŸ’…

okay so bestie, welcome to llvm-tli-checker β€” it's literally the TargetLibraryInfo vs library checker ✨


🌸 SYNOPSIS 🌸

llvm-tli-checker [options] [library-file...]

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the vibe: llvm-tli-checker takes TargetLibraryInfo's whole opinion about which library functions are available, and holds it up against the actual set of functions that the library files you named actually export. then it reports every single disagreement between what TLI thinks and whether the function is really actually there πŸ‘€

this is highkey for vendors, ngl β€” it's how you make sure the TLI for your target is correct, so the compiler doesn't go "optimize" some innocent little code sequence into a library call that does not exist. because that would be a bad time 😭 periodt.


πŸŽ€ 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.

✨ OPTIONS ✨

  • --dump-tli β€” prints "available"/"not available" for every single library function, going off what TargetLibraryInfo knows for the triple you specified, then dips out (exits). 🫢 and no, this one does not read any input files, bestie.
  • --help, -h β€” prints a summary of the command line options and exits. the classic. the icon. πŸ’…
  • --libdir=<directory> β€” a base directory that gets prepended to every library file path. super handy when you've got a whole bunch of library files all chilling in the same directory, or when a list of input filenames is being kept in a response file. πŸ—‚οΈ
  • --report=<level> β€” how much tea gets spilled. <level> can be summary, discrepancy, or full. a summary report gives you only the count of matching and mis-matching symbols; discrepancy lists the mis-matching symbols; and full lists all the symbols known to TLI, matching or mis-matching. the default is discrepancy. πŸ“Š
  • --separate β€” reads and reports a summary for each library file separately. this one's cute when you wanna identify library files that don't contribute anything TLI even knows about. it implies --report=summary (and yes, that can be overridden). 🧚
  • --triple=<triple> β€” the triple used for initializing TargetLibraryInfo. that's it, that's the whole job. 🌈
  • @<FILE> β€” reads command-line options and/or library names from the response file <FILE>. πŸ’Œ

πŸ’€ EXIT STATUS πŸ’€

llvm-tli-checker returns 0 even if there are mismatches β€” yeah, I know, it's giving unbothered. πŸ™ˆ but it will return a non-zero exit code if there's an unrecognized option, or if no input files are provided.


πŸ‘‘ Author πŸ‘‘

maintained by the LLVM Team (https://llvm.org/). slay. 🫢


2003-2026, LLVM Project


and that's the whole page, bestie πŸ’– this was LLVM-TLI-CHECKER from the LLVM crew, dated 2026-05-15 β€” mwah, go check those libraries πŸ”₯πŸŽ€

πŸ“¦ where this page comes from