-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2019 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
setup_xfail "m8*-*"
setup_xfail "sh-*-coff*"
setup_xfail "tic54x-*-*"
- setup_xfail "tic80-*-*"
clear_xfail "hppa*64*-*-hpux*" "hppa*-*-linux*" "hppa*-*-lites*"
clear_xfail "hppa*-*-*n*bsd*" "hppa*-*-rtems*" "*-*-*elf*"
objcopy_test "simple copy" bintest.s
+# Test verilog data width
+proc objcopy_test_verilog {testname} {
+ global OBJCOPY
+ global OBJCOPYFLAGS
+ global srcdir
+ global subdir
+ global copyfile
+ set binfile tmpdir/verilogtest.o
+ set verilog tmpdir/verilog
+
+ set got [binutils_assemble $srcdir/$subdir/verilogtest.s $binfile]
+ if {![binutils_assemble $srcdir/$subdir/verilogtest.s $binfile]} then {
+ unresolved "objcopy ($testname)"
+ return
+ }
+
+ set got [binutils_run $OBJCOPY "-O verilog $binfile $verilog"]
+ if ![string equal "" $got] then {
+ fail "objcopy ($testname)"
+ }
+
+ set got [binutils_run $OBJCOPY "-O verilog --verilog-data-width 0 $binfile $verilog-0.hex"]
+ if ![regexp "verilog data width must be at least 1 byte" $got] then {
+ fail "objcopy ($testname 0) {$got}"
+ } else {
+ pass "objcopy ($testname 0)"
+ }
+
+ foreach width {1 2 4 8} {
+ set got [binutils_run $OBJCOPY "-O verilog --verilog-data-width $width $binfile $verilog-$width.hex"]
+ if ![string equal "" $got] then {
+ fail "objcopy ($testname $width)"
+ }
+ send_log "regexp_diff $verilog-$width.hex $srcdir/$subdir/verilog-$width.hex\n"
+ if {! [regexp_diff "$verilog-$width.hex" "$srcdir/$subdir/verilog-$width.hex"]} {
+ pass "objcopy ($testname $width)"
+ } else {
+ fail "objcopy ($testname $width)"
+ }
+ }
+}
+
+objcopy_test_verilog "verilog data width"
+
if { [file exists $tempfile] } {
# Test reversing bytes in a section.
run_dump_test "group-7c"
run_dump_test "copy-1"
run_dump_test "note-1"
- # Use bintest.o from the note-1 test to determine ELF32 or ELF64
- if [is_elf64 tmpdir/bintest.o] {
+ # Use copytest.o from the note-1 test to determine ELF32 or ELF64
+ if [is_elf64 tmpdir/copytest.o] {
set elf64 "--defsym ELF64=1"
run_dump_test "note-2-64"
run_dump_test "note-3-64"
run_dump_test "note-4-64"
+ run_dump_test "note-6-64"
} else {
run_dump_test "note-2-32"
run_dump_test "note-3-32"
run_dump_test "note-4-32"
+ run_dump_test "note-6-32"
}
run_dump_test "note-5"
}
run_dump_test "copy-3"
run_dump_test "copy-4"
run_dump_test "copy-5"
+run_dump_test "copy-6"
# Use bintest.o from the copy-4 test to determine ELF reloc type
set reloc_format rel
run_dump_test "only-section-01"
run_dump_test "remove-section-01"
+ run_dump_test "keep-section-1"
+ run_dump_test "keep-section-2"
+
# Test the remove relocation functionality
set test_list [lsort [glob -nocomplain $srcdir/$subdir/remove-relocs-*.d]]
foreach t $test_list {
objcopy_remove_relocations_from_executable
run_dump_test "pr23633"
+
+run_dump_test "set-section-alignment"