* Makefile.in ($(NM_PROG)): Depend on demangle.o.
authorDavid MacKenzie <djm@cygnus>
Fri, 13 Aug 1993 00:02:25 +0000 (00:02 +0000)
committerDavid MacKenzie <djm@cygnus>
Fri, 13 Aug 1993 00:02:25 +0000 (00:02 +0000)
(demangle.o): New target.
(cplus-dem.o): Depend on it, to force compilation order when doing
parallel compiles.

* nm.c (print_symbol_info_{bsd,sysv,posix}): Take a bfd arg.
(struct output_fns print_symbol_info): Ditto.
(long_options, usage, main): Add -C --demangle option.
(print_symname): New function, demangling if requested.
(print_symbols, print_symbol_info_{bsd,sysv,posix}): Use it.

binutils/Makefile.in
binutils/binutils.texi
binutils/nm.1

index 125ffa02708db7a8eec9b2b3bb83fc3b947e5bb9..e1b3db4b06c1a21cc3af5635d7d2bc0b50af1076 100644 (file)
@@ -197,8 +197,8 @@ $(STRINGS_PROG): $(ADDL_LIBS) strings.o $(BFD)
 $(STRIP_PROG): $(ADDL_LIBS) objcopy.o is-strip.o $(BFD)
        $(CC) $(LDFLAGS) -o $(STRIP_PROG) objcopy.o is-strip.o $(ADDL_LIBS) $(EXTRALIBS)
 
-$(NM_PROG): $(ADDL_LIBS) nm.o $(BFD)
-       $(CC) $(LDFLAGS) -o $(NM_PROG) nm.o $(ADDL_LIBS) $(EXTRALIBS)
+$(NM_PROG): $(ADDL_LIBS) nm.o demangle.o $(BFD)
+       $(CC) $(LDFLAGS) -o $(NM_PROG) nm.o demangle.o $(ADDL_LIBS) $(EXTRALIBS)
 
 $(OBJDUMP_PROG): $(ADDL_LIBS) objdump.o $(BFD) $(OPCODES)
        $(CC) $(LDFLAGS) -o $(OBJDUMP_PROG) objdump.o $(OPCODES) $(ADDL_LIBS) $(EXTRALIBS)
@@ -220,7 +220,12 @@ underscore.c:
 version.o: version.c
        $(CC) $(INCLUDES) $(HDEFINES) $(TDEFINES) -DVERSION='"$(VERSION)"' $(CFLAGS) -c $(srcdir)/version.c
 
-cplus-dem.o: $(BASEDIR)/libiberty/cplus-dem.c $(INCDIR)/getopt.h 
+demangle.o: $(BASEDIR)/libiberty/cplus-dem.c
+       $(CC) -c $(INCLUDES) $(HDEFINES) $(TDEFINES) $(CFLAGS) $(BASEDIR)/libiberty/cplus-dem.c
+       mv cplus-dem.o demangle.o
+
+# For parallel compiling, depend on demangle.o so that one gets done first.
+cplus-dem.o: $(BASEDIR)/libiberty/cplus-dem.c $(INCDIR)/getopt.h demangle.o
        $(CC) -c -DMAIN $(INCLUDES) $(HDEFINES) $(TDEFINES) $(CFLAGS) $(BASEDIR)/libiberty/cplus-dem.c
 
 $(DEMANGLER_PROG): cplus-dem.o $(LIBIBERTY) underscore.o version.o
@@ -292,7 +297,7 @@ nm.o: nm.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
   $(INCDIR)/obstack.h ../bfd/sysdep.h $(BFDDIR)/hosts/std-host.h \
   $(INCDIR)/fopen-same.h bucomm.h $(INCDIR)/getopt.h \
   $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def \
-  $(INCDIR)/aout/ranlib.h 
+  $(INCDIR)/aout/ranlib.h $(INCDIR)/demangle.h
 ar.o: ar.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
   $(INCDIR)/obstack.h ../bfd/sysdep.h $(BFDDIR)/hosts/std-host.h \
   $(INCDIR)/fopen-same.h bucomm.h $(INCDIR)/aout/ar.h \
index 383d6b29ec2362ab2c77cc1bd02f49670927286e..ae4010ae6c8288038ff5fa3f3822f1f544062824 100644 (file)
@@ -639,7 +639,8 @@ The GNU linker @code{ld} is now described in a separate manual.
 @kindex nm
 
 @smallexample
-nm [ -a | --debug-syms ]  [ -g | --extern-only ]  [ -B ]
+nm [ -a | --debug-syms ]  [ -g | --extern-only ]
+   [ -B ]  [ -C | --demangle ]
    [ -s | --print-armap ]  [ -A | -o | --print-file-name ]  
    [ -n | -v | --numeric-sort ]  [ -p | --no-sort ]
    [ -r | --reverse-sort ]  [ -u | --undefined-only ]  
@@ -716,7 +717,15 @@ listed.
 @item -B
 @cindex @code{nm} format
 @cindex @code{nm} compatibility
-The same as @samp{--format=bsd}.
+The same as @samp{--format=bsd} (for compatibility with the MIPS @code{nm}).
+
+@item -C
+@itemx --demangle
+@cindex demangling C++ symbols
+Decode (@dfn{demangle}) low-level symbol names into user-level names.
+Besides removing any initial underscore prepended by the system, this
+makes C++ function names readable.  @xref{c++filt}, for more information
+on demangling.
 
 @item -f @var{format}
 @itemx --format=@var{format}
@@ -1188,7 +1197,7 @@ archives, @samp{strip -v} lists all members of the archive.
 @smallexample
 c++filt [ -_ | --strip-underscores ]
         [ -s @var{format} | --format=@var{format} ]
-        [ --help ]  [ --version ]  [ @var{arg}@dots{} ]
+        [ --help ]  [ --version ]  [ @var{symbol}@dots{} ]
 @end smallexample
 
 The C++ language provides function overloading, which means that you can
@@ -1204,20 +1213,15 @@ dollars, or periods) seen in the input is a potential label.  If the
 label decodes into a C++ name, the C++ name replaces the low-level
 name in the output.
 
-A typical use of @code{c++filt} is to pipe the output of @code{nm}
-though it, using @code{c++filt} as a filter:
-
-@example
-nm @var{objfile} | c++filt
-@end example
-
-You can also use @code{c++filt} to decipher individual symbols:
+You can use @code{c++filt} to decipher individual symbols:
 
 @example
 c++filt @var{symbol}
 @end example
 
-All results are printed on the standard output.
+If no @var{symbol} arguments are given, @code{c++filt} reads symbol
+names from the standard input and writes the demangled names to the
+standard output.  All results are printed on the standard output.
 
 @table @code
 @item -_
index e62586b1291eb68b46ae4aaebea3d00735476abc..08407999835b1a2142f3a2768f127fcd07d3359d 100644 (file)
@@ -17,6 +17,8 @@ nm\(em\&list symbols from object files.
 .B nm
 .RB "[\|" \-a | \-\-debug\-syms "\|]" 
 .RB "[\|" \-g | \-\-extern\-only "\|]"
+.RB "[\|" \-B "\|]"  
+.RB "[\|" \-C | \-\-demangle "\|]" 
 .RB "[\|" \-s | \-\-print\-armap "\|]" 
 .RB "[\|" \-o | \-\-print\-file\-name "\|]"  
 .RB "[\|" \-n | \-\-numeric\-sort "\|]" 
@@ -71,6 +73,14 @@ The same as
 .B \-\-format=bsd
 (for compatibility with the MIPS \fBnm\fP).
 
+.TP
+.B \-C
+.TP
+.B \-\-demangle
+Decode (\fIdemangle\fP) low-level symbol names into user-level names.
+Besides removing any initial underscore prepended by the system, this
+makes C++ function names readable.
+
 .TP
 .B "\-f \fIformat"
 Use the output format \fIformat\fP, which can be ``bsd'',