aboutsummaryrefslogtreecommitdiffstats
path: root/appendixa/binutils-desc.xml
blob: 6211265cfa72523178921ba9245fe6ba4f4ed1e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<sect2>
<title>Description</title>

<para>
The Binutils package contains the ld, as, ar, nm, objcopy, objdump,
ranlib, size, strings, strip, c++filt, addr2line and nlmconv programs
</para>

</sect2>

<sect2><title>Description</title>

<sect3><title>ld</title>

<para>
ld combines a number of object and  archive  files,  relocates  their data 
and ties up symbol references. Often the last step in building a new compiled 
program to run  is  a call to ld.
</para>

</sect3>

<sect3><title>as</title>

<para>
as is primarily intended to assemble the output of the GNU C compiler gcc 
for use by the linker ld.
</para>

</sect3>

<sect3><title>ar</title>

<para>
The ar program creates, modifies, and extracts from archives. An archive is 
a single file holding a collection of other files in a structure that makes 
it  possible to retrieve the original individual files (called members of 
the archive).
</para>

</sect3>

<sect3><title>nm</title>

<para>
nm lists the symbols from object files.
</para>

</sect3>

<sect3><title>objcopy</title>

<para>
objcopy utility copies the contents of an object file to another. objcopy 
uses the GNU BFD Library to read and write the object files. It can write 
the destination object file in a format different from that of the source
object file.  
</para>

</sect3>

<sect3><title>objdump</title>

<para>
objdump displays information about one or more object files. The options 
control what particular information to display. This information is mostly 
useful to programmers who are working on the compilation tools, as opposed to
programmers who just want their program to compile and work.
</para>

</sect3>

<sect3><title>ranlib</title>

<para>
ranlib generates an index to the contents of an archive, and stores it in 
the archive.  The index lists each symbol defined by a member of an archive 
that is a relocatable object file.
</para>

</sect3>

<sect3><title>size</title>

<para>
size lists the section sizes --and the total size-- for each of the object 
files objfile in its argument  list. By default, one line of output is 
generated for each object file or each module in an archive.
</para>

</sect3>

<sect3><title>strings</title>

<para>
For each  file  given, strings prints the printable character sequences 
that are at least  4  characters  long (or the number specified with an
option to the program) and are followed by an unprintable character. By 
default, it only prints the strings from the initialized and loaded 
sections of object files; for other types of files, it prints the strings 
from the whole file.
</para>

<para>
strings  is  mainly useful for determining the contents of non-text files.
</para>

</sect3>

<sect3><title>strip</title>

<para>
strip discards all or specific symbols from object files. The list of 
object files may include archives. At least one object file must be
given. strip modifies the files named in its argument, rather than writing 
modified copies under different names.
</para>

</sect3>

<sect3><title>c++filt</title>

<para>
The C++ language provides function overloading, which means that you can 
write many functions with the same name (providing each takes parameters 
of different types).  All C++ function names are encoded into a low-level 
assembly label (this process is known as mangling). The c++filt program 
does the inverse mapping: it decodes (demangles) low-level names into 
user-level names so that the linker can keep these overloaded functions 
from clashing.
</para>

</sect3>

<sect3><title>addr2line</title>

<para>
addr2line translates program addresses into file names and line numbers. 
Given an address and an executable, it uses the  debugging information in 
the executable to figure out which file name and line number are associated 
with a given address.
</para>

</sect3>

<sect3><title>nlmconv</title>

<para>
nlmconv converts relocatable object files into the NetWare Loadable Module 
files, optionally reading header files for NLM header information.
</para>

</sect3>

</sect2>