LLVM-LIPO(1)
π LLVM-LIPO(1) β bestie's guide to universal binaries β¨
okay so hi, welcome to the llvm-lipo page, section 1 of the LLVM manual π
π NAME
llvm-lipo β the LLVM tool for manipulating universal binaries, and yes she's iconic for it π
π¦ SYNOPSIS
llvm-lipo [filenames...] [options]
β¨ DESCRIPTION
so basically llvm-lipo does three (3) main character things π
- she can create universal binaries out of Mach-O files
- she can extract regular object files out of universal binaries
- she can display architecture information about both universal files and regular files
no cap, that's the whole vibe π«Ά
π COMMANDS
llvm-lipo supports these commands, and heads up bestie: they're mutually exclusive β it's giving "pick one, you can't have all of them" π
-help,-hβ shows you the usage info and then dips. that's it, that's the whole job β¨-versionβ displays the version of this program. slay π-verify_arch<architecture 1> [<architecture 2> ...] β takes a single input file and checks that the architectures you named are actually present in the file. if they are, she exits with a status of0. if they're not? exit status1. vibe check failed, sorry bestie π-archsβ takes a single input file and displays the architectures present in the file. each architecture is separated by a single whitespace. any unknown architectures get displayed asunknown(CPUtype,CPUsubtype). mystery arch, we don't know her π-infoβ takes at least one input file and displays the descriptions of each file. the descriptions include the filename and architecture types, separated by whitespace. universal binaries get grouped together first, and thin files come after. the formats look like this:
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. requires the output flag to be specified, and outputs a thin binary of the architecture you specified. one slice only, she's being selective βοΈ-createβ takes at least one input file and requires the output flag to be specified. outputs a universal binary that combines the input files. it's giving friendship bracelet, all the archs together π«Ά-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 a thin input file. outputs a universal binary where the specified architecture slice in the universal binary input gets replaced with the contents of the thin input file. glow-up, but just for one slice β¨-segalignβ an additional flag that can be specified alongsidecreateandreplace. the segalign flag is followed by an architecture type, and an alignment. the 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. alignment queen π
π BUGS
found a bug? to report bugs, please visit <https://github.com/llvm/llvm-project/issues/>. tell them everything, they wanna know π₯
π Author
Maintained by the LLVM Team (https://llvm.org/).
πΈ Copyright
2003-2026, LLVM Project
and that's the page bestie!! this was the LLVM-LIPO(1) page from the LLVM manual, dated 2026-07-16, and the footer said 22 for the source/version β so go forth and lipo your binaries, you absolute legend πβ¨π
π¦ where this page comes from
- fedora 44: llvm 22.1.8-4.fc44 Β· Apache-2.0 WITH LLVM-exception OR NCSA
- fedora 44: llvm 22.1.8-4.fc44 Β· Apache-2.0 WITH LLVM-exception OR NCSA
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms