xref: /freebsd/contrib/elftoolchain/size/size.1 (revision 38d120bc13ac1de5b739b67b87016b9122149374)
1.\" Copyright (c) 2007 S.Sam Arun Raj
2.\" Copyright (c) 2008,2011 Joseph Koshy
3.\" All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
9.\"    notice, this list of conditions and the following disclaimer.
10.\" 2. Redistributions in binary form must reproduce the above copyright
11.\"    notice, this list of conditions and the following disclaimer in the
12.\"    documentation and/or other materials provided with the distribution.
13.\"
14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24.\" SUCH DAMAGE.
25.\"
26.\" $Id: size.1 2043 2011-10-23 14:49:16Z jkoshy $
27.\"
28.Dd August 25, 2011
29.Dt SIZE 1
30.Os
31.Sh NAME
32.Nm size
33.Nd "display section sizes and total size of ELF objects"
34.Sh SYNOPSIS
35.Nm
36.Op Fl -format= Ns Ar format
37.Op Fl -help
38.Op Fl -radix= Ns Ar radix
39.Op Fl -totals
40.Op Fl -version
41.Op Fl ABVdhotx
42.Op Ar
43.Sh DESCRIPTION
44The
45.Nm
46utility
47lists the sizes of ELF sections, and optionally the total size, for
48each input
49.Ar file
50specified on the command line.
51The
52.Nm
53utility can operate on ELF objects, on
54.Xr ar 1
55archives containing ELF objects, and on core dumps.
56If no file name is specified on the command-line,
57.Pa a.out
58is assumed.
59.Pp
60The
61.Nm
62utility recognized the following options:
63.Bl -tag -width indent
64.It Fl -format= Ns Ar format
65Display output using the format specified by argument
66.Ar format .
67Supported values for this argument are:
68.Sq berkeley
69and
70.Sq sysv .
71The default output format is
72.Sq berkeley .
73See
74.Sx Display Formats
75below for more information.
76.It Fl -help
77Display a help message and exit.
78.It Fl -radix= Ns Ar radix
79Display numeric values using the radix specified by argument
80.Ar radix .
81Supported values for
82.Ar radix
83are 8, 10 and 16.
84The default radix is 10.
85.It Fl -totals
86Shows cumulative totals of section sizes from all objects.
87This option is ignored for System V style output.
88.It Fl -version
89Display a version identifier and exit.
90.It Fl A
91Equivalent to specifying option
92.Fl -format= Ns Ar sysv .
93.It Fl B
94Equivalent to specifying option
95.Fl -format= Ns Ar berkeley .
96.It Fl V
97Equivalent to specifying option
98.Fl -version .
99.It Fl d
100Equivalent to specifying option
101.Fl -radix= Ns Ar 10 .
102.It Fl h
103Equivalent to specifying option
104.Fl -help .
105.It Fl o
106Equivalent to specifying option
107.Fl -radix= Ns Ar 8 .
108.It Fl t
109Equivalent to specifying option
110.Fl -totals .
111.It Fl x
112Equivalent to specifying option
113.Fl -radix= Ns Ar 16 .
114.El
115.Sh DISPLAY FORMATS
116.Ss Berkeley Style Output
117If
118.Sq berkeley
119style output is in effect, an initial header line naming fields will
120be output, followed by one line of output for each ELF object specified
121on the command line or found in an archive.
122.Pp
123Each line will contain the following whitespace separated fields
124in order:
125.Bl -enum -compact
126.It
127The size of the text segment in the object.
128.It
129The size of the data segment in the object.
130.It
131The size of the
132.Sq bss
133segment in the object.
134.It
135The total size of the object in either decimal or octal.
136Decimal output is used if the specified output radix for numeric values
137is 10 or 16.
138Octal output is used if the radix being used for numeric values
139is 8.
140.It
141The total size of the object in hexadecimal.
142.It
143The file name of the object.
144.El
145.Pp
146If option
147.Fl -totals
148was specified, an additional line in the same format as above will be
149output at the end containing the sum of the respective fields.
150The file name field for the line will contain the string
151.Sq (TOTALS) .
152.Ss System V Style Output
153If System V style output is selected,
154.Nm
155will output the following information for each object:
156.Bl -enum -compact
157.It
158The name of the object followed by a colon.
159.It
160A header line containing the names of fields of subsequent lines.
161.It
162One line per section present in the object.
163Each line has three fields:
164.Bl -enum -compact
165.It
166The name of the section.
167.It
168Its size, in the selected radix for numeric values.
169.It
170The address associated with the section, in the selected numeric radix.
171.El
172.It
173A line whose section name field contains the string
174.Sq Total
175and whose size field contains the sum of all reported section sizes.
176.El
177.Sh EXIT STATUS
178.Ex -std
179.Sh EXAMPLES
180To display the section sizes for
181.Pa /bin/ls
182use:
183.Bd -literal
184$ size /bin/ls
185text       data       bss        dec        hex        filename
18620975      540        392        21907      5593        /bin/ls
187.Ed
188.Pp
189To display sizes and total for
190.Pa /bin/ls
191and
192.Pa /bin/dd
193in hexadecimal, use:
194.Bd -literal
195$ size -tx /bin/ls /bin/dd
196text       data       bss        dec        hex        filename
1970x51ef     0x21c      0x188      21907      5593        /bin/ls
1980x3df5     0x170      0x200      16741      4165        /bin/dd
1990x8fe4     0x38c      0x388      38648      96f8       (TOTALS)
200.Ed
201.Pp
202To display section sizes for
203.Pa /bin/ls
204in System V format use:
205.Bd -literal
206$ size -A /bin/ls
207/bin/ls  :
208section            size       addr
209\&.interp            21         4194704
210\&.note.ABI-tag      24         4194728
211\&.hash              624        4194752
212\&.dynsym            2088       4195376
213\&.dynstr            810        4197464
214\&.rela.dyn          120        4198280
215\&.rela.plt          1656       4198400
216\&.init              19         4200056
217\&.plt               1120       4200076
218\&.text              15224      4201200
219\&.fini              14         4216424
220\&.rodata            1472       4216448
221\&.data              80         5267456
222\&.eh_frame          1624       5267536
223\&.dynamic           384        5269160
224\&.ctors             16         5269544
225\&.dtors             16         5269560
226\&.jcr               8          5269576
227\&.got               576        5269584
228\&.bss               528        5270176
229\&.comment           686        0
230Total              27110
231.Ed
232.Sh SEE ALSO
233.Xr ar 1 ,
234.Xr nm 1 ,
235.Xr objdump 1 ,
236.Xr readelf 1 ,
237.Xr strings 1 ,
238.Xr elf 3 ,
239.Xr gelf 3
240.Rs
241.%A "AT&T Unix Systems Labs"
242.%T "System V Application Binary Interface"
243.%O http://www.sco.com/developers/gabi/
244.Re
245.Sh HISTORY
246The
247.Nm
248utility first appeared in
249.At v6 .
250.Sh AUTHORS
251.An -nosplit
252The
253.Nm
254utility was re-written by
255.An S. Sam Arun Raj Aq samarunraj@gmail.com
256This manual page was written by
257.An S. Sam Arun Raj Aq samarunraj@gmail.com
258