---
name: "arm-none-eabi-size"
section: "1"
platform: "linux"
package: "arm-none-eabi-binutils"
version: "2.47-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/arm-none-eabi-size"
---

# arm-none-eabi-size(1)

list section sizes and total size of binary files

## NAME

size - list section sizes and total size of binary files

## SYNOPSIS

size \[**-A**\|**-B**\|**-G**\|**--format=***compatibility*\]\
      \[**--help**\]\
      \[**-d**\|**-o**\|**-x**\|**--radix=***number*\]\
      \[**--common**\]\
      \[**-t**\|**--totals**\]\
      \[**--target=***bfdname*\] \[**-V**\|**--version**\]\
      \[**-f**\]\
      \[*objfile*...\]

## DESCRIPTION

The GNU **size** utility lists the section sizes and the total size for each of the binary files *objfile* on its argument list. By default, one line of output is generated for each file or each module if the file is an archive.

*objfile*... are the files to be examined.  If none are specified, the file `"a.out"` will be used instead.

## OPTIONS

The command-line options have the following meanings:

- **-A**

  - **-B**

  - **-G**

  - **--format=***compatibility*

  Using one of these options, you can choose whether the output from GNU **size** resembles output from System V **size** (using **-A**, or **--format=sysv**), or Berkeley **size** (using **-B**, or **--format=berkeley**).  The default is the one-line format similar to Berkeley's.  Alternatively, you can choose the GNU format output (using **-G**, or **--format=gnu**), this is similar to Berkeley's output format, but sizes are counted differently.

  Here is an example of the Berkeley (default) format of output from **size**:

  ```
          $ size --format=Berkeley ranlib size
             text    data     bss     dec     hex filename
           294880   81920   11592  388392   5ed28 ranlib
           294880   81920   11888  388688   5ee50 size
  ```

  The Berkeley style output counts read only data in the `"text"` column, not in the `"data"` column, the `"dec"` and `"hex"` columns both display the sum of the `"text"`, `"data"`, and `"bss"` columns in decimal and hexadecimal respectively.

  The GNU format counts read only data in the `"data"` column, not the `"text"` column, and only displays the sum of the `"text"`, `"data"`, and `"bss"` columns once, in the `"total"` column. The **--radix** option can be used to change the number base for all columns.  Here is the same data displayed with GNU conventions:

  ```
          $ size --format=GNU ranlib size
                text       data        bss      total filename
              279880      96920      11592     388392 ranlib
              279880      96920      11888     388688 size
  ```

  This is the same data, but displayed closer to System V conventions:

  ```
          $ size --format=SysV ranlib size
          ranlib  :
          section         size         addr
          .text         294880         8192
          .data          81920       303104
          .bss           11592       385024
          Total         388392

          size  :
          section         size         addr
          .text         294880         8192
          .data          81920       303104
          .bss           11888       385024
          Total         388688
  ```

- **--help**

  - **-h**

  - **-H**

  - **-?**

  Show a summary of acceptable arguments and options.

- **-d**

  - **-o**

  - **-x**

  - **--radix=***number*

  Using one of these options, you can control whether the size of each section is given in decimal (**-d**, or **--radix=10**); octal (**-o**, or **--radix=8**); or hexadecimal (**-x**, or **--radix=16**).  In **--radix=***number*, only the three values (8, 10, 16) are supported.  The total size is always given in two radices; decimal and hexadecimal for **-d** or **-x** output, or octal and hexadecimal if you're using **-o**.

- **--common**

  Print total size of common symbols in each file.  When using Berkeley or GNU format these are included in the bss size.

- **-t**

  - **--totals**

  Show totals of all objects listed (Berkeley or GNU format mode only).

- **--target=***bfdname*

  Specify that the object-code format for *objfile* is *bfdname*.  This option may not be necessary; **size** can automatically recognize many formats.

- **-v**

  - **-V**

  - **--version**

  Display the version number of **size**.

- **-f**

  Ignored.  This option is used by other versions of the **size** program, but it is not supported by the GNU Binutils version.

- **@***file*

  Read command-line options from *file*.  The options read are inserted in place of the original @*file* option.  If *file* does not exist, or cannot be read, then the option will be treated literally, and not removed.

  Options in *file* are separated by whitespace.  A whitespace character may be included in an option by surrounding the entire option in either single or double quotes.  Any character (including a backslash) may be included by prefixing the character to be included with a backslash.  The *file* may itself contain additional @*file* options; any such options will be processed recursively.

## SEE ALSO

[**ar**(1)](/ar/1.md), [**objdump**(1)](/objdump/1.md), [**readelf**(1)](/readelf/1.md), and the Info entries for *binutils*.

## COPYRIGHT

Copyright (c) 1991-2026 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts.  A copy of the license is included in the section entitled "GNU Free Documentation License".
