This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
PATCH: binutils/1321: strip/objcopy don't handle SHF_LINK_ORDER correctly
- From: "H. J. Lu" <hjl at lucon dot org>
- To: binutils at sources dot redhat dot com
- Date: Wed, 19 Oct 2005 10:38:28 -0700
- Subject: PATCH: binutils/1321: strip/objcopy don't handle SHF_LINK_ORDER correctly
Sorry to be this late. I am checking this testcase.
H.J.
----
2005-10-17 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/1321
* binutils-all/link-order.s: New.
* binutils-all/objcopy.exp: Check ia64 link order.
--- binutils/testsuite/binutils-all/link-order.s.link-order 2005-10-19 09:54:51.000000000 -0700
+++ binutils/testsuite/binutils-all/link-order.s 2005-10-19 10:01:54.000000000 -0700
@@ -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#
--- binutils/testsuite/binutils-all/objcopy.exp.link-order 2005-08-26 15:17:42.000000000 -0700
+++ binutils/testsuite/binutils-all/objcopy.exp 2005-10-19 10:14:01.000000000 -0700
@@ -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)"
+ }
+ }
+ }
+}