+2015-08-04  Nick Clifton  <nickc@redhat.com>
+
+       * lib/utils-lib.exp (run_dump_test): Document DUMPPROG, readelf
+       and size parameters.  Alpha-sort switch tables.  Include
+       addr2line, and size in list of possible auto-detected dump
+       programs.
+
 2015-07-24  Nick Clifton  <nickc@redhat.com>
 
        * binutils-all/localize-hidden-1.d: Allow for extra symbols in the
 
 #      When assembling FILE.s, pass FLAGS to the assembler.
 #
 #   PROG: PROGRAM-NAME
-#       The name of the program to run to analyze the .o file produced
-#       by the assembler.  This can be omitted; run_dump_test will guess
-#       which program to run by seeing which of the flags options below
-#      is present.
+#       The name of the program to run to modify or analyze the .o file
+#       produced by the assembler.  This option is required.  Recognised
+#       names are: ar, elfedit, nm, objcopy, ranlib, strings, and strip.
+#
+#   DUMPPROG: PROGRAM-NAME
+#       The name of the program to run to analyze the .o file after it has
+#       has been modified by PROG.  This can be omitted; run_dump_test will
+#       guess which program to run by seeing if any of the flags options
+#       for the recognised dump programs are set.  Recognised names are:
+#       addr2line, nm, objdump, readelf and size.
 #
-#   objdump: FLAGS
 #   nm: FLAGS
 #   objcopy: FLAGS
+#   objdump: FLAGS
+#   readelf: FLAGS
+#   size: FLAGS
 #      Use the specified program to analyze the .o file, and pass it
 #      FLAGS, in addition to the .o file name.  Note that they are run
 #      with LC_ALL=C in the environment to give consistent sorting
     set opts(addr2line) {}
     set opts(ar) {}
     set opts(as) {}
+    set opts(elfedit) {}
+    set opts(name) {}
     set opts(nm) {}
     set opts(objcopy) {}
     set opts(objdump) {}
-    set opts(strip) {}
     set opts(ranlib) {}
     set opts(readelf) {}
     set opts(size) {}
     set opts(strings) {}
-    set opts(name) {}
-    set opts(elfedit) {}
+    set opts(strip) {}
     set opts(PROG) {}
     set opts(DUMPPROG) {}
     set opts(source) {}
     verbose "Testing $testname"
 
     if {$opts(PROG) == ""} {
-       perror "program isn't set in $file.d"
+       perror "PROG isn't set in $file.d"
        unresolved $testname
        return
     }
     set destopt ""
     switch -- $opts(PROG) {
        ar      { set program ar }
+       elfedit { set program elfedit }
+       nm      { set program nm }
        objcopy { set program objcopy }
        ranlib  { set program ranlib }
+       strings { set program strings }
        strip   {
            set program strip
            set destopt "-o"
        }
-       strings { set program strings }
-       elfedit { set program elfedit }
-       nm      { set program nm }
        default {
            perror "unrecognized program option $opts(PROG) in $file.d"
            unresolved $testname
        }
     } else {
        # Guess which program to run, by seeing which option was specified.
-       foreach p {objdump nm readelf} {
+       foreach p {addr2line nm objdump readelf size} {
            if {$opts($p) != ""} {
                if {$dumpprogram != ""} {
-                   perror "ambiguous dump program in $file.d"
+                   perror "more than one possible dump program specified in $file.d"
                    unresolved $testname
                    return
                } else {