From 5d42e8f4c101d7997b1d064941587a20b10b0dab Mon Sep 17 00:00:00 2001 From: obrien Date: Mon, 28 May 2001 06:00:20 +0000 Subject: Return to the vendor's version of this file as in rev 1.4. (CVS is too stupid to realize we've done this 3 times now...) --- contrib/binutils/binutils/nm.c | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/contrib/binutils/binutils/nm.c b/contrib/binutils/binutils/nm.c index 038b8c9..499056c 100644 --- a/contrib/binutils/binutils/nm.c +++ b/contrib/binutils/binutils/nm.c @@ -1,5 +1,5 @@ /* nm.c -- Describe symbol table of a rel file. - Copyright 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000 + Copyright 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -262,7 +262,7 @@ static bfd *lineno_cache_rel_bfd; static struct option long_options[] = { {"debug-syms", no_argument, &print_debug_syms, 1}, - {"demangle", no_argument, &do_demangle, 1}, + {"demangle", optional_argument, 0, 'C'}, {"dynamic", no_argument, &dynamic, 1}, {"extern-only", no_argument, &external_only, 1}, {"format", required_argument, 0, 'f'}, @@ -299,7 +299,9 @@ usage (stream, status) -a, --debug-syms Display debugger-only symbols\n\ -A, --print-file-name Print name of the input file before every symbol\n\ -B Same as --format=bsd\n\ - -C, --demangle Decode low-level symbol names into user-level names\n\ + -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n\ + The STYLE, if specified, can be `auto' (the default),\n\ + `gnu', 'lucid', 'arm', 'hp', 'edg' or 'gnu-new-abi'\n\ --no-demangle Do not demangle low-level symbol names\n\ -D, --dynamic Display dynamic symbols instead of normal symbols\n\ --defined-only Display only defined symbols\n\ @@ -321,6 +323,7 @@ usage (stream, status) --target=BFDNAME Specify the target object format as BFDNAME\n\ -u, --undefined-only Display only undefined symbols\n\ -V, --version Display this program's version number\n\ + -X 32_64 (ignored)\n\ \n")); list_supported_targets (program_name, stream); if (status == 0) @@ -409,7 +412,8 @@ main (argc, argv) bfd_init (); set_default_bfd_target (); - while ((c = getopt_long (argc, argv, "aABCDef:glnopPrst:uvV", long_options, (int *) 0)) != EOF) + while ((c = getopt_long (argc, argv, "aABCDef:glnopPrst:uvVX:", + long_options, (int *) 0)) != EOF) { switch (c) { @@ -425,6 +429,17 @@ main (argc, argv) break; case 'C': do_demangle = 1; + if (optarg != NULL) + { + enum demangling_styles style; + + style = cplus_demangle_name_to_style (optarg); + if (style == unknown_demangling) + fatal (_("unknown demangling style `%s'"), + optarg); + + cplus_demangle_set_style (style); + } break; case 'D': dynamic = 1; @@ -468,6 +483,17 @@ main (argc, argv) case 'V': show_version = 1; break; + case 'X': + /* Ignored for (partial) AIX compatibility. On AIX, the + argument has values 32, 64, or 32_64, and specfies that + only 32-bit, only 64-bit, or both kinds of objects should + be examined. The default is 32. So plain AIX nm on a + library archive with both kinds of objects will ignore + the 64-bit ones. For GNU nm, the default is and always + has been -X 32_64, and other options are not supported. */ + if (strcmp (optarg, "32_64") != 0) + fatal (_("Only -X 32_64 is supported")); + break; case OPTION_TARGET: /* --target */ target = optarg; @@ -1449,13 +1475,11 @@ print_symbol_info_bsd (info, abfd) { if (bfd_is_undefined_symclass (info->type)) { - printf ("%*s", #ifdef BFD64 - 16, + printf ("%*s", 16, ""); #else - 8, + printf ("%*s", 8, ""); #endif - ""); } else print_value (info->value); -- cgit v1.1