From ad2fb2cdb9644c9f478d92cb4b1ccba7715b3bc3 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 19 Oct 2005 17:39:43 +0000 Subject: [PATCH] 2005-10-19 H.J. Lu PR binutils/1321 * binutils-all/link-order.s: New. * binutils-all/objcopy.exp: Check ia64 link order. --- binutils/testsuite/ChangeLog | 7 ++++ binutils/testsuite/binutils-all/link-order.s | 13 +++++++ binutils/testsuite/binutils-all/objcopy.exp | 39 ++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 binutils/testsuite/binutils-all/link-order.s diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog index 481ad9802e..cb93df2a70 100644 --- a/binutils/testsuite/ChangeLog +++ b/binutils/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2005-10-19 H.J. Lu + + PR binutils/1321 + * binutils-all/link-order.s: New. + + * binutils-all/objcopy.exp: Check ia64 link order. + 2005-10-11 Danny Smith * binutils-all/windres/escapex-2.rc: New file. diff --git a/binutils/testsuite/binutils-all/link-order.s b/binutils/testsuite/binutils-all/link-order.s new file mode 100644 index 0000000000..5994cb813a --- /dev/null +++ b/binutils/testsuite/binutils-all/link-order.s @@ -0,0 +1,13 @@ + .text + .align 16 + .global foo# + .proc foo# +foo: + .prologue 2, 2 + .vframe r2 + mov r2 = r12 + .body + .restore sp + mov r12 = r2 + br.ret.sptk.many b0 + .endp foo# diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp index f96113ecfc..cb4c0c18c2 100644 --- a/binutils/testsuite/binutils-all/objcopy.exp +++ b/binutils/testsuite/binutils-all/objcopy.exp @@ -648,3 +648,42 @@ switch [copy_setup] { strip_executable_with_saving_a_symbol "$STRIP" "-K main -K _main $STRIPFLAGS" "$test4" } } + +# ia64 specific tests +if { ([istarget "ia64-*-elf*"] + || [istarget "ia64-*-linux*"]) } { + if {![binutils_assemble $srcdir/$subdir/link-order.s tmpdir/bintest.o]} then { + perror "unresolved ia64 link order." + unresolved "objcopy (ia64 link order)" + } else { + # Test that objcopy does not modify a file with link order bit + # when copying it. + + 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)" + } + } + } +}