1LLVM-NM(1)                           LLVM                           LLVM-NM(1)
2
3
4

NAME

6       llvm-nm - list LLVM bitcode and object file's symbol table
7

SYNOPSIS

9       llvm-nm [options] [filenames...]
10

DESCRIPTION

12       The llvm-nm utility lists the names of symbols from LLVM bitcode files,
13       object files, and archives. Each symbol is listed along with some  sim‐
14       ple  information  about  its  provenance.  If no filename is specified,
15       a.out is used as the input. If - is used as a  filename,  llvm-nm  will
16       read a file from its standard input stream.
17
18       llvm-nm's  default  output format is the traditional BSD nm output for‐
19       mat. Each such output record consists of an (optional) 8-digit hexadec‐
20       imal  address,  followed  by a type code character, followed by a name,
21       for each symbol. One record is printed per line; fields  are  separated
22       by spaces.  When the address is omitted, it is replaced by 8 spaces.
23
24       The supported type code characters are as follows. Where both lower and
25       upper-case characters are listed for the  same  meaning,  a  lower-case
26       character  represents  a  local  symbol, whilst an upper-case character
27       represents a global (external) symbol:
28
29       a, A
30          Absolute symbol.
31
32       b, B
33          Uninitialized data (bss) object.
34
35       C
36          Common symbol. Multiple definitions link together into  one  defini‐
37          tion.
38
39       d, D
40          Writable data object.
41
42       i, I
43          COFF:  .idata  symbol or symbol in a section with IMAGE_SCN_LNK_INFO
44          set.
45
46       n
47          ELF: local symbol from non-alloc section.
48
49          COFF: debug symbol.
50
51       N
52          ELF: debug section symbol, or global symbol from non-alloc section.
53
54       s, S
55          COFF: section symbol.
56
57          Mach-O:  absolute  symbol  or  symbol  from  a  section  other  than
58          __TEXT_EXEC __text, __TEXT __text, __DATA __data, or __DATA __bss.
59
60       r, R
61          Read-only data object.
62
63       t, T
64          Code (text) object.
65
66       u
67          ELF: GNU unique symbol.
68
69       U
70          Named object is undefined in this file.
71
72       v
73          ELF:  Undefined  weak object. It is not a link failure if the object
74          is not defined.
75
76       V
77          ELF: Defined weak object symbol. This definition will only  be  used
78          if  no regular definitions exist in a link. If multiple weak defini‐
79          tions and no regular definitions exist, one of the weak  definitions
80          will be used.
81
82       w
83          Undefined  weak  symbol other than an ELF object symbol. It is not a
84          link failure if the symbol is not defined.
85
86       W
87          Defined weak symbol other than an ELF object symbol. This definition
88          will only be used if no regular definitions exist in a link. If mul‐
89          tiple weak definitions and no regular definitions exist, one of  the
90          weak definitions will be used.
91
92       -
93          Mach-O: N_STAB symbol.
94
95       ?
96          Something unrecognizable.
97
98       Because  LLVM bitcode files typically contain objects that are not con‐
99       sidered to have addresses until they are linked into an executable  im‐
100       age  or  dynamically compiled "just-in-time", llvm-nm does not print an
101       address for any symbol in an LLVM bitcode file, even symbols which  are
102       defined in the bitcode file.
103

OPTIONS

105       -B     Use BSD output format. Alias for --format=bsd.
106
107       -X     Specify  the  type  of XCOFF object file, ELF object file, or IR
108              object file input from command line or from archive  files  that
109              llvm-nm should examine. The mode must be one of the following:
110
111                     32     Process only 32-bit object files.
112
113                     64     Process only 64-bit object files.
114
115                     32_64  Process both 32-bit and 64-bit object files.
116
117                     any    Process all the supported object files.
118
119                 On AIX OS, the default is to process 32-bit object files only
120                 and to ignore 64-bit objects. The can be changed  by  setting
121                 the   OBJECT_MODE  environment  variable.  For  example,  OB‐
122                 JECT_MODE=64 causes llvm-nm to process 64-bit objects and ig‐
123                 nore  32-bit  objects.  The -X flag overrides the OBJECT_MODE
124                 variable.
125
126                 On other operating systems, the default is to process all ob‐
127                 ject  files: the OBJECT_MODE environment variable is not sup‐
128                 ported.
129
130       --debug-syms, -a
131              Show all symbols, even those usually suppressed.
132
133       --defined-only, -U
134              Print only symbols defined in this file.
135
136       --demangle, -C
137              Demangle symbol names.
138
139       --dynamic, -D
140              Display dynamic symbols instead of normal symbols.
141
142       --export-symbols
143              Print sorted symbols with their visibility (if applicable), with
144              duplicates removed.
145
146       --extern-only, -g
147              Print  only symbols whose definitions are external; that is, ac‐
148              cessible from other files.
149
150       --format=<format>, -f
151              Select an output format; format may be sysv, posix, darwin,  bsd
152              or just-symbols.  The default is bsd.
153
154       --help, -h
155              Print a summary of command-line options and their meanings.
156
157       -j     Print just the symbol names. Alias for --format=just-symbols`.
158
159       -m     Use Darwin format. Alias for --format=darwin.
160
161       --no-demangle
162              Don't demangle symbol names. This is the default.
163
164       --no-llvm-bc
165              Disable the LLVM bitcode reader.
166
167       --no-sort, -p
168              Show symbols in the order encountered.
169
170       --no-weak, -W
171              Don't print weak symbols.
172
173       --numeric-sort, -n, -v
174              Sort symbols by address.
175
176       --portability, -P
177              Use POSIX.2 output format.  Alias for --format=posix.
178
179       --print-armap
180              Print the archive symbol table, in addition to the symbols.
181
182       --print-file-name, -A, -o
183              Precede each symbol with the file it came from.
184
185       --print-size, -S
186              Show symbol size as well as address (not applicable for Mach-O).
187
188       --quiet
189              Suppress 'no symbols' diagnostic.
190
191       --radix=<RADIX>, -t
192              Specify the radix of the symbol address(es). Values accepted are
193              d (decimal), x (hexadecimal) and o (octal).
194
195       --reverse-sort, -r
196              Sort symbols in reverse order.
197
198       --size-sort
199              Sort symbols by size.
200
201       --special-syms
202              Do not filter special symbols from the output.
203
204       --undefined-only, -u
205              Print only undefined symbols.
206
207       --version, -V
208              Display the version of the llvm-nm executable, then  exit.  Does
209              not stack with other commands.
210
211       @<FILE>
212              Read command-line options from response file <FILE>.
213

MACH-O SPECIFIC OPTIONS

215       --add-dyldinfo
216              Add  symbols  from  the dyldinfo, if they are not already in the
217              symbol table.  This is the default.
218
219       --add-inlinedinfo
220              Add symbols from the inlined libraries, TBD file inputs only.
221
222       --arch=<arch1[,arch2,...]>
223              Dump the symbols from the specified architecture(s).
224
225       --dyldinfo-only
226              Dump only symbols from the dyldinfo.
227
228       --no-dyldinfo
229              Do not add any symbols from the dyldinfo.
230
231       -s <segment> <section>
232              Dump only symbols from this segment and section name.
233
234       -x     Print symbol entry in hex.
235

XCOFF SPECIFIC OPTIONS

237       --no-rsrc
238              Exclude resource file symbols (__rsrc) from export symbol list.
239

BUGS

241llvm-nm does not support the full set of  arguments  that  GNU  nm
242            does.
243

EXIT STATUS

245       llvm-nm exits with an exit code of zero.
246

SEE ALSO

248       llvm-ar(1), llvm-objdump(1), llvm-readelf(1), llvm-readobj(1)
249

AUTHOR

251       Maintained by the LLVM Team (https://llvm.org/).
252
254       2003-2023, LLVM Project
255
256
257
258
25916                                2023-07-20                        LLVM-NM(1)
Impressum