binutils/

2013-08-19  Tristan Gingold  <gingold@adacore.com>

	* nm.c (print_size_symbols): Directly get symbol size.


binutils/testsuite/
2013-08-19  Tristan Gingold  <gingold@adacore.com>

	* binutils-all/nm.exp: Add a test for nm --size-sort
	* binutils-all/nm-elf-1.s: New file.
	* binutils-all/nm-1.s: New file.
This commit is contained in:
Tristan Gingold 2013-08-19 15:08:52 +00:00
parent 12696c1090
commit 8b64b65e23
6 changed files with 74 additions and 8 deletions

View File

@ -1,3 +1,7 @@
2013-08-19 Tristan Gingold <gingold@adacore.com>
* nm.c (print_size_symbols): Directly get symbol size.
2013-08-12 Andreas Schwab <schwab@suse.de>
PR binutils/15818

View File

@ -951,19 +951,12 @@ print_size_symbols (bfd *abfd, bfd_boolean is_dynamic,
for (; from < fromend; from++)
{
asymbol *sym;
bfd_vma ssize;
sym = bfd_minisymbol_to_symbol (abfd, is_dynamic, from->minisym, store);
if (sym == NULL)
bfd_fatal (bfd_get_filename (abfd));
/* For elf we have already computed the correct symbol size. */
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
ssize = from->size;
else
ssize = from->size - bfd_section_vma (abfd, bfd_get_section (sym));
print_symbol (abfd, sym, ssize, archive_bfd);
print_symbol (abfd, sym, from->size, archive_bfd);
}
}

View File

@ -1,3 +1,9 @@
2013-08-19 Tristan Gingold <gingold@adacore.com>
* binutils-all/nm.exp: Add a test for nm --size-sort
* binutils-all/nm-elf-1.s: New file.
* binutils-all/nm-1.s: New file.
2013-05-31 H.J. Lu <hongjiu.lu@intel.com>
* binutils-all/i386/compressed-1b.d: Updated for text/data/bss

View File

@ -0,0 +1,13 @@
.globl text_symbol1
.globl text_symbol2
.globl text_symbol3
.text
text_symbol1:
.long 0
.long 0
.long 0
text_symbol2:
.long 0
.long 0
text_symbol3:
.long 0

View File

@ -0,0 +1,16 @@
.globl text_symbol1
.globl text_symbol2
.globl text_symbol3
.text
text_symbol1:
.long 0
.long 0
.long 0
.size text_symbol1, . - text_symbol1
text_symbol2:
.long 0
.long 0
.size text_symbol2, . - text_symbol2
text_symbol3:
.long 0
.size text_symbol3, . - text_symbol3

View File

@ -155,4 +155,38 @@ if [regexp $want $got] then {
fail "nm -P"
}
# Test nm --size-sort
if [is_elf_format] {
set nm_1_src "nm-elf-1.s"
} else {
set nm_1_src "nm-1.s"
}
if {![binutils_assemble $srcdir/$subdir/$nm_1_src tmpdir/nm-1.o]} then {
return
}
if [is_remote host] {
set tempfile [remote_download host tmpdir/nm-1.o]
} else {
set tempfile tmpdir/nm-1.o
}
# This test does not work correctly on ECOFF targets, because ECOFF
# stores most symbols twice, which messes up the nm output.
setup_xfail "alpha*-*-osf*" "alpha*-*-netware*"
setup_xfail "mips*-*-ultrix*" "mips*-*-ecoff*" "mips*-*-irix4*"
setup_xfail "mips*-*-riscos*" "mips*-*-sysv3*" "mips*-sony-bsd*"
set got [binutils_run $NM "$NMFLAGS --size-sort $tempfile"]
set want "0*4 T text_symbol3.*0*8 T text_symbol2.*0*c T text_symbol1"
if [regexp $want $got] then {
pass "nm --size-sort"
} else {
fail "nm --size-sort"
}
# There are certainly other tests that could be run.