1llvm-strip - object stripping tool 2================================== 3 4.. program:: llvm-strip 5 6SYNOPSIS 7-------- 8 9:program:`llvm-strip` [*options*] *inputs...* 10 11DESCRIPTION 12----------- 13 14:program:`llvm-strip` is a tool to strip sections and symbols from object files. 15If no other stripping or remove options are specified, :option:`--strip-all` 16will be enabled by default. 17 18The input files are modified in-place. If "-" is specified for the input file, 19the input is read from the program's standard input stream. 20 21If the input is an archive, any requested operations will be applied to each 22archive member individually. 23 24The tool is still in active development, but in most scenarios it works as a 25drop-in replacement for GNU's :program:`strip`. 26 27GENERIC AND CROSS-PLATFORM OPTIONS 28---------------------------------- 29 30The following options are either agnostic of the file format, or apply to 31multiple file formats. 32 33.. option:: --disable-deterministic-archives, -U 34 35 Use real values for UIDs, GIDs and timestamps when updating archive member 36 headers. 37 38.. option:: --discard-all, -x 39 40 Remove most local symbols from the output. Different file formats may limit 41 this to a subset of the local symbols. For example, file and section symbols in 42 ELF objects will not be discarded. 43 44.. option:: --enable-deterministic-archives, -D 45 46 Enable deterministic mode when stripping archives, i.e. use 0 for archive member 47 header UIDs, GIDs and timestamp fields. On by default. 48 49.. option:: --help, -h 50 51 Print a summary of command line options. 52 53.. option:: --no-strip-all 54 55 Disable --strip-all. 56 57.. option:: -o <file> 58 59 Write output to <file>. Multiple input files cannot be used in combination 60 with -o. 61 62.. option:: --regex 63 64 If specified, symbol and section names specified by other switches are treated 65 as extended POSIX regular expression patterns. 66 67.. option:: --remove-section <section>, -R 68 69 Remove the specified section from the output. Can be specified multiple times 70 to remove multiple sections simultaneously. 71 72.. option:: --strip-all-gnu 73 74 Remove all symbols, debug sections and relocations from the output. This option 75 is equivalent to GNU :program:`strip`'s ``--strip-all`` switch. 76 77.. option:: --strip-all, -S 78 79 For ELF objects, remove from the output all symbols and non-alloc sections not 80 within segments, except for .gnu.warning sections and the section name table. 81 82 For COFF objects, remove all symbols, debug sections, and relocations from the 83 output. 84 85.. option:: --strip-debug, -g 86 87 Remove all debug sections. 88 89.. option:: --strip-sections 90 91 Remove all section headers and all sections not in segments. 92 93.. option:: --strip-symbol <symbol>, -N 94 95 Remove all symbols named ``<symbol>`` from the output. Can be specified 96 multiple times to remove multiple symbols. 97 98.. option:: --strip-unneeded 99 100 Remove from the output all local or undefined symbols that are not required by 101 relocations. Also remove all debug sections. 102 103.. option:: --version, -V 104 105 Display the version of this program. 106 107COFF-SPECIFIC OPTIONS 108--------------------- 109 110The following options are implemented only for COFF objects. If used with other 111objects, :program:`llvm-strip` will either emit an error or silently ignore 112them. 113 114.. option:: --only-keep-debug 115 116 Remove the contents of non-debug sections from the output, but keep the section 117 headers. 118 119ELF-SPECIFIC OPTIONS 120-------------------- 121 122The following options are implemented only for ELF objects. If used with other 123objects, :program:`llvm-strip` will either emit an error or silently ignore 124them. 125 126.. option:: --allow-broken-links 127 128 Allow llvm-strip to remove sections even if it would leave invalid section 129 references. Any invalid sh_link fields will be set to zero. 130 131.. option:: --discard-locals, -X 132 133 Remove local symbols starting with ".L" from the output. 134 135.. option:: --keep-file-symbols 136 137 Keep symbols of type `STT_FILE`, even if they would otherwise be stripped. 138 139.. option:: --keep-section <section> 140 141 When removing sections from the output, do not remove sections named 142 ``<section>``. Can be specified multiple times to keep multiple sections. 143 144.. option:: --keep-symbol <symbol>, -K 145 146 Do not remove symbols named ``<symbol>``. Can be specified multiple times to 147 keep multiple symbols. 148 149.. option:: --preserve-dates, -p 150 151 Preserve access and modification timestamps. 152 153EXIT STATUS 154----------- 155 156:program:`llvm-strip` exits with a non-zero exit code if there is an error. 157Otherwise, it exits with code 0. 158 159BUGS 160---- 161 162To report bugs, please visit <http://llvm.org/bugs/>. 163 164SEE ALSO 165-------- 166 167:manpage:`llvm-objcopy(1)` 168