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:
H.J. Lu 2005-10-19 20:49:03 +00:00
parent 290248614c
commit 64bb95af3d
4 changed files with 86 additions and 84 deletions

View File

@ -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

View File

@ -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)"
}
}
}
} }

View File

@ -0,0 +1,4 @@
.section .foo,"a","note"
.global _start
_start:
.long 0

View File

@ -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.