binutils/testsuite/
2005-10-19 H.J. Lu <hongjiu.lu@intel.com> PR binutils/1487 * binutils-all/objcopy.exp (objcopy_test): New procedure. Use it to test simple copy, ia64 link order and ELF unknown section type. * binutils-all/unknown.s: New file. ld/testsuite/ 2005-10-19 H.J. Lu <hongjiu.lu@intel.com> PR binutils/1487 * ld-elf/unknown.d: New file.
This commit is contained in:
parent
290248614c
commit
64bb95af3d
|
@ -1,3 +1,12 @@
|
||||||
|
2005-10-19 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR binutils/1487
|
||||||
|
* binutils-all/objcopy.exp (objcopy_test): New procedure.
|
||||||
|
Use it to test simple copy, ia64 link order and ELF unknown
|
||||||
|
section type.
|
||||||
|
|
||||||
|
* binutils-all/unknown.s: New file.
|
||||||
|
|
||||||
2005-10-19 H.J. Lu <hongjiu.lu@intel.com>
|
2005-10-19 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR binutils/1321
|
PR binutils/1321
|
||||||
|
|
|
@ -30,12 +30,6 @@ if ![is_remote host] {
|
||||||
|
|
||||||
send_user "Version [binutil_version $OBJCOPY]"
|
send_user "Version [binutil_version $OBJCOPY]"
|
||||||
|
|
||||||
if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then {
|
|
||||||
perror "unresolved 1"
|
|
||||||
unresolved "objcopy (simple copy)"
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if ![is_remote host] {
|
if ![is_remote host] {
|
||||||
set tempfile tmpdir/bintest.o
|
set tempfile tmpdir/bintest.o
|
||||||
set copyfile tmpdir/copy
|
set copyfile tmpdir/copy
|
||||||
|
@ -46,61 +40,79 @@ if ![is_remote host] {
|
||||||
|
|
||||||
# Test that objcopy does not modify a file when copying it.
|
# Test that objcopy does not modify a file when copying it.
|
||||||
|
|
||||||
set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS $tempfile ${copyfile}.o"]
|
proc objcopy_test {testname srcfile} {
|
||||||
|
global OBJCOPY
|
||||||
|
global OBJCOPYFLAGS
|
||||||
|
global srcdir
|
||||||
|
global subdir
|
||||||
|
global tempfile
|
||||||
|
global copyfile
|
||||||
|
|
||||||
if ![string match "" $got] then {
|
if {![binutils_assemble $srcdir/$subdir/${srcfile} tmpdir/bintest.o]} then {
|
||||||
fail "objcopy (simple copy)"
|
perror "unresolved $testname"
|
||||||
} else {
|
unresolved "objcopy ($testname)"
|
||||||
send_log "cmp $tempfile ${copyfile}.o\n"
|
return
|
||||||
verbose "cmp $tempfile ${copyfile}.o"
|
|
||||||
if [is_remote host] {
|
|
||||||
set src1 tmpdir/bintest.o
|
|
||||||
set src2 tmpdir/copy.o
|
|
||||||
remote_upload host $tempfile $src1
|
|
||||||
remote_upload host ${copyfile}.o $src2
|
|
||||||
} else {
|
|
||||||
set src1 ${tempfile}
|
|
||||||
set src2 ${copyfile}.o
|
|
||||||
}
|
}
|
||||||
set status [remote_exec build cmp "${src1} ${src2}"]
|
|
||||||
set exec_output [lindex $status 1]
|
|
||||||
set exec_output [prune_warnings $exec_output]
|
|
||||||
|
|
||||||
# On some systems the result of objcopy will not be identical.
|
set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS $tempfile ${copyfile}.o"]
|
||||||
# Usually this is just because gas isn't using bfd to write the files
|
|
||||||
# in the first place, and may order things a little differently.
|
|
||||||
# Those systems should use setup_xfail here.
|
|
||||||
|
|
||||||
setup_xfail "h8300-*-rtems*" "h8300-*-coff"
|
if ![string match "" $got] then {
|
||||||
setup_xfail "h8500-*-rtems*" "h8500-*-coff"
|
fail "objcopy ($testname)"
|
||||||
setup_xfail "hppa*-*-*"
|
|
||||||
setup_xfail "i960-*"
|
|
||||||
setup_xfail "m68*-*-*coff" "m68*-*-hpux*" "m68*-*-lynxos*"
|
|
||||||
setup_xfail "m68*-*-sysv*" "m68*-apple-aux*"
|
|
||||||
setup_xfail "m8*-*"
|
|
||||||
setup_xfail "or32-*-rtems*" "or32-*-coff"
|
|
||||||
setup_xfail "sh-*-coff*" "sh-*-rtems*"
|
|
||||||
setup_xfail "tic4x-*-*" "tic80-*-*" "w65-*"
|
|
||||||
|
|
||||||
clear_xfail "hppa*64*-*-hpux*" "hppa*-*-linux*" "hppa*-*-lites*"
|
|
||||||
clear_xfail "hppa*-*-*n*bsd*" "hppa*-*-rtems*" "*-*-*elf*" "m68*-*-sysv4*"
|
|
||||||
|
|
||||||
if [string match "" $exec_output] then {
|
|
||||||
pass "objcopy (simple copy)"
|
|
||||||
} else {
|
} else {
|
||||||
send_log "$exec_output\n"
|
send_log "cmp $tempfile ${copyfile}.o\n"
|
||||||
verbose "$exec_output" 1
|
verbose "cmp $tempfile ${copyfile}.o"
|
||||||
|
if [is_remote host] {
|
||||||
|
set src1 tmpdir/bintest.o
|
||||||
|
set src2 tmpdir/copy.o
|
||||||
|
remote_upload host $tempfile $src1
|
||||||
|
remote_upload host ${copyfile}.o $src2
|
||||||
|
} else {
|
||||||
|
set src1 ${tempfile}
|
||||||
|
set src2 ${copyfile}.o
|
||||||
|
}
|
||||||
|
set status [remote_exec build cmp "${src1} ${src2}"]
|
||||||
|
set exec_output [lindex $status 1]
|
||||||
|
set exec_output [prune_warnings $exec_output]
|
||||||
|
|
||||||
# On OSF/1, this succeeds with gas and fails with /bin/as.
|
# On some systems the result of objcopy will not be identical.
|
||||||
setup_xfail "alpha*-*-osf*"
|
# Usually this is just because gas isn't using bfd to write the
|
||||||
|
# files in the first place, and may order things a little
|
||||||
|
# differently. Those systems should use setup_xfail here.
|
||||||
|
|
||||||
# This fails for COFF i960-vxworks targets.
|
setup_xfail "h8300-*-rtems*" "h8300-*-coff"
|
||||||
setup_xfail "i960-*-vxworks*"
|
setup_xfail "h8500-*-rtems*" "h8500-*-coff"
|
||||||
|
setup_xfail "hppa*-*-*"
|
||||||
|
setup_xfail "i960-*"
|
||||||
|
setup_xfail "m68*-*-*coff" "m68*-*-hpux*" "m68*-*-lynxos*"
|
||||||
|
setup_xfail "m68*-*-sysv*" "m68*-apple-aux*"
|
||||||
|
setup_xfail "m8*-*"
|
||||||
|
setup_xfail "or32-*-rtems*" "or32-*-coff"
|
||||||
|
setup_xfail "sh-*-coff*" "sh-*-rtems*"
|
||||||
|
setup_xfail "tic4x-*-*" "tic80-*-*" "w65-*"
|
||||||
|
|
||||||
fail "objcopy (simple copy)"
|
clear_xfail "hppa*64*-*-hpux*" "hppa*-*-linux*" "hppa*-*-lites*"
|
||||||
|
clear_xfail "hppa*-*-*n*bsd*" "hppa*-*-rtems*" "*-*-*elf*"
|
||||||
|
clear_xfail "m68*-*-sysv4*"
|
||||||
|
|
||||||
|
if [string match "" $exec_output] then {
|
||||||
|
pass "objcopy ($testname)"
|
||||||
|
} else {
|
||||||
|
send_log "$exec_output\n"
|
||||||
|
verbose "$exec_output" 1
|
||||||
|
|
||||||
|
# On OSF/1, this succeeds with gas and fails with /bin/as.
|
||||||
|
setup_xfail "alpha*-*-osf*"
|
||||||
|
|
||||||
|
# This fails for COFF i960-vxworks targets.
|
||||||
|
setup_xfail "i960-*-vxworks*"
|
||||||
|
|
||||||
|
fail "objcopy ($testname)"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
objcopy_test "simple copy" bintest.s
|
||||||
|
|
||||||
# Test generating S records.
|
# Test generating S records.
|
||||||
|
|
||||||
# We make the srec filename 8.3 compatible. Note that the header string
|
# We make the srec filename 8.3 compatible. Note that the header string
|
||||||
|
@ -652,38 +664,10 @@ switch [copy_setup] {
|
||||||
# ia64 specific tests
|
# ia64 specific tests
|
||||||
if { ([istarget "ia64-*-elf*"]
|
if { ([istarget "ia64-*-elf*"]
|
||||||
|| [istarget "ia64-*-linux*"]) } {
|
|| [istarget "ia64-*-linux*"]) } {
|
||||||
if {![binutils_assemble $srcdir/$subdir/link-order.s tmpdir/bintest.o]} then {
|
objcopy_test "ia64 link order" link-order.s
|
||||||
perror "unresolved ia64 link order."
|
}
|
||||||
unresolved "objcopy (ia64 link order)"
|
|
||||||
} else {
|
# ELF specific tests
|
||||||
# Test that objcopy does not modify a file with link order bit
|
if [is_elf_format] {
|
||||||
# when copying it.
|
objcopy_test "ELF unknown section type" unknown.s
|
||||||
|
|
||||||
set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS $tempfile ${copyfile}.o"]
|
|
||||||
|
|
||||||
if ![string match "" $got] then {
|
|
||||||
fail "objcopy (ia64 link order)"
|
|
||||||
} else {
|
|
||||||
send_log "cmp $tempfile ${copyfile}.o\n"
|
|
||||||
verbose "cmp $tempfile ${copyfile}.o"
|
|
||||||
if [is_remote host] {
|
|
||||||
set src1 tmpdir/bintest.o
|
|
||||||
set src2 tmpdir/copy.o
|
|
||||||
remote_upload host $tempfile $src1
|
|
||||||
remote_upload host ${copyfile}.o $src2
|
|
||||||
} else {
|
|
||||||
set src1 ${tempfile}
|
|
||||||
set src2 ${copyfile}.o
|
|
||||||
}
|
|
||||||
set status [remote_exec build cmp "${src1} ${src2}"]
|
|
||||||
set exec_output [lindex $status 1]
|
|
||||||
set exec_output [prune_warnings $exec_output]
|
|
||||||
|
|
||||||
if [string match "" $exec_output] then {
|
|
||||||
pass "objcopy (ia64 link order)"
|
|
||||||
} else {
|
|
||||||
fail "objcopy (ia64 link order)"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
.section .foo,"a","note"
|
||||||
|
.global _start
|
||||||
|
_start:
|
||||||
|
.long 0
|
|
@ -1,3 +1,8 @@
|
||||||
|
2005-10-19 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR binutils/1487
|
||||||
|
* ld-elf/unknown.d: New file.
|
||||||
|
|
||||||
2005-10-19 H.J. Lu <hongjiu.lu@intel.com>
|
2005-10-19 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* ld-ia64/ia64.exp: Check link order for ld -r.
|
* ld-ia64/ia64.exp: Check link order for ld -r.
|
||||||
|
|
Loading…
Reference in New Issue