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:
parent
12696c1090
commit
8b64b65e23
6 changed files with 74 additions and 8 deletions
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
13
binutils/testsuite/binutils-all/nm-1.s
Normal file
13
binutils/testsuite/binutils-all/nm-1.s
Normal 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
|
16
binutils/testsuite/binutils-all/nm-elf-1.s
Normal file
16
binutils/testsuite/binutils-all/nm-elf-1.s
Normal 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
|
|
@ -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.
|
||||
|
|
Loading…
Reference in a new issue