binutils-gdb/binutils/testsuite/binutils-all
Andrew Burgess 46cbf38dc3 binutils: Add new GNU format mode to size utility
The size tool currently defaults to berkeley format output.  However,
this output format has a weird quirk, read-only data is counted
against the text sections, not the data sections.

The code offers no real explanation for why this is, but I'm reluctant
to change it for two reasons, first, I'm assuming it probably makes
sense in some case that I'm not thinking of (maybe a target where
sections are not marked executable, and so there's no distinction
between read-only data and code), and second, the code has been this
way for at least 20 years, I worry that changing things now might
cause more confusion than it solves.

This commit then introduces a new output format for the size tool,
this new format displays the results in a similar manor to the
berkeley format, but counts read-only data in the data column, and
only executable sections are counted in the text column.

Given that this is a brand new output format I've gone ahead and
simplified things a little, while the berkeley format displays the
total twice, once in decimal and once in hex, the new display format
just displays the total in decimal.  Of course, there's still the
'--radix' option which can be used to display all the results in
hexadecimal or octal.

I've called the new format 'gnu', so '--format=gnu' or '-G' are used
to access it.

binutils/ChangeLog:

	* size.c (berkeley_format): Delete.
	(enum output_format): New enum.
	(selected_output_format): New variable.
	(usage): Update to mention GNU format.
	(main): Update to extract options, and select format as needed.
	Handle GNU format where needed.
	(berkeley_sum): Renamed to...
	(berkeley_or_gnu_sum): ...this, and updated to handle both formats.
	(berkeley_format): Renamed to...
	(berkeley_or_gnu_format): ...this, and updated to handle both
	formats.
	(print_sizes): Handle GNU format.
	* doc/binutils.texi (size): Document new GNU format.
	* testsuite/binutils-all/size.exp: Add test of extended
	functionality.
	* NEWS: Mention new functionality.
2019-02-08 11:07:24 +00:00
..
aarch64 Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
arc Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
arm Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
bfin Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
hppa Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
i386 Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
m68k Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
mips Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
nfp Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
vax Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
wasm32 Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
windres Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
x86-64 Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
add-empty-section.d Consolidate run_dump_test 2018-09-15 16:56:55 +09:30
add-section.d Consolidate run_dump_test 2018-09-15 16:56:55 +09:30
add-symbol.d Consolidate run_dump_test 2018-09-15 16:56:55 +09:30
alias-2.def
alias.def
ar.exp Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
bintest.s Enhance objdump's --disassemble switch so that it can now take an optional parameter, specifying the starting symbol for disassembly. Disassembly will continue from this symbol up to the next symbol. 2018-11-07 18:07:36 +00:00
common-1.s Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
common-1a.d Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
common-1b.d Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
common-1c.d Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
common-1d.d Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
common-1e.d Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
common-1f.d Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
common-2.s Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
common-2a.d Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
common-2b.d Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
common-2c.d Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
common-2d.d Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
common-2e.d Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
common-2f.d Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
compress.exp Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
copy-1.d
copy-1.s
copy-2.d binutils run_dump_test rename not-target and not-skip 2018-09-15 16:24:18 +09:30
copy-3.d binutils run_dump_test rename not-target and not-skip 2018-09-15 16:24:18 +09:30
copy-4.d binutils run_dump_test rename not-target and not-skip 2018-09-15 16:24:18 +09:30
copy-5.d Prevent the --keep-global-symbol and --globalize-symbol options from being used together. 2018-10-11 11:38:10 +01:00
copy-6.d Add testcase for PR/24065. 2019-01-08 14:58:03 +00:00
copytest.s
cxxfilt.exp cxxfilt test failures 2019-01-09 11:22:50 +10:30
data-sections.s objcopy/strip: Allow section patterns starting with '!'. 2016-07-14 11:32:48 +01:00
debug_str.d Fixes a problem with the BFD library running out of memory because it mistakenly 2014-04-30 17:04:04 +01:00
debug_str.s Fixes a problem with the BFD library running out of memory because it mistakenly 2014-04-30 17:04:04 +01:00
debuglink.s Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
disasm.s Update objdump's --disassemble=<symbol> feature so that if <symbol> is a function, the entire function will be disassembled, regardless of the presence of interveening symbols. 2019-01-17 15:29:43 +00:00
dlltool.exp Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
dumptest.s
dw2-1.S Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
dw2-1.W readelf ngettext fixes 2017-11-07 17:01:16 +10:30
dw2-2.S Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
dw2-3.rS Handle ELF compressed header alignment correctly by setting up the section alignment correctly for the Elf32_Chdr or Elf64_Chdr type and respect the ch_addralign field when decompressing the section data. 2018-11-27 11:59:10 +00:00
dw2-3.rt Handle ELF compressed header alignment correctly by setting up the section alignment correctly for the Elf32_Chdr or Elf64_Chdr type and respect the ch_addralign field when decompressing the section data. 2018-11-27 11:59:10 +00:00
dw2-3.S Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
dw2-3.W readelf ngettext fixes 2017-11-07 17:01:16 +10:30
dw2-3gabi.W readelf ngettext fixes 2017-11-07 17:01:16 +10:30
dw2-compressed.S Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
dw2-decodedline-1.S Remove support for the (deprecated) openrisc and or32 configurations and replace 2014-04-22 15:57:47 +01:00
dw2-decodedline.S * binutils-all/dw2-decodedline.S: Always have whitespace before 2012-02-14 01:00:50 +00:00
dw2-empty.S Don't compress empty debug section 2012-07-03 16:06:34 +00:00
dw2-ranges.S Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
dw2-ranges.W objdump: Handle 32-bit base address in debug_ranges / debug_loc. 2015-11-30 13:28:26 +00:00
dw5.S Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
dw5.W binutils --dwarf=decodedline: Add display of is_stmt flag 2018-09-20 19:02:50 +02:00
dwarf-attributes.S Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
dwarf-attributes.W Display more information when decoding DW_AT_endianity, DW_AT_decimal_sign, DW_AT_defaulted and DW_AT_discr_list DWARF attributes. 2017-10-11 12:02:51 +01:00
dwo.s Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
elfedit-1.d binutils run_dump_test rename not-target and not-skip 2018-09-15 16:24:18 +09:30
elfedit-2.d [ARM] FDPIC: Update testsuite so that many tests pass with arm*-uclinuxfdpiceabi. 2018-04-25 21:13:14 +00:00
elfedit-3.d [ARM] FDPIC: Update testsuite so that many tests pass with arm*-uclinuxfdpiceabi. 2018-04-25 21:13:14 +00:00
elfedit-4.d bfd/ 2012-04-03 16:01:38 +00:00
elfedit-5.d Add EM_386/EM_IAMCU support to elfedit.c 2015-05-11 09:57:21 -07:00
elfedit.exp Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
empty Allow zero length archive elements. 2016-03-07 17:29:25 +00:00
empty-file
empty.s
exclude-1.s
exclude-1a.d
exclude-1b.d
fastcall.def
group-2.s
group-3.s
group-4.s
group-5.d Andes Technology has good news for you, we plan to update the nds32 port of binutils on upstream! 2018-09-20 13:32:58 +01:00
group-5.s
group-6.d Remove the group section if all members are removed. 2011-09-16 04:23:19 +00:00
group-6.s Remove the group section if all members are removed. 2011-09-16 04:23:19 +00:00
group-7.s PR22836, "-r -s" doesn't work with -g3 using GCC 7 2018-02-13 22:55:49 +10:30
group-7a.d Remove run_dump_test support for objcopy as a dump program 2018-09-15 16:24:18 +09:30
group-7b.d Remove run_dump_test support for objcopy as a dump program 2018-09-15 16:24:18 +09:30
group-7c.d Remove run_dump_test support for objcopy as a dump program 2018-09-15 16:24:18 +09:30
group.s
libdw2-compressed.out Add a dw2-3.S test 2015-04-04 07:34:25 -07:00
libdw2-compressedgabi.out readelf ngettext fixes 2017-11-07 17:01:16 +10:30
libdw2.out Add a dw2-3.S test 2015-04-04 07:34:25 -07:00
link-order.s
linkdebug.s Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
localize-hidden-1.d Fix the evaluation of RL78 complex relocs, by making immediate values be computed relative to a new absolute symbol. 2015-07-24 16:44:27 +01:00
localize-hidden-1.s
localize-hidden-2.d
localize-hidden-2.s
locview-1.s LVU: dump loclists with locviews 2017-09-22 17:05:51 -03:00
locview-2.s LVU: dump loclists with locviews 2017-09-22 17:05:51 -03:00
mbind1.s Support ELF SHF_GNU_MBIND and PT_GNU_MBIND_XXX 2017-04-04 09:06:04 -07:00
needed-by-reloc.s
nm-1.s * binutils-all/nm.exp: --size-sort test: Add more ELF-like 2013-08-22 11:29:43 +00:00
nm-elf-1.s binutils/ 2013-08-19 15:08:52 +00:00
nm-ver.s Add the ability for nm to display symbol version information. 2016-11-11 11:49:45 +00:00
nm.exp Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
note-1.d Consolidate run_dump_test 2018-09-15 16:56:55 +09:30
note-2-32.d Add support for v3 binary annotation notes. 2018-01-03 10:30:07 +00:00
note-2-32.s Add support for v3 binary annotation notes. 2018-01-03 10:30:07 +00:00
note-2-64.d binutils run_dump_test rename not-target and not-skip 2018-09-15 16:24:18 +09:30
note-2-64.s Add support for v3 binary annotation notes. 2018-01-03 10:30:07 +00:00
note-3-32.d Add support for v3 binary annotation notes. 2018-01-03 10:30:07 +00:00
note-3-32.s Add support for v3 binary annotation notes. 2018-01-03 10:30:07 +00:00
note-3-64.d Add support for v3 binary annotation notes. 2018-01-03 10:30:07 +00:00
note-3-64.s Add support for v3 binary annotation notes. 2018-01-03 10:30:07 +00:00
note-3.32.s Add test of V2 GNU build attribute notes. 2017-08-17 14:51:31 +01:00
note-4-32.d Improve readelf's selection of a file start symbol when displaying a gnu build attribute. 2018-03-23 12:20:03 +00:00
note-4-32.s Improve readelf's selection of a file start symbol when displaying a gnu build attribute. 2018-03-23 12:20:03 +00:00
note-4-64.d Add support for v3 binary annotation notes. 2018-01-03 10:30:07 +00:00
note-4-64.s Improve readelf's selection of a file start symbol when displaying a gnu build attribute. 2018-03-23 12:20:03 +00:00
note-5.d Extend the assembler so that it can automatically generate GNU Build attribute notes if none are present in the input files. 2018-04-26 15:12:42 +01:00
note-5.s Extend the assembler so that it can automatically generate GNU Build attribute notes if none are present in the input files. 2018-04-26 15:12:42 +01:00
objcopy.exp Add testcase for PR/24065. 2019-01-08 14:58:03 +00:00
objdump.exp Update objdump's --disassemble=<symbol> feature so that if <symbol> is a function, the entire function will be disassembled, regardless of the presence of interveening symbols. 2019-01-17 15:29:43 +00:00
objdump.s
objdump.W readelf ngettext fixes 2017-11-07 17:01:16 +10:30
objdump.Wk Add support to readelf and objdump for following links to separate debug information files. 2017-11-15 11:34:03 +00:00
objdump.WK2 Add support to readelf and objdump for following links to separate debug information files. 2017-11-15 11:34:03 +00:00
objdump.WL binutils --dwarf=decodedline: Add display of is_stmt flag 2018-09-20 19:02:50 +02:00
only-section-01.d objcopy/strip: Allow section patterns starting with '!'. 2016-07-14 11:32:48 +01:00
pr18374.s Fix PR18374 by making readelf and objdump ignore end-of-list markers in the .debug_loc section if there are relocations against them. 2015-05-15 11:24:33 +01:00
pr19020.in Don't use the output section size to copy input section 2015-09-29 13:31:57 -07:00
pr19020a.d Don't use the output section size to copy input section 2015-09-29 13:31:57 -07:00
pr19020b.d Don't use the output section size to copy input section 2015-09-29 13:31:57 -07:00
pr19547.c Clear HAS_RELOC if there are no relocations 2016-02-02 03:30:48 -08:00
pr23633.d Consolidate run_dump_test 2018-09-15 16:56:55 +09:30
pr23633.list Add a testcase for PR binutils/23633 2018-09-13 09:09:15 -07:00
pr23633.s Add a testcase for PR binutils/23633 2018-09-13 09:09:15 -07:00
readelf.exp Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
readelf.h
readelf.k Add support to readelf and objdump for following links to separate debug information files. 2017-11-15 11:34:03 +00:00
readelf.k2 Add ability to follow dwo links to readelf/objdump. 2017-11-21 13:12:04 +00:00
readelf.locview-1 LVU: dump loclists with locviews 2017-09-22 17:05:51 -03:00
readelf.locview-2 LVU: dump loclists with locviews 2017-09-22 17:05:51 -03:00
readelf.n Display unknown notes. Decode NT_GNU_HWCAP notes. 2016-10-17 15:29:43 +01:00
readelf.pr18374 Fix PR18374 by making readelf and objdump ignore end-of-list markers in the .debug_loc section if there are relocations against them. 2015-05-15 11:24:33 +01:00
readelf.r readelf ngettext fixes 2017-11-07 17:01:16 +10:30
readelf.r-64 readelf ngettext fixes 2017-11-07 17:01:16 +10:30
readelf.s Enhance objdump's --disassemble switch so that it can now take an optional parameter, specifying the starting symbol for disassembly. Disassembly will continue from this symbol up to the next symbol. 2018-11-07 18:07:36 +00:00
readelf.s-64 binutils: Adjusted tests for .note.gnu.property section 2018-08-31 04:38:25 -07:00
readelf.ss Enhance objdump's --disassemble switch so that it can now take an optional parameter, specifying the starting symbol for disassembly. Disassembly will continue from this symbol up to the next symbol. 2018-11-07 18:07:36 +00:00
readelf.ss-64 Enhance objdump's --disassemble switch so that it can now take an optional parameter, specifying the starting symbol for disassembly. Disassembly will continue from this symbol up to the next symbol. 2018-11-07 18:07:36 +00:00
readelf.ss-mips Enhance objdump's --disassemble switch so that it can now take an optional parameter, specifying the starting symbol for disassembly. Disassembly will continue from this symbol up to the next symbol. 2018-11-07 18:07:36 +00:00
readelf.ss-tmips Enhance objdump's --disassemble switch so that it can now take an optional parameter, specifying the starting symbol for disassembly. Disassembly will continue from this symbol up to the next symbol. 2018-11-07 18:07:36 +00:00
readelf.wa Display null bytes in DWARF debug info 2012-08-02 13:42:59 +00:00
readelf.z Add --decompress option to readelf to decompress sections before they are dumped. 2015-05-15 17:16:31 +01:00
remove-relocs-01.d Support objcopy --remove-section=.relaFOO 2018-09-17 23:31:18 +09:30
remove-relocs-01.s Use address sized relocs in remove-relocs-01.s 2016-07-15 17:02:20 +09:30
remove-relocs-02.d objcopy/strip: Add option --remove-relocations=SECTIONPATTERN 2016-07-14 11:34:10 +01:00
remove-relocs-03.d objcopy/strip: Add option --remove-relocations=SECTIONPATTERN 2016-07-14 11:34:10 +01:00
remove-relocs-04.d Support objcopy --remove-section=.relaFOO 2018-09-17 23:31:18 +09:30
remove-relocs-05.d Support objcopy --remove-section=.relaFOO 2018-09-17 23:31:18 +09:30
remove-relocs-06.d Support objcopy --remove-section=.relaFOO 2018-09-17 23:31:18 +09:30
remove-relocs-07.d Support objcopy --remove-section=.relaFOO 2018-09-17 23:31:18 +09:30
remove-relocs-07.s Support objcopy --remove-section=.relaFOO 2018-09-17 23:31:18 +09:30
remove-relocs-08.d Support objcopy --remove-section=.relaFOO 2018-09-17 23:31:18 +09:30
remove-section-01.d objcopy/strip: Allow section patterns starting with '!'. 2016-07-14 11:32:48 +01:00
size.exp binutils: Add new GNU format mode to size utility 2019-02-08 11:07:24 +00:00
strings-1.bin Enhance the strings program so that it can display multibyte strings. 2018-11-09 12:48:23 +00:00
strings.exp Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
strip-1.d
strip-2.d Andes Technology has good news for you, we plan to update the nds32 port of binutils on upstream! 2018-09-20 13:32:58 +01:00
strip-3.d RISC-V: Support ELF attribute for gas and readelf. 2019-01-16 13:14:59 -08:00
strip-4.d
strip-5.d Andes Technology has good news for you, we plan to update the nds32 port of binutils on upstream! 2018-09-20 13:32:58 +01:00
strip-6.d
strip-7.d Andes Technology has good news for you, we plan to update the nds32 port of binutils on upstream! 2018-09-20 13:32:58 +01:00
strip-8.d
strip-9.d Andes Technology has good news for you, we plan to update the nds32 port of binutils on upstream! 2018-09-20 13:32:58 +01:00
strip-10.d My patch to the binutils strip-10.d test was wrong. The osabi field should always be set to 2014-01-29 14:01:54 +00:00
strip-11.d binutils run_dump_test rename not-target and not-skip 2018-09-15 16:24:18 +09:30
strip-12.d Tweak binutils testsuite 2015-08-11 23:29:36 +09:30
strip-12.s Tweak binutils testsuite 2015-08-11 23:29:36 +09:30
strip-13.d binutils run_dump_test rename not-target and not-skip 2018-09-15 16:24:18 +09:30
strip-13mips64.s Adjust some strip testcases to silence h8300 warnings 2018-09-17 23:16:48 +09:30
strip-13rel.s Adjust some strip testcases to silence h8300 warnings 2018-09-17 23:16:48 +09:30
strip-13rela.s Adjust some strip testcases to silence h8300 warnings 2018-09-17 23:16:48 +09:30
strip-14.d binutils run_dump_test rename not-target and not-skip 2018-09-15 16:24:18 +09:30
strip-14mips64.s Adjust some strip testcases to silence h8300 warnings 2018-09-17 23:16:48 +09:30
strip-14rel.s Adjust some strip testcases to silence h8300 warnings 2018-09-17 23:16:48 +09:30
strip-14rela.s Adjust some strip testcases to silence h8300 warnings 2018-09-17 23:16:48 +09:30
strip-15.d Fix some strip test fails on nds32 and pru 2018-04-10 09:41:25 +09:30
strip-15mips64.s Adjust some strip testcases to silence h8300 warnings 2018-09-17 23:16:48 +09:30
strip-15rel.s Adjust some strip testcases to silence h8300 warnings 2018-09-17 23:16:48 +09:30
strip-15rela.s Adjust some strip testcases to silence h8300 warnings 2018-09-17 23:16:48 +09:30
symbols-1.d Consolidate run_dump_test 2018-09-15 16:56:55 +09:30
symbols-2.d Consolidate run_dump_test 2018-09-15 16:56:55 +09:30
symbols-3.d Consolidate run_dump_test 2018-09-15 16:56:55 +09:30
symbols-4.d Consolidate run_dump_test 2018-09-15 16:56:55 +09:30
symbols.s objcopy: Improve wildcard matching for symbols with '!' prefix. 2015-08-07 11:41:40 +02:00
testprog.c Fix copying Solaris binaries with objcopy. 2016-04-14 12:04:09 +01:00
testranges-ia64.d
testranges-ia64.s
testranges.d binutils run_dump_test rename not-target and not-skip 2018-09-15 16:24:18 +09:30
testranges.s
unique.s
unknown.s
update-1.s objcopy: Add --update-section option. 2015-02-28 21:25:51 +00:00
update-2.s objcopy: Add --update-section option. 2015-02-28 21:25:51 +00:00
update-3.s objcopy: Add --update-section option. 2015-02-28 21:25:51 +00:00
update-4.s objcopy: Add --update-section option. 2015-02-28 21:25:51 +00:00
update-section.exp Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
version.def ChangeLog binutils 2012-02-11 20:02:03 +00:00
version.s * binutils-all/dw2-decodedline.S: Always have whitespace before 2012-02-14 01:00:50 +00:00
z.s Add --decompress option to readelf to decompress sections before they are dumped. 2015-05-15 17:16:31 +01:00