LLVM-LIPO(1)

πŸ“¦ version 23.1.3, in centos-stream 9

πŸ’… LLVM-LIPO(1) β€” hey bestie, welcome to the lipo page πŸ’–

okay so real quick: this is llvm-lipo, one of the LLVM tools, and honestly? she's that girl for universal binaries. we're gonna go through the whole thing together, no skips, no cap ✨


✨ NAME ✨

llvm-lipo β€” the LLVM tool for manipulating universal binaries πŸ¦‹

🌸 SYNOPSIS 🌸

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

πŸ’œ DESCRIPTION πŸ’œ

so basically llvm-lipo can do three iconic things, and she does them all flawlessly:

  • create universal binaries out of Mach-O files πŸ”₯
  • extract the regular object files out of a universal binary (get her out of the group chat energy) πŸ’…
  • display architecture info about both universal and regular files πŸ‘‘

πŸŽ€ COMMANDS πŸŽ€

llvm-lipo supports the following commands, and heads up bestie β€” they are mutually exclusive, so pick one, you cannot collect them all πŸ™ˆ

  • -help, -h β€” displays usage information and exits. little shortcut, big slay.
  • -version β€” displays the version of this program. that's it, that's the vibe check ⭐
  • -verify_arch <architecture 1> [<architecture 2> ...] β€” takes a single input file and verifies that the architectures you specified are actually present in the file. if they are, it exits with a status of 0. if not? exits with a status of 1 😭 so you know immediately.
  • -archs β€” takes a single input file and displays the architectures present in it. each architecture is separated by a single whitespace. unknown architectures get shown as unknown(CPUtype,CPUsubtype) 🧚
  • -info β€” takes at least one input file and displays the description of each one. these descriptions include the filename and the architecture types, separated by whitespace. universal binaries get grouped together first, then the thin files follow. and the formats look exactly like this, keep them verbatim boo:
Architectures in the fat file: <filename> are: <architectures>
Non-fat file: <filename> is architecture: <architecture>
  • -thin β€” takes a single universal binary input file, plus the thin flag followed by an architecture type. it requires the output flag to be specified, and it outputs a thin binary of the specified architecture. diet culture but make it compiler tooling ✨
  • -create β€” takes at least one input file and requires the output flag to be specified. outputs a universal binary that combines all the input files together. friendship bracelet but for architectures 🫢
  • -replace β€” takes a single universal binary input file and requires the output flag to be specified. the replace flag is followed by an architecture type, and then a thin input file. outputs a universal binary where the specified architecture slice in the universal binary input got replaced with the contents of that thin input file. glow-up via transplant πŸ’–
  • -segalign β€” this is an additional flag, so you can specify it alongside create and replace. the segalign flag is followed by an architecture type, and then an alignment. that alignment is a hexadecimal number that is a power of 2 πŸ”’ outputs a file in which the slice with the specified architecture has the specified alignment. precision queen πŸ‘‘

πŸ¦‹ BUGS πŸ¦‹

found something cursed? to report bugs, please visit <https://github.com/llvm/llvm-project/issues/>. don't suffer in silence bestie, tell the maintainers πŸ’€

🌈 AUTHOR 🌈

maintained by the LLVM Team (https://llvm.org/). literal icons, honestly πŸ‘‘

2003-2026, LLVM Project β€” respect the legacy, periodt πŸ’œ


okay that's the whole page, you ate that πŸ“ this was LLVM-LIPO(1) from the LLVM manual, page 23, dated 2026-10-06 β€” go forth and lipo responsibly, mwah πŸ’‹πŸŒΈ

πŸ“¦ where this page comes from