LLVM-LIPO(1)

πŸ“¦
version 12.0.1 Β· 4 versions
, in fedora 43, fedora 44

πŸ’– LLVM-LIPO(1) β€” the LLVM girlie's guide to universal binaries πŸ’–

okay so bestie, this is llvm-lipo, part of the LLVM family, and it lives in section 1 of the manual. Think of it as the tool that handles universal binaries β€” the ones that are secretly a whole squad of architectures vibing in one file. πŸ¦‹


✨ NAME ✨

llvm-lipo β€” the LLVM tool for manipulating universal binaries. no cap. πŸ’…


🌸 SYNOPSIS 🌸

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

πŸŽ€ DESCRIPTION πŸŽ€

so like, llvm-lipo can do three main character things:

  • create universal binaries out of Mach-O files
  • extract regular object files from universal binaries
  • display architecture info about both universal and regular files

it's giving multitasker. πŸ‘‘


πŸ’œ COMMANDS πŸ’œ

llvm-lipo supports these mutually exclusive commands β€” meaning pick one, bestie, they're not a group project:

  • -help, -h β€” show the usage info and dip out. bye! πŸ‘‹
  • -version β€” prints the version of this program. casual.
  • -verify_arch <architecture 1> [<architecture 2> ...] β€” takes a single input file and verifies that the architectures you named are actually present in it. If they are, it exits with a status of 0. If not? status 1. it's a vibe check fr fr. βœ…
  • -archs β€” takes a single input file and displays the architectures present in it. Each architecture is separated by a single whitespace. Unknown architectures get displayed as unknown(CPUtype,CPUsubtype). mysterious. πŸ™ˆ
  • -info β€” takes at least one input file and displays the descriptions of each file. Those descriptions include the filename and architecture types separated by whitespace. Universal binaries get grouped together first, then thin files come after. The output looks 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. It requires the output flag to be specified, and it outputs a thin binary of the architecture you picked. slimming down, periodt. ✨
  • -create β€” takes at least one input file and requires the output flag to be specified. Outputs a universal binary combining all the input files together. friendship bracelet energy. 🫢
  • -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. It outputs a universal binary where the specified architecture slice in the universal binary input gets replaced with the contents of the thin input file. out with the old, in with the new. πŸ’…
  • -segalign β€” an additional flag that can be specified alongside create and replace. The segalign flag is followed by an architecture type and an alignment. That alignment is a hexadecimal number that has to be a power of 2. It outputs a file where the slice with the specified architecture has the specified alignment. fancy, aligned, iconic. πŸ”₯

πŸ’€ BUGS πŸ’€

to report bugs, please visit <https://bugs.llvm.org/>. not me manifesting a bug-free life but ok, they want the reports. 😭


πŸ‘‘ AUTHOR πŸ‘‘

maintained by the LLVM Team (<https://llvm.org/>). the actual icons.


2003-2024, LLVM Project


and that's the whole page, bestie β€” this one's from LLVM, version 12, dated 2024-07-18, and it goes by LLVM-LIPO(1). go forth and manipulate those universal binaries, you absolute legend. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from