* nm.c (filter_symbols): Treat unique symbols as global symbols.
* doc/binutils.texi (nm): Mention that some lowercase letters
actually indicate global symbols.
* lib/utils-lib.exp (run_dump_test): Allow nm as a program.
* binutils-all/nm.exp: Test running "nm -g" on an object file
containing a unique symbol.
+2011-05-18 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/12753
+ * nm.c (filter_symbols): Treat unique symbols as global symbols.
+ * doc/binutils.texi (nm): Mention that some lowercase letters
+ actually indicate global symbols.
+
2011-05-15 Tristan Gingold <gingold@adacore.com>
* od-xcoff.c: New file.
@item
The symbol type. At least the following types are used; others are, as
well, depending on the object file format. If lowercase, the symbol is
-local; if uppercase, the symbol is global (external).
+usually local; if uppercase, the symbol is global (external). There
+are however a few lowercase symbols that are shown for special global
+symbols (@code{u}, @code{v} and @code{w}).
@c Some more detail on exactly what these symbol types are used for
@c would be nice.
else if (external_only)
keep = ((sym->flags & BSF_GLOBAL) != 0
|| (sym->flags & BSF_WEAK) != 0
+ /* PR binutls/12753: Unique symbols are global too. */
+ || (sym->flags & BSF_GNU_UNIQUE) != 0
|| bfd_is_und_section (sym->section)
|| bfd_is_com_section (sym->section));
else
+2011-05-18 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/12753
+ * lib/utils-lib.exp (run_dump_test): Allow nm as a program.
+ * binutils-all/nm.exp: Test running "nm -g" on an object file
+ containing a unique symbol.
+
2011-05-13 Alan Modra <amodra@gmail.com>
* binutils-all/objcopy.exp objcopy_text): Remove xfails for sh-rtems
pass "nm -g"
}
+if [is_elf_format] {
+ # PR binutils/12753
+ # Test nm -g on a unique global symbol.
+
+ # Only some targets support unique symbols.
+ if {([istarget "i?86-*-*"]
+ || [istarget "x86_64-*-*"]
+ || [istarget "arm-*-*"]
+ || [istarget "powerpc*-*-*"]
+ || [istarget "sparc*-*-*"])} then {
+
+ if {![binutils_assemble $srcdir/$subdir/unique.s tmpdir/unique.o]} then {
+ fail "nm -g on unique symbols (assembling)"
+ } else {
+ if [is_remote host] {
+ set tmpfile [remote_download host tmpdir/unique.o]
+ } else {
+ set tmpfile tmpdir/unique.o
+ }
+
+ set got [binutils_run $NM "$NMFLAGS -g $tmpfile"]
+
+ if [regexp "u foo" $got] then {
+ pass "nm -g on unique symbols"
+ } else {
+ fail "nm -g on unique symbols"
+ }
+
+ if { $verbose < 1 } {
+ remote_file host delete "tmpdir/unique.o"
+ }
+ }
+ }
+}
+
# Test nm -P
# This test does not work correctly on ECOFF targets, because ECOFF
}
strings { set program strings }
elfedit { set program elfedit }
+ nm { set program nm }
default {
perror "unrecognized program option $opts(PROG) in $file.d"
unresolved $testname