Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LLVM-NM(1)			     LLVM			    LLVM-NM(1)

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

SYNOPSIS
       llvm-nm [options] [filenames...]

DESCRIPTION
       The llvm-nm utility lists the names of symbols from LLVM	bitcode	files,
       object  files, and archives. Each symbol	is listed along	with some sim-
       ple information about its provenance.  If  no  filename	is  specified,
       a.out  is  used	as the input. If - is used as a	filename, llvm-nm will
       read a file from	its standard input stream.

       llvm-nm's default output	format is the traditional BSD nm  output  for-
       mat. Each such output record consists of	an (optional) 8-digit hexadec-
       imal  address,  followed	 by a type code	character, followed by a name,
       for each	symbol.	One record is printed per line;	fields	are  separated
       by spaces.  When	the address is omitted,	it is replaced by 8 spaces.

       The supported type code characters are as follows. Where	both lower and
       upper-case  characters  are  listed  for	the same meaning, a lower-case
       character represents a local symbol,  whilst  an	 upper-case  character
       represents a global (external) symbol:

       a, A
	  Absolute symbol.

       b, B
	  Uninitialized	data (bss) object.

       C
	  Common  symbol.  Multiple definitions	link together into one defini-
	  tion.

       d, D
	  Writable data	object.

       i, I
	  COFF:	.idata symbol or symbol	in a section  with  IMAGE_SCN_LNK_INFO
	  set.

       n
	  ELF: local symbol from non-alloc section.

	  COFF:	debug symbol.

       N
	  ELF: debug section symbol, or	global symbol from non-alloc section.

       s, S
	  COFF:	section	symbol.

	  Mach-O:  absolute  symbol  or	 symbol	 from  a  section  other  than
	  __TEXT_EXEC __text, __TEXT __text, __DATA __data, or __DATA __bss.

       r, R
	  Read-only data object.

       t, T
	  Code (text) object.

       u
	  ELF: GNU unique symbol.

       U
	  Named	object is undefined in this file.

       v
	  ELF: Undefined weak object. It is not	a link failure if  the	object
	  is not defined.

       V
	  ELF:	Defined	 weak object symbol. This definition will only be used
	  if no	regular	definitions exist in a link. If	multiple weak  defini-
	  tions	 and no	regular	definitions exist, one of the weak definitions
	  will be used.

       w
	  Undefined weak symbol	other than an ELF object symbol. It is	not  a
	  link failure if the symbol is	not defined.

       W
	  Defined weak symbol other than an ELF	object symbol. This definition
	  will only be used if no regular definitions exist in a link. If mul-
	  tiple	 weak definitions and no regular definitions exist, one	of the
	  weak definitions will	be used.

       -
	  Mach-O: N_STAB symbol.

       ?
	  Something unrecognizable.

       Because LLVM bitcode files typically contain objects that are not  con-
       sidered	to have	addresses until	they are linked	into an	executable im-
       age or dynamically compiled "just-in-time", llvm-nm does	not  print  an
       address	for any	symbol in an LLVM bitcode file,	even symbols which are
       defined in the bitcode file.

OPTIONS
       -B     Use BSD output format. Alias for --format=bsd.

       -X     Specify the type of XCOFF	object file, ELF object	 file,	or  IR
	      object  file  input from command line or from archive files that
	      llvm-nm should examine. The mode must be one of the following:

		     32	    Process only 32-bit	object files.

		     64	    Process only 64-bit	object files.

		     32_64  Process both 32-bit	and 64-bit object files.

		     any    Process all	the supported object files.

		 On AIX	OS, the	default	is to process 32-bit object files only
		 and to	ignore 64-bit objects. The can be changed  by  setting
		 the   OBJECT_MODE  environment	 variable.  For	 example,  OB-
		 JECT_MODE=64 causes llvm-nm to	process	64-bit objects and ig-
		 nore 32-bit objects. The -X flag  overrides  the  OBJECT_MODE
		 variable.

		 On other operating systems, the default is to process all ob-
		 ject  files: the OBJECT_MODE environment variable is not sup-
		 ported.

       --debug-syms, -a
	      Show all symbols,	even those usually suppressed.

       --defined-only, -U
	      Print only symbols defined in this file.

       --demangle, -C
	      Demangle symbol names.

       --dynamic, -D
	      Display dynamic symbols instead of normal	symbols.

       --export-symbols
	      Print sorted symbols with	their visibility (if applicable), with
	      duplicates removed.

       --extern-only, -g
	      Print only symbols whose definitions are external; that is,  ac-
	      cessible from other files.

       --format=<format>, -f
	      Select  an output	format;	format may be sysv, posix, darwin, bsd
	      or just-symbols.	The default is bsd.

       --help, -h
	      Print a summary of command-line options and their	meanings.

       -j     Print just the symbol names. Alias for --format=just-symbols`.

       --line-numbers, -l
	      Use debugging information	to print the filenames and  line  num-
	      bers where symbols are defined. Undefined	symbols	have the loca-
	      tion of their first relocation printed instead.

       -m     Use Darwin format. Alias for --format=darwin.

       --no-demangle
	      Don't demangle symbol names. This	is the default.

       --no-llvm-bc
	      Disable the LLVM bitcode reader.

       --no-sort, -p
	      Show symbols in the order	encountered.

       --no-weak, -W
	      Don't print weak symbols.

       --numeric-sort, -n, -v
	      Sort symbols by address.

       --portability, -P
	      Use POSIX.2 output format.  Alias	for --format=posix.

       --print-armap
	      Print the	archive	symbol table, in addition to the symbols.

       --print-file-name, -A, -o
	      Precede each symbol with the file	it came	from.

       --print-size, -S
	      Show symbol size as well as address (not applicable for Mach-O).

       --quiet
	      Suppress 'no symbols' diagnostic.

       --radix=<RADIX>,	-t
	      Specify the radix	of the symbol address(es). Values accepted are
	      d	(decimal), x (hexadecimal) and o (octal).

       --reverse-sort, -r
	      Sort symbols in reverse order.

       --size-sort
	      Sort symbols by size.

       --special-syms
	      Do not filter special symbols from the output.

       --undefined-only, -u
	      Print only undefined symbols.

       --version, -V
	      Display  the  version of the llvm-nm executable, then exit. Does
	      not stack	with other commands.

       @<FILE>
	      Read command-line	options	from response file <FILE>.

MACH-O SPECIFIC	OPTIONS
       --add-dyldinfo
	      Add symbols from the dyldinfo, if	they are not  already  in  the
	      symbol table.  This is the default.

       --add-inlinedinfo
	      Add symbols from the inlined libraries, TBD file inputs only.

       --arch=<arch1[,arch2,...]>
	      Dump the symbols from the	specified architecture(s).

       --dyldinfo-only
	      Dump only	symbols	from the dyldinfo.

       --no-dyldinfo
	      Do not add any symbols from the dyldinfo.

       -s <segment> <section>
	      Dump only	symbols	from this segment and section name.

       -x     Print symbol entry in hex.

XCOFF SPECIFIC OPTIONS
       --no-rsrc
	      Exclude resource file symbols (__rsrc) from export symbol	list.

BUGS
	   llvm-nm  does  not	support	 the full set of arguments that	GNU nm
	    does.

EXIT STATUS
       llvm-nm exits with an exit code of zero.

SEE ALSO
       llvm-ar(1), llvm-objdump(1), llvm-readelf(1), llvm-readobj(1)

AUTHOR
       Maintained by the LLVM Team (https://llvm.org/).

COPYRIGHT
       2003-2025, LLVM Project

18				  2025-04-13			    LLVM-NM(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=llvm-nm-cheriot&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help