LLVM-LIPO(1)

πŸ’… LLVM-LIPO(1) β€” the llvm-lipo page, bestie edition πŸŽ€

okay so welcome to llvm-lipo, aka the LLVM tool for manipulating universal binaries. yes that's the whole NAME section, we're moving, keep up πŸƒβ€β™€οΈπŸ’¨


✨ SYNOPSIS ✨

llvm-lipo [filenames...] [options]

πŸ¦‹ DESCRIPTION πŸ¦‹

so llvm-lipo is that girl. she can do three iconic things:

  • create universal binaries out of Mach-O files πŸ”₯
  • extract regular object files from universal binaries 🫢
  • display architecture information about both universal and regular files πŸ‘‘

like she does it all, no cap.


🌸 COMMANDS 🌸

llvm-lipo supports the following mutually exclusive commands (pick one, she's not doing a combo meal πŸ’…):

  • -help, -h β€” display usage information and exit. your girl is helpful like that ✨
  • -version β€” display the version of this program. brand identity check πŸŽ€
  • -verify_arch <architecture 1> [<architecture 2> ...] β€” take a single input file and verify the specified architectures are present in the file. if so then exit with a status of 0, else exit with a status of 1. literally a vibe check for architectures πŸ’–
  • -archs β€” take a single input file and display the architectures present in the file. each architecture is separated by a single whitespace. unknown architectures are displayed as unknown(CPUtype,CPUsubtype). she will absolutely read them for filth (nicely) πŸ¦‹
  • -info β€” take at least one input file and display the descriptions of each file. the descriptions include the filename and architecture types separated by whitespace. universal binaries are grouped together first, followed by thin files. the output looks like:
Architectures in the fat file: <filename> are: <architectures>
Non-fat file: <filename> is architecture: <architecture>

ngl this one is so satisfying to run 😌

  • -thin β€” take a single universal binary input file and the thin flag followed by an architecture type. require the output flag to be specified, and output a thin binary of the specified architecture. snatching one arch out of the group chat 🫢
  • -create β€” take at least one input file and require the output flag to be specified. output a universal binary combining the input files. assembling the squad πŸ‘―β€β™€οΈ
  • -replace β€” take a single universal binary input file and require the output flag to be specified. the replace flag is followed by an architecture type, and a thin input file. output a universal binary with the specified architecture slice in the universal binary input replaced with the contents of the thin input file. glow-up by substitution πŸ’…
  • -segalign β€” additional flag that can be specified with create and replace. the segalign flag is followed by an architecture type, and an alignment. the alignment is a hexadecimal number that is a power of 2. output a file in which the slice with the specified architecture has the specified alignment. hex math queen 🧚
🚨 real talk: these commands are mutually exclusive, so don't try to stack them and expect main character energy. one command at a time, periodt.

πŸ’€ BUGS πŸ’€

to report bugs, please visit https://github.com/llvm/llvm-project/issues/.

(not me sending you straight to the issue tracker, but like, that's literally where the bugs live 😭)

πŸ‘‘ Author πŸ‘‘

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

2003-2026, LLVM Project


and that's the page!! tysm for reading, bestie, you ate that πŸ“βœ¨

sign-off time: this masterpiece dropped as part of LLVM, version 15, dated 2026-09-09 β€” screenshot it, frame it, put it on the fridge πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from