LLVM-LIPO(1)

πŸ“¦
version 16.0.6 Β· 3 versions
, in ubuntu noble

πŸŽ€ NAME πŸŽ€

bestie, meet llvm-lipo β€” the LLVM tool for manipulating universal binaries. yes, that's a real manual page name, we're doing this. πŸ’…


✨ SYNOPSIS ✨

llvm-lipo [filenames…] [options]

πŸ’– DESCRIPTION πŸ’–

okay so llvm-lipo is giving main character energy in three whole ways:

  • it can create universal binaries from Mach-O files
  • it can extract regular object files from universal binaries
  • it can display architecture information about both universal and regular files

that's the whole vibe. she contains multitudes. πŸ¦‹


πŸ‘‘ COMMANDS πŸ‘‘

heads up bestie: llvm-lipo supports these commands and they are mutually exclusive β€” you pick one, you don't stack them. one at a time, queen. βœ‹
  • -help, -h β€” display usage information and exit. the classic "wait what does this do" move. πŸ™ˆ
  • -version β€” display the version of this program. show me the numbers. ⭐
  • -verify_arch <architecture 1> [<architecture 2> ...] β€” take a single input file and verify the specified architectures are present in the file. if they are, exit with a status of 0; if not, exit with a status of 1. yes/no, slay/fail, no in between. 🫢
  • -archs β€” take a single input file and display the architectures present in the file. each architecture is separated by a single whitespace. unknown architectures get displayed as unknown(CPUtype,CPUsubtype). mystery arch? she still names it. πŸ”₯
  • -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 get grouped together first, followed by thin files. the output looks like this:
Architectures in the fat file: <filename> are: <architectures>
Non-fat file: <filename> is architecture: <architecture>
  • -thin β€” take 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. one arch, zero extra weight. 🧚
  • -create β€” take at least one input file and require the output flag to be specified. outputs a universal binary combining the input files. frankenstein but make it ✨intentional✨.
  • -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. outputs a universal binary with the specified architecture slice in the universal binary input replaced with the contents of the thin input file. out with the old slice, in with the new. πŸ’…
  • -segalign β€” an 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. outputs a file in which the slice with the specified architecture has the specified alignment. alignment queen, get your hex right. πŸŽ€

πŸ’€ BUGS πŸ’€

to report bugs, please visit <https://github.com/llvm/llvm-project/issues/>. they wanna hear it, fr fr. don't suffer in silence bestie.


🌸 AUTHOR 🌸

maintained by the LLVM Team (<https://llvm.org/>). legends, honestly. πŸ‘‘


2003-2024, LLVM Project


that's the whole page, no cap. this was LLVM-LIPO(1), page 15, dated 2024-04-14, straight from the LLVM source β€” go forth and manipulate those universal binaries, you absolute icon. πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from