Package: binutils-common Version: 2.43.50.20241215-1 Severity: minor Tags: patch
* What led up to the situation? Checking for defects with a new version test-[g|n]roff -mandoc -t -K utf8 -rF0 -rHY=0 -rCHECKSTYLE=10 -ww -z < "man page" [Use "groff -e ' $' <file>" to find trailing spaces.] ["test-groff" is a script in the repository for "groff"; is not shipped] (local copy and "troff" slightly changed by me). [The fate of "test-nroff" was decided in groff bug #55941.] * What was the outcome of this action? an.tmac:<stdin>:68: style: 3 leading space(s) on input line an.tmac:<stdin>:69: style: 3 leading space(s) on input line an.tmac:<stdin>:70: style: 3 leading space(s) on input line an.tmac:<stdin>:71: style: 3 leading space(s) on input line an.tmac:<stdin>:72: style: 3 leading space(s) on input line an.tmac:<stdin>:73: style: 3 leading space(s) on input line an.tmac:<stdin>:74: style: 3 leading space(s) on input line an.tmac:<stdin>:75: style: 3 leading space(s) on input line an.tmac:<stdin>:76: style: 3 leading space(s) on input line an.tmac:<stdin>:77: style: 3 leading space(s) on input line an.tmac:<stdin>:78: style: 3 leading space(s) on input line an.tmac:<stdin>:79: style: 3 leading space(s) on input line an.tmac:<stdin>:80: style: 3 leading space(s) on input line an.tmac:<stdin>:81: style: 3 leading space(s) on input line an.tmac:<stdin>:82: style: 3 leading space(s) on input line an.tmac:<stdin>:83: style: 3 leading space(s) on input line an.tmac:<stdin>:84: style: 3 leading space(s) on input line an.tmac:<stdin>:85: style: 3 leading space(s) on input line an.tmac:<stdin>:86: style: 3 leading space(s) on input line an.tmac:<stdin>:87: style: 3 leading space(s) on input line an.tmac:<stdin>:88: style: 3 leading space(s) on input line an.tmac:<stdin>:89: style: 3 leading space(s) on input line an.tmac:<stdin>:90: style: 3 leading space(s) on input line an.tmac:<stdin>:91: style: 3 leading space(s) on input line an.tmac:<stdin>:92: style: 3 leading space(s) on input line an.tmac:<stdin>:93: style: 3 leading space(s) on input line an.tmac:<stdin>:94: style: 3 leading space(s) on input line an.tmac:<stdin>:95: style: 3 leading space(s) on input line an.tmac:<stdin>:96: style: 3 leading space(s) on input line an.tmac:<stdin>:97: style: 3 leading space(s) on input line an.tmac:<stdin>:98: style: 3 leading space(s) on input line an.tmac:<stdin>:99: style: 3 leading space(s) on input line an.tmac:<stdin>:100: style: 3 leading space(s) on input line troff:<stdin>:116: warning: font name 'CW' is deprecated an.tmac:<stdin>:126: style: use of deprecated macro: .PD an.tmac:<stdin>:130: style: use of deprecated macro: .PD an.tmac:<stdin>:137: style: use of deprecated macro: .PD an.tmac:<stdin>:141: style: use of deprecated macro: .PD an.tmac:<stdin>:151: style: use of deprecated macro: .PD an.tmac:<stdin>:155: style: use of deprecated macro: .PD an.tmac:<stdin>:160: style: use of deprecated macro: .PD an.tmac:<stdin>:164: style: use of deprecated macro: .PD an.tmac:<stdin>:206: style: use of deprecated macro: .PD an.tmac:<stdin>:210: style: use of deprecated macro: .PD an.tmac:<stdin>:215: style: use of deprecated macro: .PD an.tmac:<stdin>:219: style: use of deprecated macro: .PD an.tmac:<stdin>:225: style: use of deprecated macro: .PD an.tmac:<stdin>:229: style: use of deprecated macro: .PD an.tmac:<stdin>:245: style: use of deprecated macro: .PD an.tmac:<stdin>:249: style: use of deprecated macro: .PD an.tmac:<stdin>:258: style: use of deprecated macro: .PD an.tmac:<stdin>:262: style: use of deprecated macro: .PD an.tmac:<stdin>:297: style: use of deprecated macro: .PD an.tmac:<stdin>:302: style: use of deprecated macro: .PD an.tmac:<stdin>:308: style: use of deprecated macro: .PD an.tmac:<stdin>:311: style: use of deprecated macro: .PD an.tmac:<stdin>:319: style: use of deprecated macro: .PD an.tmac:<stdin>:322: style: use of deprecated macro: .PD an.tmac:<stdin>:333: style: use of deprecated macro: .PD an.tmac:<stdin>:340: style: use of deprecated macro: .PD an.tmac:<stdin>:354: style: use of deprecated macro: .PD an.tmac:<stdin>:357: style: use of deprecated macro: .PD an.tmac:<stdin>:363: style: use of deprecated macro: .PD an.tmac:<stdin>:366: style: use of deprecated macro: .PD an.tmac:<stdin>:373: style: use of deprecated macro: .PD an.tmac:<stdin>:376: style: use of deprecated macro: .PD an.tmac:<stdin>:380: style: use of deprecated macro: .PD an.tmac:<stdin>:383: style: use of deprecated macro: .PD an.tmac:<stdin>:399: style: use of deprecated macro: .PD an.tmac:<stdin>:402: style: use of deprecated macro: .PD troff:<stdin>:411: warning: trailing space in the line an.tmac:<stdin>:419: style: use of deprecated macro: .PD an.tmac:<stdin>:424: style: use of deprecated macro: .PD an.tmac:<stdin>:429: style: use of deprecated macro: .PD an.tmac:<stdin>:432: style: use of deprecated macro: .PD an.tmac:<stdin>:437: style: use of deprecated macro: .PD an.tmac:<stdin>:440: style: use of deprecated macro: .PD an.tmac:<stdin>:445: style: use of deprecated macro: .PD an.tmac:<stdin>:448: style: use of deprecated macro: .PD an.tmac:<stdin>:453: style: use of deprecated macro: .PD an.tmac:<stdin>:456: style: use of deprecated macro: .PD an.tmac:<stdin>:463: style: use of deprecated macro: .PD an.tmac:<stdin>:466: style: use of deprecated macro: .PD an.tmac:<stdin>:472: style: use of deprecated macro: .PD an.tmac:<stdin>:475: style: use of deprecated macro: .PD an.tmac:<stdin>:480: style: use of deprecated macro: .PD an.tmac:<stdin>:483: style: use of deprecated macro: .PD an.tmac:<stdin>:488: style: use of deprecated macro: .PD an.tmac:<stdin>:491: style: use of deprecated macro: .PD an.tmac:<stdin>:496: style: use of deprecated macro: .PD an.tmac:<stdin>:499: style: use of deprecated macro: .PD an.tmac:<stdin>:565: style: use of deprecated macro: .PD an.tmac:<stdin>:568: style: use of deprecated macro: .PD an.tmac:<stdin>:572: style: use of deprecated macro: .PD an.tmac:<stdin>:575: style: use of deprecated macro: .PD * What outcome did you expect instead? No output (no warnings). -.- General remarks and further material, if a diff-file exist, are in the attachments. -- System Information: Debian Release: trixie/sid APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 6.12.6-amd64 (SMP w/2 CPU threads; PREEMPT) Locale: LANG=is_IS.iso88591, LC_CTYPE=is_IS.iso88591 (charmap=ISO-8859-1), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: sysvinit (via /sbin/init) -- no debconf information
Input file is nm.1 Any program (person), that produces man pages, should check the output for defects by using (both groff and nroff) [gn]roff -mandoc -t -ww -b -z -K utf8 <man page> The same goes for man pages that are used as an input. For a style guide use mandoc -T lint -.- So any 'generator' should check its products with the above mentioned 'groff', 'mandoc', and additionally with 'nroff ...'. This is just a simple quality control measure. The 'generator' may have to be corrected to get a better man page, the source file may, and any additional file may. Common defects: Input text line longer than 80 bytes. Not removing trailing spaces (in in- and output). The reason for these trailing spaces should be found and eliminated. Not beginning each input sentence on a new line. Lines should thus be shorter. See man-pages(7), item 'semantic newline'. -.- The difference between the formatted output of the original and patched file can be seen with: nroff -mandoc <file1> > <out1> nroff -mandoc <file2> > <out2> diff -u <out1> <out2> and for groff, using "printf '%s\n%s\n' '.kern 0' '.ss 12 0' | groff -mandoc -Z - " instead of 'nroff -mandoc' Add the option '-t', if the file contains a table. Read the output of 'diff -u' with 'less -R' or similar. -.-. If 'man' (man-db) is used to check the manual for warnings, the following must be set: The option "-warnings=w" The environmental variable: export MAN_KEEP_STDERR=yes (or any non-empty value) or (produce only warnings): export MANROFFOPT="-ww -b -z" export MAN_KEEP_STDERR=yes (or any non-empty value) -.-. Output from "mandoc -T lint nm.1": (shortened list) 1 empty block 1 input text line longer than 80 bytes 1 whitespace at end of input line -.-. Output from "test-groff -mandoc -t -ww -z nm.1": (shortened list) 1 font name 'CW' is deprecated 1 trailing space in the line -.-. Remove space characters (whitespace) at the end of lines. Use "git apply ... --whitespace=fix" to fix extra space issues, or use global configuration "core.whitespace". Number of lines affected is 1 -.-. Change '-' (\-) to '\(en' (en-dash) for a numeric range. GNU gnulib has recently (2023-06-18) updated its "build_aux/update-copyright" to recognize "\(en" in man pages. nm.1:604:Copyright (c) 1991\-2024 Free Software Foundation, Inc. -.-. Wrong distance between sentences in the input file. Separate the sentences and subordinate clauses; each begins on a new line. See man-pages(7) ("Conventions for source file layout") and "info groff" ("Input Conventions"). The best procedure is to always start a new sentence on a new line, at least, if you are typing on a computer. Remember coding: Only one command ("sentence") on each (logical) line. E-mail: Easier to quote exactly the relevant lines. Generally: Easier to edit the sentence. Patches: Less unaffected text. Search for two adjacent words is easier, when they belong to the same line, and the same phrase. The amount of space between sentences in the output can then be controlled with the ".ss" request. Mark a abbreviation point as such by suffixing them with "\&". 325:makes C++ function names readable. Different compilers have different 326:mangling styles. The optional demangling style argument can be used to 390:the user to specify a string containing one or two characters. The -.-. Split lines longer than 80 characters into two or more lines. Appropriate break points are the end of a sentence and a subordinate clause; after punctuation marks. Line 368, length 124 \&\f(CW\*(C`sysv\*(C'\fR, \f(CW\*(C`posix\*(C'\fR or \f(CW\*(C`just\-symbols\*(C'\fR. The default is \f(CW\*(C`bsd\*(C'\fR. Line 414, length 88 \&\f(CW\*(C`callee1\*(C'\fR which inlines \f(CW\*(C`callee2\*(C'\fR, and address is from Line 415, length 108 \&\f(CW\*(C`callee2\*(C'\fR, the source information for \f(CW\*(C`callee1\*(C'\fR and \f(CW\*(C`main\*(C'\fR Line 457, length 88 Print both value and size of defined symbols for the \f(CW\*(C`bsd\*(C'\fR output style. Line 601, length 96 \&\fBar\fR\|(1), \fBobjdump\fR\|(1), \fBranlib\fR\|(1), and the Info entries for \fIbinutils\fR. -.-. Add a zero (0) in front of a decimal fraction that begins with a period (.) 7:.if t .sp .5v -.-. Put a parenthetical sentence, phrase on a separate line, if not part of a code. See man-pages(7), item "semantic newline". Not considered in a patch, too many lines. nm.1:116:symbols (\f(CW\*(C`u\*(C'\fR, \f(CW\*(C`v\*(C'\fR and \f(CW\*(C`w\*(C'\fR). nm.1:303:Precede each symbol by the name of the input file (or archive member) nm.1:316:The same as \fB\-\-format=bsd\fR (for compatibility with the MIPS \fBnm\fR). nm.1:323:Decode (\fIdemangle\fR) low-level symbol names into user-level names. nm.1:449:Reverse the order of the sort (whether numeric or alphabetic); let the nm.1:484:Display only undefined symbols (those external to each object file). nm.1:552:The default (\fB\-\-unicode=default\fR) is to give them no special -.-. Output from "test-groff -mandoc -t -K utf8 -rF0 -rHY=0 -rCHECKSTYLE=10 -ww -z ": an.tmac:<stdin>:68: style: 3 leading space(s) on input line an.tmac:<stdin>:69: style: 3 leading space(s) on input line an.tmac:<stdin>:70: style: 3 leading space(s) on input line an.tmac:<stdin>:71: style: 3 leading space(s) on input line an.tmac:<stdin>:72: style: 3 leading space(s) on input line an.tmac:<stdin>:73: style: 3 leading space(s) on input line an.tmac:<stdin>:74: style: 3 leading space(s) on input line an.tmac:<stdin>:75: style: 3 leading space(s) on input line an.tmac:<stdin>:76: style: 3 leading space(s) on input line an.tmac:<stdin>:77: style: 3 leading space(s) on input line an.tmac:<stdin>:78: style: 3 leading space(s) on input line an.tmac:<stdin>:79: style: 3 leading space(s) on input line an.tmac:<stdin>:80: style: 3 leading space(s) on input line an.tmac:<stdin>:81: style: 3 leading space(s) on input line an.tmac:<stdin>:82: style: 3 leading space(s) on input line an.tmac:<stdin>:83: style: 3 leading space(s) on input line an.tmac:<stdin>:84: style: 3 leading space(s) on input line an.tmac:<stdin>:85: style: 3 leading space(s) on input line an.tmac:<stdin>:86: style: 3 leading space(s) on input line an.tmac:<stdin>:87: style: 3 leading space(s) on input line an.tmac:<stdin>:88: style: 3 leading space(s) on input line an.tmac:<stdin>:89: style: 3 leading space(s) on input line an.tmac:<stdin>:90: style: 3 leading space(s) on input line an.tmac:<stdin>:91: style: 3 leading space(s) on input line an.tmac:<stdin>:92: style: 3 leading space(s) on input line an.tmac:<stdin>:93: style: 3 leading space(s) on input line an.tmac:<stdin>:94: style: 3 leading space(s) on input line an.tmac:<stdin>:95: style: 3 leading space(s) on input line an.tmac:<stdin>:96: style: 3 leading space(s) on input line an.tmac:<stdin>:97: style: 3 leading space(s) on input line an.tmac:<stdin>:98: style: 3 leading space(s) on input line an.tmac:<stdin>:99: style: 3 leading space(s) on input line an.tmac:<stdin>:100: style: 3 leading space(s) on input line troff:<stdin>:116: warning: font name 'CW' is deprecated an.tmac:<stdin>:126: style: use of deprecated macro: .PD an.tmac:<stdin>:130: style: use of deprecated macro: .PD an.tmac:<stdin>:137: style: use of deprecated macro: .PD an.tmac:<stdin>:141: style: use of deprecated macro: .PD an.tmac:<stdin>:151: style: use of deprecated macro: .PD an.tmac:<stdin>:155: style: use of deprecated macro: .PD an.tmac:<stdin>:160: style: use of deprecated macro: .PD an.tmac:<stdin>:164: style: use of deprecated macro: .PD an.tmac:<stdin>:206: style: use of deprecated macro: .PD an.tmac:<stdin>:210: style: use of deprecated macro: .PD an.tmac:<stdin>:215: style: use of deprecated macro: .PD an.tmac:<stdin>:219: style: use of deprecated macro: .PD an.tmac:<stdin>:225: style: use of deprecated macro: .PD an.tmac:<stdin>:229: style: use of deprecated macro: .PD an.tmac:<stdin>:245: style: use of deprecated macro: .PD an.tmac:<stdin>:249: style: use of deprecated macro: .PD an.tmac:<stdin>:258: style: use of deprecated macro: .PD an.tmac:<stdin>:262: style: use of deprecated macro: .PD an.tmac:<stdin>:297: style: use of deprecated macro: .PD an.tmac:<stdin>:302: style: use of deprecated macro: .PD an.tmac:<stdin>:308: style: use of deprecated macro: .PD an.tmac:<stdin>:311: style: use of deprecated macro: .PD an.tmac:<stdin>:319: style: use of deprecated macro: .PD an.tmac:<stdin>:322: style: use of deprecated macro: .PD an.tmac:<stdin>:333: style: use of deprecated macro: .PD an.tmac:<stdin>:340: style: use of deprecated macro: .PD an.tmac:<stdin>:354: style: use of deprecated macro: .PD an.tmac:<stdin>:357: style: use of deprecated macro: .PD an.tmac:<stdin>:363: style: use of deprecated macro: .PD an.tmac:<stdin>:366: style: use of deprecated macro: .PD an.tmac:<stdin>:373: style: use of deprecated macro: .PD an.tmac:<stdin>:376: style: use of deprecated macro: .PD an.tmac:<stdin>:380: style: use of deprecated macro: .PD an.tmac:<stdin>:383: style: use of deprecated macro: .PD an.tmac:<stdin>:399: style: use of deprecated macro: .PD an.tmac:<stdin>:402: style: use of deprecated macro: .PD troff:<stdin>:411: warning: trailing space in the line an.tmac:<stdin>:419: style: use of deprecated macro: .PD an.tmac:<stdin>:424: style: use of deprecated macro: .PD an.tmac:<stdin>:429: style: use of deprecated macro: .PD an.tmac:<stdin>:432: style: use of deprecated macro: .PD an.tmac:<stdin>:437: style: use of deprecated macro: .PD an.tmac:<stdin>:440: style: use of deprecated macro: .PD an.tmac:<stdin>:445: style: use of deprecated macro: .PD an.tmac:<stdin>:448: style: use of deprecated macro: .PD an.tmac:<stdin>:453: style: use of deprecated macro: .PD an.tmac:<stdin>:456: style: use of deprecated macro: .PD an.tmac:<stdin>:463: style: use of deprecated macro: .PD an.tmac:<stdin>:466: style: use of deprecated macro: .PD an.tmac:<stdin>:472: style: use of deprecated macro: .PD an.tmac:<stdin>:475: style: use of deprecated macro: .PD an.tmac:<stdin>:480: style: use of deprecated macro: .PD an.tmac:<stdin>:483: style: use of deprecated macro: .PD an.tmac:<stdin>:488: style: use of deprecated macro: .PD an.tmac:<stdin>:491: style: use of deprecated macro: .PD an.tmac:<stdin>:496: style: use of deprecated macro: .PD an.tmac:<stdin>:499: style: use of deprecated macro: .PD an.tmac:<stdin>:565: style: use of deprecated macro: .PD an.tmac:<stdin>:568: style: use of deprecated macro: .PD an.tmac:<stdin>:572: style: use of deprecated macro: .PD an.tmac:<stdin>:575: style: use of deprecated macro: .PD -.- Additionally (general): Abbreviations get a '\&' added after their final full stop (.) to mark them as such and not as an end of a sentence. There is no need to add a '\&' before a full stop (.) if it has a character before it!
--- nm.1 2024-12-27 11:39:49.317303972 +0000 +++ nm.1.new 2024-12-27 12:05:16.822809288 +0000 @@ -4,11 +4,12 @@ .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) -.if t .sp .5v +.if t .sp 0.5v .if n .sp .. .de Vb \" Begin verbatim text -.ft CW +,ie \\n(.g .ft CR +.el .ft CW .nf .ne \\$1 .. @@ -113,30 +114,34 @@ The symbol type. At least the following well, depending on the object file format. If lowercase, the symbol is usually local; if uppercase, the symbol is global (external). There are however a few lowercase symbols that are shown for special global -symbols (\f(CW\*(C`u\*(C'\fR, \f(CW\*(C`v\*(C'\fR and \f(CW\*(C`w\*(C'\fR). +symbols +(\f(CR\*(C`u\*(C'\fR, +\f(CR\*(C`v\*(C'\fR +and +\f(CR\*(C`w\*(C'\fR). .RS 4 .ie n .IP """A""" 4 -.el .IP \f(CWA\fR 4 +.el .IP \f(CRA\fR 4 .IX Item "A" The symbol's value is absolute, and will not be changed by further linking. .ie n .IP """B""" 4 -.el .IP \f(CWB\fR 4 +.el .IP \f(CRB\fR 4 .IX Item "B" .PD 0 .ie n .IP """b""" 4 -.el .IP \f(CWb\fR 4 +.el .IP \f(CRb\fR 4 .IX Item "b" .PD The symbol is in the BSS data section. This section typically contains zero-initialized or uninitialized data, although the exact behavior is system dependent. .ie n .IP """C""" 4 -.el .IP \f(CWC\fR 4 +.el .IP \f(CRC\fR 4 .IX Item "C" .PD 0 .ie n .IP """c""" 4 -.el .IP \f(CWc\fR 4 +.el .IP \f(CRc\fR 4 .IX Item "c" .PD The symbol is common. Common symbols are uninitialized data. When @@ -146,27 +151,27 @@ references. The lower case \fIc\fR character is used when the symbol is in a special section for small commons. .ie n .IP """D""" 4 -.el .IP \f(CWD\fR 4 +.el .IP \f(CRD\fR 4 .IX Item "D" .PD 0 .ie n .IP """d""" 4 -.el .IP \f(CWd\fR 4 +.el .IP \f(CRd\fR 4 .IX Item "d" .PD The symbol is in the initialized data section. .ie n .IP """G""" 4 -.el .IP \f(CWG\fR 4 +.el .IP \f(CRG\fR 4 .IX Item "G" .PD 0 .ie n .IP """g""" 4 -.el .IP \f(CWg\fR 4 +.el .IP \f(CRg\fR 4 .IX Item "g" .PD The symbol is in an initialized data section for small objects. Some object file formats permit more efficient access to small data objects, such as a global int variable as opposed to a large global array. .ie n .IP """i""" 4 -.el .IP \f(CWi\fR 4 +.el .IP \f(CRi\fR 4 .IX Item "i" For PE format files this indicates that the symbol is in a section specific to the implementation of DLLs. @@ -185,66 +190,66 @@ be used for global indirect function sym a second character then that will be used for local indirect function symbols. .ie n .IP """I""" 4 -.el .IP \f(CWI\fR 4 +.el .IP \f(CRI\fR 4 .IX Item "I" The symbol is an indirect reference to another symbol. .ie n .IP """N""" 4 -.el .IP \f(CWN\fR 4 +.el .IP \f(CRN\fR 4 .IX Item "N" The symbol is a debugging symbol. .ie n .IP """n""" 4 -.el .IP \f(CWn\fR 4 +.el .IP \f(CRn\fR 4 .IX Item "n" The symbol is in a non-data, non-code, non-debug read-only section. .ie n .IP """p""" 4 -.el .IP \f(CWp\fR 4 +.el .IP \f(CRp\fR 4 .IX Item "p" The symbol is in a stack unwind section. .ie n .IP """R""" 4 -.el .IP \f(CWR\fR 4 +.el .IP \f(CRR\fR 4 .IX Item "R" .PD 0 .ie n .IP """r""" 4 -.el .IP \f(CWr\fR 4 +.el .IP \f(CRr\fR 4 .IX Item "r" .PD The symbol is in a read only data section. .ie n .IP """S""" 4 -.el .IP \f(CWS\fR 4 +.el .IP \f(CRS\fR 4 .IX Item "S" .PD 0 .ie n .IP """s""" 4 -.el .IP \f(CWs\fR 4 +.el .IP \f(CRs\fR 4 .IX Item "s" .PD The symbol is in an uninitialized or zero-initialized data section for small objects. .ie n .IP """T""" 4 -.el .IP \f(CWT\fR 4 +.el .IP \f(CRT\fR 4 .IX Item "T" .PD 0 .ie n .IP """t""" 4 -.el .IP \f(CWt\fR 4 +.el .IP \f(CRt\fR 4 .IX Item "t" .PD The symbol is in the text (code) section. .ie n .IP """U""" 4 -.el .IP \f(CWU\fR 4 +.el .IP \f(CRU\fR 4 .IX Item "U" The symbol is undefined. .ie n .IP """u""" 4 -.el .IP \f(CWu\fR 4 +.el .IP \f(CRu\fR 4 .IX Item "u" The symbol is a unique global symbol. This is a GNU extension to the standard set of ELF symbol bindings. For such a symbol the dynamic linker will make sure that in the entire process there is just one symbol with this name and type in use. .ie n .IP """V""" 4 -.el .IP \f(CWV\fR 4 +.el .IP \f(CRV\fR 4 .IX Item "V" .PD 0 .ie n .IP """v""" 4 -.el .IP \f(CWv\fR 4 +.el .IP \f(CRv\fR 4 .IX Item "v" .PD The symbol is a weak object. When a weak defined symbol is linked with @@ -253,11 +258,11 @@ When a weak undefined symbol is linked a the value of the weak symbol becomes zero with no error. On some systems, uppercase indicates that a default value has been specified. .ie n .IP """W""" 4 -.el .IP \f(CWW\fR 4 +.el .IP \f(CRW\fR 4 .IX Item "W" .PD 0 .ie n .IP """w""" 4 -.el .IP \f(CWw\fR 4 +.el .IP \f(CRw\fR 4 .IX Item "w" .PD The symbol is a weak symbol that has not been specifically tagged as a @@ -268,18 +273,18 @@ the value of the symbol is determined in error. On some systems, uppercase indicates that a default value has been specified. .ie n .IP """\-""" 4 -.el .IP \f(CW\-\fR 4 +.el .IP \f(CR\-\fR 4 .IX Item "-" The symbol is a stabs symbol in an a.out object file. In this case, the next values printed are the stabs other field, the stabs desc field, and the stab type. Stabs symbols are used to hold debugging information. .ie n .IP """?""" 4 -.el .IP \f(CW?\fR 4 +.el .IP \f(CR?\fR 4 .IX Item "?" The symbol type is unknown, or object file format specific. .RE -.RS 4 -.RE +.\".RS 4 +.\".RE .IP \(bu 4 The symbol name. If a symbol has version information associated with it, then the version information is displayed as well. If the versioned @@ -300,7 +305,8 @@ equivalent. .IP \fB\-\-print\-file\-name\fR 4 .IX Item "--print-file-name" .PD -Precede each symbol by the name of the input file (or archive member) +Precede each symbol by the name of the input file +(or archive member) in which it was found, rather than identifying the input file once only, before all of its symbols. .IP \fB\-a\fR 4 @@ -313,17 +319,21 @@ Display all symbols, even debugger-only listed. .IP \fB\-B\fR 4 .IX Item "-B" -The same as \fB\-\-format=bsd\fR (for compatibility with the MIPS \fBnm\fR). +The same as \fB\-\-format=bsd\fR +(for compatibility with the MIPS \fBnm\fR). .IP \fB\-C\fR 4 .IX Item "-C" .PD 0 .IP \fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR 4 .IX Item "--demangle[=style]" .PD -Decode (\fIdemangle\fR) low-level symbol names into user-level names. +Decode +(\fIdemangle\fR) +low-level symbol names into user-level names. Besides removing any initial underscore prepended by the system, this -makes C++ function names readable. Different compilers have different -mangling styles. The optional demangling style argument can be used to +makes C++ function names readable. +Different compilers have different mangling styles. +The optional demangling style argument can be used to choose an appropriate demangling style for your compiler. .IP \fB\-\-no\-demangle\fR 4 .IX Item "--no-demangle" @@ -364,10 +374,13 @@ libraries. .IP \fB\-\-format=\fR\fIformat\fR 4 .IX Item "--format=format" .PD -Use the output format \fIformat\fR, which can be \f(CW\*(C`bsd\*(C'\fR, -\&\f(CW\*(C`sysv\*(C'\fR, \f(CW\*(C`posix\*(C'\fR or \f(CW\*(C`just\-symbols\*(C'\fR. The default is \f(CW\*(C`bsd\*(C'\fR. -Only the first character of \fIformat\fR is significant; it can be -either upper or lower case. +Use the output format \fIformat\fR, which can be \f(CR\*(C`bsd\*(C'\fR, +\&\f(CR\*(C`sysv\*(C'\fR, +\f(CR\*(C`posix\*(C'\fR +or \f(CR\*(C`just\-symbols\*(C'\fR. +The default is \f(CR\*(C`bsd\*(C'\fR. +Only the first character of \fIformat\fR is significant; +it can be either upper or lower case. .IP \fB\-g\fR 4 .IX Item "-g" .PD 0 @@ -385,12 +398,13 @@ Show a summary of the options to \fBnm\f .IP \fB\-\-ifunc\-chars=\fR\fICHARS\fR 4 .IX Item "--ifunc-chars=CHARS" When display GNU indirect function symbols \fBnm\fR will default -to using the \f(CW\*(C`i\*(C'\fR character for both local indirect functions and +to using the \f(CR\*(C`i\*(C'\fR character for both local indirect functions and global indirect functions. The \fB\-\-ifunc\-chars\fR option allows -the user to specify a string containing one or two characters. The -first character will be used for global indirect function symbols and -the second character, if present, will be used for local indirect -function symbols. +the user to specify a string containing one or two characters. +The first character will be used for global indirect function symbols +and the second character, +if present, +will be used for local indirect function symbols. .IP \fBj\fR 4 .IX Item "j" The same as \fB\-\-format=just\-symbols\fR. @@ -408,12 +422,15 @@ information can be found, print it after .IP \fB\-\-inlines\fR 4 .IX Item "--inlines" When option \fB\-l\fR is active, if the address belongs to a -function that was inlined, then this option causes the source +function that was inlined, then this option causes the source information for all enclosing scopes back to the first non-inlined -function to be printed as well. For example, if \f(CW\*(C`main\*(C'\fR inlines -\&\f(CW\*(C`callee1\*(C'\fR which inlines \f(CW\*(C`callee2\*(C'\fR, and address is from -\&\f(CW\*(C`callee2\*(C'\fR, the source information for \f(CW\*(C`callee1\*(C'\fR and \f(CW\*(C`main\*(C'\fR -will also be printed. +function to be printed as well. +For example, +if \f(CR\*(C`main\*(C'\fR inlines \&\f(CR\*(C`callee1\*(C'\fR +which inlines \f(CR\*(C`callee2\*(C'\fR, +and address is from \&\f(CR\*(C`callee2\*(C'\fR, +the source information for \f(CR\*(C`callee1\*(C'\fR +and \f(CR\*(C`main\*(C'\fR will also be printed. .IP \fB\-n\fR 4 .IX Item "-n" .PD 0 @@ -446,18 +463,21 @@ Equivalent to \fB\-f posix\fR. .IP \fB\-\-reverse\-sort\fR 4 .IX Item "--reverse-sort" .PD -Reverse the order of the sort (whether numeric or alphabetic); let the -last come first. +Reverse the order of the sort +(whether numeric or alphabetic); +let the last come first. .IP \fB\-S\fR 4 .IX Item "-S" .PD 0 .IP \fB\-\-print\-size\fR 4 .IX Item "--print-size" .PD -Print both value and size of defined symbols for the \f(CW\*(C`bsd\*(C'\fR output style. -This option has no effect for object formats that do not record symbol -sizes, unless \fB\-\-size\-sort\fR is also used in which case a -calculated size is displayed. +Print both value +and size of defined symbols for the \f(CR\*(C`bsd\*(C'\fR output style. +This option has no effect for object formats +that do not record symbol sizes, +unless \fB\-\-size\-sort\fR is also used +in which case a calculated size is displayed. .IP \fB\-s\fR 4 .IX Item "-s" .PD 0 @@ -481,7 +501,8 @@ Use \fIradix\fR as the radix for printin .IP \fB\-\-undefined\-only\fR 4 .IX Item "--undefined-only" .PD -Display only undefined symbols (those external to each object file). +Display only undefined symbols +(those external to each object file). By default both defined and undefined symbols are displayed. .IP \fB\-U\fR 4 .IX Item "-U" @@ -528,9 +549,9 @@ sufficient to just copy the newest one. Sort symbols by size. For ELF objects symbol sizes are read from the ELF, for other object types the symbol sizes are computed as the difference between the value of the symbol and the value of the symbol -with the next higher value. If the \f(CW\*(C`bsd\*(C'\fR output format is used +with the next higher value. If the \f(CR\*(C`bsd\*(C'\fR output format is used the size of the symbol is printed, rather than the value, and -\&\fB\-S\fR must be used in order both size and value to be printed. +\fB\-S\fR must be used in order both size and value to be printed. .Sp Note \- this option does not work if \fB\-\-undefined\-only\fR has been enabled as undefined symbols have no size. @@ -549,10 +570,14 @@ default since they are not part of the b .IP \fB\-\-unicode=\fR\fI[default|invalid|locale|escape|hex|highlight]\fR 4 .IX Item "--unicode=[default|invalid|locale|escape|hex|highlight]" Controls the display of UTF\-8 encoded multibyte characters in strings. -The default (\fB\-\-unicode=default\fR) is to give them no special -treatment. The \fB\-\-unicode=locale\fR option displays the sequence -in the current locale, which may or may not support them. The options -\&\fB\-\-unicode=hex\fR and \fB\-\-unicode=invalid\fR display them as +The default +(\fB\-\-unicode=default\fR) +is to give them no special treatment. +The \fB\-\-unicode=locale\fR option displays the sequence in the current +locale, +which may or may not support them. +The options \fB\-\-unicode=hex\fR +and \fB\-\-unicode=invalid\fR display them as hex byte sequences enclosed by either angle brackets or curly braces. .Sp The \fB\-\-unicode=escape\fR option displays them as escape sequences @@ -598,10 +623,14 @@ with a backslash. The \fIfile\fR may it @\fIfile\fR options; any such options will be processed recursively. .SH "SEE ALSO" .IX Header "SEE ALSO" -\&\fBar\fR\|(1), \fBobjdump\fR\|(1), \fBranlib\fR\|(1), and the Info entries for \fIbinutils\fR. +\fBar\fR\|(1), +\fBobjdump\fR\|(1), +\fBranlib\fR\|(1), +and the Info entries for +\fIbinutils\fR. .SH COPYRIGHT .IX Header "COPYRIGHT" -Copyright (c) 1991\-2024 Free Software Foundation, Inc. +Copyright (c) 1991\(en2024 Free Software Foundation, Inc. .PP Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3