LLVM-LIPO(1)

πŸ’… llvm-lipo β€” LLVM-LIPO(1), the universal-binaries bestie πŸ’–

Okay so bestie, welcome to the LLVM-LIPO(1) manual page from LLVM. This is llvm-lipo, and it is literally the LLVM tool for manipulating universal binaries. Let’s get into it, no cap ✨


πŸŽ€ NAME πŸŽ€

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


🌸 SYNOPSIS 🌸

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

πŸ’œ DESCRIPTION πŸ’œ

llvm-lipo can create universal binaries from Mach-O files, extract regular object files from universal binaries, and display architecture information about both universal and regular files. That’s the whole main-character job, and it ate πŸ”₯


πŸ¦‹ COMMANDS πŸ¦‹ β€” pick exactly one, bestie, they’re mutually exclusive πŸ’…

llvm-lipo supports the following mutually exclusive commands:

  • -help, -h β€” display usage information and exit. Short and sweet, periodt ✨
  • -version β€” display the version of this program. Gotta know what you’re running, bestie πŸ’–
  • -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. It’s giving vibe check πŸ”
  • -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). Slay, now we know what’s inside 🫢
  • -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 exact info lines are:
Architectures in the fat file: <filename> are: <architectures>
Non-fat file: <filename> is architecture: <architecture>
  • -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. Thin it out, iconically 🧚
  • -create β€” take at least one input file and require the output flag to be specified. Output a universal binary combining the input files. Build the squad into one file πŸ‘‘
  • -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. Swapping one slice, main character energy πŸ’«
  • -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. Alignment but make it hexadecimal and power-of-2 only, iykyk πŸ’…
Bestie reminder: these commands are mutually exclusive. Pick one command at a time, okay? No mixing and matching πŸ™ˆ

πŸ’€ BUGS πŸ’€

To report bugs, please visit https://github.com/llvm/llvm-project/issues/. The LLVM team wants the receipts, fr fr πŸ“


🌈 Author 🌈

Maintained by the LLVM Team (https://llvm.org/). Shoutout to the maintainers, they’re iconic 🫢


2003-2026, LLVM Project β€” yes, the copyright line stays exactly like that, bestie πŸ’–


That’s the whole vibe, bestie β€” this page is from LLVM, dated 2026-05-15, page 21, and it’s LLVM-LIPO(1) signing off πŸ’…βœ¨

πŸ“¦ where this page comes from