+2018-09-15  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/binutils-all/group-7a.d,
+       * testsuite/binutils-all/group-7b.d,
+       * testsuite/binutils-all/group-7c.d,
+       * testsuite/binutils-all/symbols-1.d,
+       * testsuite/binutils-all/symbols-2.d,
+       * testsuite/binutils-all/symbols-3.d,
+       * testsuite/binutils-all/symbols-4.d: Remove DUMPPROG.
+
 2018-09-14  Alan Modra  <amodra@gmail.com>
 
        PR binutils/23633
 
 #name: copy removing reloc group member
 #source: group-7.s
 #PROG: objcopy
-#DUMPPROG: readelf
 #objcopy: --remove-section .data.foo
 #readelf: -Sg --wide
 
 
 #name: copy removing non-reloc group member
 #source: group-7.s
 #PROG: objcopy
-#DUMPPROG: readelf
 #objcopy: --remove-section .data2.foo
 #readelf: -Sg --wide
 
 
 #name: copy removing reloc and non-reloc group member
 #source: group-7.s
 #PROG: objcopy
-#DUMPPROG: readelf
 #objcopy: -R .data.foo -R .data2.foo
 #readelf: -g --wide
 
 
 #PROG: objcopy
 #objcopy: -w -L !foo -L fo*
 #source: symbols.s
-#DUMPPROG: nm
 #nm: -n
 
 #...
 
 #PROG: objcopy
 #objcopy: -w -W !foo -W fo*
 #source: symbols.s
-#DUMPPROG: nm
 #nm: -n
 
 #...
 
 #PROG: objcopy
 #objcopy: -w -W !foo -W fo* -L foo
 #source: symbols.s
-#DUMPPROG: nm
 #nm: -n
 
 #...
 
 #PROG: objcopy
 #objcopy: -w -W !foo -W !bar -W *
 #source: symbols.s
-#DUMPPROG: nm
 #nm: -n
 
 #...
 
+2018-09-15  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/gas/mri/char.d: Don't objcopy to srec, objdump instead.
+       * testsuite/gas/mri/float.d: Likewise.
+       * testsuite/lib/gas-defs.exp (run_dump_test): Remove support
+       for objcopy as a dump tool.
+
 2018-09-14  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR gas/23642
 
-#objcopy: -O srec
 #name: MRI character constants
 #as: -M
+#objdump: -s
 
-# Test MRI character constants
+.*:     file format .*
 
-S0.*
-S113....(61616263616263646500000061276200)|(61616263646362610000006500622761).*
-#pass
+Contents of section \.text:
+
+ 0+0 (61616263 61626364 65000000 61276200)|(61616263 64636261 00000065 00622761) .*
 
-#objcopy: -O srec
 #name: MRI floating point constants
 #as: -M
+#objdump: -s
 
-# Test MRI floating point constants
+.*:     file format .*
 
-S0.*
-S113....(123456789ABCDEF03F80000041200000)|(F0DEBC9A785634120000803F00002041).*
-S10.....(4120000042C80000)|(000020410000C842).*
-#pass
+Contents of section \.text:
+ 0+00 (12345678 9abcdef0 3f800000 41200000)|(f0debc9a 78563412 0000803f 00002041) .*
+ 0+10 (41200000 42c80000)|(000020 410000c842) .*
 
 #
 #   addr2line: FLAGS
 #   nm: FLAGS
-#   objcopy: FLAGS
 #   objdump: FLAGS
 #   readelf: 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
 #      of symbols.  If no FLAGS are needed then use:
-#        PROG: [nm objcopy objdump readelf addr2line]
+#        PROG: [nm objdump readelf addr2line]
 #       instead.
 #      Note: for objdump, we automatically replaces the standard section
 #      names (.text, .data and .bss) by target ones if any (eg. rx-elf
 #
 #   error: REGEX
 #      An error with message matching REGEX must be emitted for the test
-#      to pass.  The PROG, objdump, nm and objcopy options have no
-#      meaning and need not supplied if this is present.
+#      to pass.  The PROG, addr2line, nm, objdump, and readelf options
+#      have no meaning and need not supplied if this is present.
 #
 #   warning: REGEX
 #      Expect a gas warning matching REGEX.  It is an error to issue
 #   stderr: FILE
 #       FILE contains regexp lines to be matched against the diagnostic
 #       output of the assembler.  This does not preclude the use of
-#       PROG, nm, objdump, or objcopy.
+#       PROG, addr2line, nm, objdump, or readelf.
 #
 #   error-output: FILE
 #       Means the same as 'stderr', but also indicates that the assembler
-#       is expected to exit unsuccessfully (therefore PROG, objdump, nm,
-#       and objcopy have no meaning and should not be supplied).
+#       is expected to exit unsuccessfully (therefore PROG, addr2line, nm,
+#      objdump, and readelf have no meaning and should not be supplied).
 #
 #   section-subst: no
 #       Means that the section substitution for objdump is disabled.
     set opts(as) {}
     set opts(objdump) {}
     set opts(nm) {}
-    set opts(objcopy) {}
     set opts(readelf) {}
     set opts(name) {}
     set opts(PROG) {}
                addr2line { set program addr2line }
                objdump { set program objdump }
                nm      { set program nm }
-               objcopy { set program objcopy }
                readelf { set program readelf }
                default {
                    perror "unrecognized program option $opts(PROG) in $file.d"
            }
        } else {
            # Guess which program to run, by seeing which option was specified.
-           foreach p {objdump objcopy nm readelf addr2line} {
+           foreach p {objdump nm readelf addr2line} {
                if {$opts($p) != ""} {
                    if {$program != ""} {
                        perror "ambiguous dump program in $file.d"
     if { $progopts1 == "" } { set $progopts1 "-r" }
     verbose "running $binary $progopts $progopts1" 3
 
-    # Objcopy, unlike the other two, won't send its output to stdout,
-    # so we have to run it specially.
     set cmd "$binary $progopts $progopts1 dump.o"
     set redir ">dump.out"
-    if { $program == "objcopy" } {
-       set cmd "$binary $progopts $progopts1 dump.o dump.out"
-       set redir ""
-    }
-
     send_log "$cmd\n"
     set status [gas_host_run "$cmd" "$redir"]
     set comp_output [prune_warnings [lindex $status 1]]
 
+2018-09-15  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/ld-elf/interleave-0.d,
+       * testsuite/ld-elf/interleave-4.d: Don't objcopy to srec,
+       objdump instead.
+       * testsuite/ld-gc/all-debug-sections.d,
+       * testsuite/ld-scripts/provide-4.d,
+       * testsuite/ld-scripts/provide-5.d,
+       * testsuite/ld-scripts/provide-6.d,
+       * testsuite/ld-scripts/provide-7.d,
+       * testsuite/ld-scripts/provide-8.d,
+       * testsuite/ld-scripts/segment-start.d: Remove PROG, specify
+       nm instead.
+       * testsuite/lib/ld-lib.exp (run_dump_test): Remove support
+       for objcopy as a dump tool.
+
 2018-09-14  Maciej W. Rozycki  <macro@mips.com>
 
        PR ld/21375
 
 #name: --interleave test byte 0
 #source: interleave.s
 #ld: -Tinterleave.ld
-#objcopy: --interleave=8 --interleave-width=1 --byte=0 -O verilog
+#objcopy_linked_file: --interleave=8 --interleave-width=1 --byte=0
+#objdump: -s
 
-@0+0
-00 
-@0+2
-14 
+.*:     file format .*
+
+Contents of section \.a0:
+ 0+0 00                                   .*
+Contents of section \.a1:
+ 0+c 14                                   .*
 
 #name: --interleave test byte 4
 #source: interleave.s
 #ld: -Tinterleave.ld
-#objcopy: --interleave=8 --interleave-width=1 --byte=4 -O verilog
+#objcopy_linked_file: --interleave=8 --interleave-width=1 --byte=4
+#objdump: -s
 
-@0+0
-04 
-@0+1
-10 
+.*:     file format .*
+
+Contents of section \.a0:
+ 0+0 04                                   .*
+Contents of section \.a1:
+ 0+c 10                                   .*
 
 #name: --gc-sections with multiple debug sections for a function section
 #as: -gdwarf-sections
 #ld: --gc-sections -e _start
-#PROG: nm
+#nm: -B
 
 #...
 [0-9a-f]+ N +debug_aranges_main
 
 #source: provide-2.s
 #ld: -T provide-4.t
-#PROG: nm
+#nm: -B
 #map: provide-4.map
 #...
 0+3 A baz
 
 #source: provide-5.s
 #ld: -T provide-5.t
-#PROG: nm
+#nm: -B
 #map: provide-5.map
 #...
 0+10 A foo
 
 #source: provide-5.s
 #ld: -T provide-6.t
-#PROG: nm
+#nm: -B
 #xfail: x86_64-*-cygwin
 
 #...
 
 #source: provide-5.s
 #ld: -T provide-7.t
-#PROG: nm
+#nm: -B
 
 #...
 0+10 A foo
 
 #source: provide-5.s
 #ld: -T provide-8.t
-#PROG: nm
+#nm: -B
 #xfail: x86_64-*-cygwin mmix-*-* sh-*-pe spu-*-*
 
 #...
 
-#PROG: nm
 #name: SEGMENT_START expression not absolute
 #source: segment-start.s
 #ld: -e 0 -u __executable_start -T segment-start.ld
+#nm: -B
 #xfail: mmix-*-* pdp11-*-* powerpc-*-aix* powerpc-*-beos* rs6000-*-* sh-*-pe
 #xfail: c30-*-*aout* tic30-*-*aout* c54x*-*-*coff* tic54x-*-*coff*
 # XFAIL targets that are not expected to handle SEGMENT_START correctly.
 
 #   readelf: FLAGS
 #   objdump: FLAGS
 #   nm: FLAGS
-#   objcopy: FLAGS
 #      Use the specified program to analyze the assembler or linker
 #       output file, and pass it FLAGS, in addition to the output name.
 #      Note that they are run with LC_ALL=C in the environment to give
 #
 #   error: REGEX
 #      An error with message matching REGEX must be emitted for the test
-#      to pass.  The PROG, readelf, objdump, nm and objcopy options have
+#      to pass.  The PROG, readelf, objdump, and nm options have
 #      no meaning and need not be supplied if this is present.  Multiple
 #      "error" directives append to the expected linker error message.
 #
     set opts(noskip) {}
     set opts(objdump) {}
     set opts(nm) {}
-    set opts(objcopy) {}
     set opts(readelf) {}
     set opts(name) {}
     set opts(PROG) {}
            switch -- $opts(PROG) {
                objdump { set program objdump }
                nm      { set program nm }
-               objcopy { set program objcopy }
                readelf { set program readelf }
                default
                { perror "unrecognized program option $opts(PROG) in $file.d"
            }
        } else {
        # Guess which program to run, by seeing which option was specified.
-           foreach p {objdump objcopy nm readelf} {
+           foreach p {objdump nm readelf} {
                if {$opts($p) != ""} {
                    if {$program != ""} {
                        perror "ambiguous dump program in $file.d"
 
     if { $progopts1 == "" } { set $progopts1 "-r" }
     verbose "running $binary $progopts $progopts1" 3
-
-    # Objcopy, unlike the other two, won't send its output to stdout,
-    # so we have to run it specially.
     set cmd "$binary $progopts $progopts1 $objfile > $dumpfile"
-    if { $program == "objcopy" } {
-       set cmd "$binary $progopts $progopts1 $objfile $dumpfile"
-    }
 
     # Ensure consistent sorting of symbols
     if {[info exists env(LC_ALL)]} {