xref: /llvm-project/llvm/docs/CommandGuide/llvm-lipo.rst (revision bbce75e352be0637305a1b59ac5eca7175bceece)
185ea2de4SAlexander Shaposhnikovllvm-lipo - LLVM tool for manipulating universal binaries
285ea2de4SAlexander Shaposhnikov=========================================================
385ea2de4SAlexander Shaposhnikov
4a056684cSJames Henderson.. program:: llvm-lipo
5a056684cSJames Henderson
685ea2de4SAlexander ShaposhnikovSYNOPSIS
785ea2de4SAlexander Shaposhnikov--------
885ea2de4SAlexander Shaposhnikov
985ea2de4SAlexander Shaposhnikov:program:`llvm-lipo` [*filenames...*] [*options*]
1085ea2de4SAlexander Shaposhnikov
1185ea2de4SAlexander ShaposhnikovDESCRIPTION
1285ea2de4SAlexander Shaposhnikov-----------
1385ea2de4SAlexander Shaposhnikov:program:`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.
1485ea2de4SAlexander Shaposhnikov
1585ea2de4SAlexander ShaposhnikovCOMMANDS
1685ea2de4SAlexander Shaposhnikov--------
1785ea2de4SAlexander Shaposhnikov:program:`llvm-lipo` supports the following mutually exclusive commands:
1885ea2de4SAlexander Shaposhnikov
1985ea2de4SAlexander Shaposhnikov.. option:: -help, -h
2085ea2de4SAlexander Shaposhnikov
2185ea2de4SAlexander Shaposhnikov  Display usage information and exit.
2285ea2de4SAlexander Shaposhnikov
2385ea2de4SAlexander Shaposhnikov.. option:: -version
2485ea2de4SAlexander Shaposhnikov
2585ea2de4SAlexander Shaposhnikov  Display the version of this program.
2685ea2de4SAlexander Shaposhnikov
2785ea2de4SAlexander Shaposhnikov.. option:: -verify_arch  <architecture 1> [<architecture 2> ...]
2885ea2de4SAlexander Shaposhnikov
2985ea2de4SAlexander Shaposhnikov  Take a single input file and verify the specified architectures are present in the file.
3085ea2de4SAlexander Shaposhnikov  If so then exit with a status of 0 else exit with a status of 1.
3185ea2de4SAlexander Shaposhnikov
328f4973f5SShoaib Meenai.. option:: -archs
338f4973f5SShoaib Meenai
348f4973f5SShoaib Meenai  Take a single input file and display the architectures present in the file.
358f4973f5SShoaib Meenai  Each architecture is separated by a single whitespace.
368f4973f5SShoaib Meenai  Unknown architectures are displayed as unknown(CPUtype,CPUsubtype).
37a87f856fSAnusha Basana
38a87f856fSAnusha Basana.. option:: -info
39a87f856fSAnusha Basana
40a87f856fSAnusha Basana  Take at least one input file and display the descriptions of each file.
41a87f856fSAnusha Basana  The descriptions include the filename and architecture types separated by whitespace.
42a87f856fSAnusha Basana  Universal binaries are grouped together first, followed by thin files.
43a87f856fSAnusha Basana  Architectures in the fat file: <filename> are: <architectures>
44a87f856fSAnusha Basana  Non-fat file: <filename> is architecture: <architecture>
45a87f856fSAnusha Basana
46a87f856fSAnusha Basana.. option:: -thin
47a87f856fSAnusha Basana
48a87f856fSAnusha Basana  Take a single universal binary input file and the thin flag followed by an architecture type.
49a87f856fSAnusha Basana  Require the output flag to be specified, and output a thin binary of the specified architecture.
50a87f856fSAnusha Basana
51a87f856fSAnusha Basana.. option:: -create
52a87f856fSAnusha Basana
53a87f856fSAnusha Basana  Take at least one input file and require the output flag to be specified.
54a87f856fSAnusha Basana  Output a universal binary combining the input files.
55a87f856fSAnusha Basana
56a87f856fSAnusha Basana.. option:: -replace
57a87f856fSAnusha Basana
58a87f856fSAnusha Basana  Take a single universal binary input file and require the output flag to be specified.
59a87f856fSAnusha Basana  The replace flag is followed by an architecture type, and a thin input file.
60a87f856fSAnusha Basana  Output a universal binary with the specified architecture slice in the
61a87f856fSAnusha Basana  universal binary input replaced with the contents of the thin input file.
62a87f856fSAnusha Basana
63a87f856fSAnusha Basana.. option:: -segalign
64a87f856fSAnusha Basana
65a87f856fSAnusha Basana  Additional flag that can be specified with create and replace.
66a87f856fSAnusha Basana  The segalign flag is followed by an architecture type, and an alignment.
67a87f856fSAnusha Basana  The alignment is a hexadecimal number that is a power of 2.
68a87f856fSAnusha Basana  Output a file in which the slice with the specified architecture has the specified alignment.
698f4973f5SShoaib Meenai
7085ea2de4SAlexander ShaposhnikovBUGS
7185ea2de4SAlexander Shaposhnikov----
7285ea2de4SAlexander Shaposhnikov
73*bbce75e3SChuanqi XuTo report bugs, please visit <https://github.com/llvm/llvm-project/issues/>.
74